v0.16 files

This commit is contained in:
tduva 2022-01-06 10:20:49 +01:00
parent 495d49aa42
commit a13df37802
No known key found for this signature in database
GPG Key ID: 01EB6B81F18C5128
13 changed files with 548 additions and 223 deletions

View File

@ -17,7 +17,10 @@
<p>The Admin Dialog is always opened for the currently active channel,
unless there is no channel open (which is the case just after you started Chatty),
in which case it will open for your own channel (you login with).</p>
in which case it will open for your own channel (you login with). The
channel is automatically changed to the currently active channel unless the
"Channel - Fixed" option is enabled in the Admin Dialog context menu
(right-click on an empty space in the Admin Dialog).</p>
<h2><a name="access">Access</a></h2>
<p>The Admin Dialog requires the following access:</p>
@ -25,6 +28,7 @@
<li><strong>Editor access</strong>: To change the stream title/game</li>
<li><strong>Edit broadcast</strong>: To change stream tags</li>
<li><strong>Run commercials</strong>: To run commercials</li>
<li><strong>View/Change blocked terms</strong>: To view and edit blocked terms</li>
</ul>
<p>If some access is missing, please go to <code>Main - Account</code> in

View File

@ -19,6 +19,7 @@
<li><a href="#restrict-channel">Restrict to channel</a></li>
<li><a href="#anonymous-custom-commands">Anonymous Custom Commands</a></li>
<li><a href="#chain-commands">Chaining Commands</a></li>
<li><a href="#foreach">Foreach</a></li>
</ul>
</li>
<li>
@ -110,6 +111,11 @@
although the <a href="help.html#commands-chain">/chain command</a> can
be used to achieve something like that.</p>
<h3><a name="foreach">Foreach</a></h3>
<p>The <a href="help.html#commands-foreach">/foreach command</a> can be used
to run the same command for each entry of a space-separated list, for
example a list of channels from the <code>$1-</code> replacement.</p>
<h2><a name="replacements">Replacements</a></h2>
<ul>
<li><a href="#simple-replacements">Simple Replacements</a></li>

View File

@ -20,7 +20,7 @@
<p>If you can't fix this problem and there are no other error messages that
may indicate what is going wrong, then you can still proceed with opening the
link by clicking on "Open URL" in the dialog (or <a href="https://id.twitch.tv/oauth2/authorize?response_type=token&client_id=spyiu9jqdnfjtwv6l1xjk5zgt8qb91l&redirect_uri=http://127.0.0.1:61324/token/&force_verify=true&scope=channel_subscriptions+moderator:manage:automod+user_read+channel_commercial+user_follows_edit+chat_login+channel_editor+user_subscriptions+channel:moderate+user:edit:broadcast+channel:read:redemptions">this link</a>, which has all permissions Chatty needs). Chatty won't be able to
link by clicking on "Open URL" in the dialog (or <a href="https://id.twitch.tv/oauth2/authorize?response_type=token&client_id=spyiu9jqdnfjtwv6l1xjk5zgt8qb91l&redirect_uri=http://127.0.0.1:61324/token/&force_verify=true&scope=channel:moderate+channel:read:redemptions+channel_commercial+channel_editor+channel_subscriptions+chat:edit+chat:read+chat_login+moderator:manage:automod+user:edit:broadcast+user:read:follows+user_read+user_subscriptions+whispers:edit+whispers:read">this link</a>, which has all permissions Chatty needs). Chatty won't be able to
receive the token automatically (your browser will tell you that it can't
load the page when you get to <code>http://127.0.0.1:61324</code>), so you have to
<strong>read on in the next section</strong>, especially

View File

@ -0,0 +1,78 @@
<!DOCTYPE html>
<html>
<title>Chatty Help - Short Guides</title>
<link rel="stylesheet" type="text/css" href="style.css" />
<body>
<div id="backlink"><a href="help.html">Back to main help page</a></div>
<h1><a name="top">Local Subonly Mode (or similar)</a></h1>
<p>You can create your own local subonly mode by ignoring all messages
written by non-subscribers. This can also be applied to e.g. a
manually curated list of users via the Addressbook. The ignored
messages are collected in <code>Channels - Ignored</code>.</p>
<p>Features used: <a href="help-settings.html#Ignore">Ignore System</a>,
<a href="help-addressbook.html">Addressbook</a>,
<a href="help-settings.html#Commands">Custom Commands</a></p>
<h3>Create Ignore Entry</h3>
<p>Go to <code>Main - Settings - Ignore</code> and make sure <code>Enable Ignore</code>
is ticked. Then add to the list (press the Plus-Button):</p>
<p><code>!status:smb chanCat:subonly</code></p>
<p>The <code>status:</code> prefix matches on messages by user status.
The <code>!</code>
in front negates the effect, so in this case it ignores users that
are <em>not</em> a subscriber, moderator or the broadcaster of the
channel. See the <a href="help-settings.html#Highlight_Meta_Matching">Highlight help</a>
for more information on the <code>status:</code> prefix.</p>
<p>The second requirement for a match is <code>chanCat:subonly</code>,
which requires the channel the message was send in to be associated
with the Addressbook category <code>subonly</code>. This isn't quite
necessary, but makes it possible to toggle this Ignore list entry
per channel.</p>
<h3>Toggle the Addressbook category</h3>
<p>If you used the <code>chanCat:</code> prefix as shown above, you need
to add the <code>subonly</code> Addressbook category to a channel.
You can either use the <code>Channels - Addressbook</code> Dialog or
an <a href="help-addressbook.html#commands">Addressbook Command</a>.
In both cases you have to add the <em>channel</em>, so including the
leading <code>#</code>.</p>
<p>An Addressbook command to toggle the category for a channel would be:</p>
<p><code>/ab change #joshimuz !subonly</code></p>
<p>This toggles the <code>subonly</code> category for the given channel, so
when the category is there, it removes the category, and when the category is not there,
it adds the category.</p>
<h3>Create Custom Command to toggle Addressbook category</h3>
<p>To do this a bit more conveniently, you can add it as a custom command. Go
to <code>Main - Settings - Commands</code> and add the following to the
list:</p>
<p><code>/Toggle_Subonly /ab change #$(chan) !subonly</code></p>
<p>If you enter <code>/Toggle_Subonly</code> (you can enter e.g.
<code>/Tog</code> and then press <kbd>TAB</kbd> to TAB Complete the
command), this automatically toggles the Addressbook category for
the channel where you entered the command (<code>$(chan)</code>).</p>
<p>To make this even more convenient, you can also add the Custom Command
to the <code>Commands - Channel Context Menu</code> setting or
trigger it via a button by adding it to the <code>Hotkeys</code>
setting (selecting Custom Command as Action and entering the name of
the added Custom Command).</p>
<h3>Other uses</h3>
<p>This could also be changed or extended to allow users manually added
to the Addressbook. The Ignore entry could be changed to:</p>
<p><code>!status:smb !cat:allow chanCat:subonly</code></p>
<p>The <code>cat:</code> prefix requires the user to be associated with an Addressbook
category, although in this case it is negated with <code>!</code>,
so any user that has the <code>allow</code> category will <em>not</em>
match the Ignore list entry, and thus their message will show.</p>
<p>Users can be added to the category via the User Context Menu
(right-click on a user in chat) or the ways detailed in the other
sections above (although in this case, unlike the <code>chanCat:</code>
prefix, the user name must be added without a leading <code>#</code>).</p>
</body>
</html>

View File

@ -17,6 +17,7 @@
<h1><a name="top">Release Information</a></h1>
<p>
<a href="#0.16">0.16</a> |
<a href="#0.15">0.15</a> |
<a href="#0.14">0.14</a> |
<a href="#0.13.1">0.13.1</a> |
@ -64,7 +65,77 @@
full list of changes.</p>
<h2>
<a name="0.15">Version 0.15</a> <a name="latest">(This one!) (2021-07-03)</a>
<a name="0.16">Version 0.16</a> <a name="latest">(This one!)</a> (2022-01-06)
<a href="#top" class="top">[back to top]</a>
</h2>
<p>With the v5 Twitch API shutting down early 2022 more features have been
migrated to the new API, which does not quite provide all the features
or information that you may be used to (or limited to the broadcaster).
However, a new feature (in beta) is the Blocked Terms API that allows
moderators to view and edit a channel's Blocked Terms through the Admin
Dialog.</p>
<p>Some new APIs require new access scopes, so you probably have to renew
your Chatty login (check <span class="m">&lt;Main - Account&gt;</span>).</p>
<pre>
### Twitch Features
- Changed various features to new API, some notes:
- Admin Dialog: New API only allows the broadcaster to set the title/game (old
API is being used for editors until it is turned off)
- Commercials: New API only allows the broadcaster to run commercials (editors
will trigger the chat command instead)
- Subscribers List: Subscription time not available anymore, but subscription
tiers and total subpoints are now available in the new API
- User Dialog: Some information removed that isn't in the new API, added some
subscriber information from the user's subscriber badge (if available)
- Added page to Admin Dialog for viewing and editing Blocked Terms (AutoMod)
- Added info messages about your message being handled by AutoMod
- Added more info messages for Point Redemptions
- Removed follow/unfollow feature because Twitch removed the API
### Settings
- Custom Badges: Added ability to match on message tags
- Matching: Added `config:live` prefix to check for live stream
- Highlight: Added setting to mark matches from all highlight entries instead of
just the first matching one
- Notifications: Added ability to specify several channels in "Channel" field
- Updating: Added setting to only update JAR
- Added ability to set separate buffer size for Highlights/Ignore panel
- Added more User Dialog Message History highlight options
- Added Live Streams settings page with some Live Streams list settings and more
(e.g. you can toggle the new icon in the Live Streams list for open channels)
### Other
- Added FFZ custom VIP badge
- Joining channels:
- Changed /join command to comma-separated list and same features as other
ways to join channels (Connect Dialog, Join Dialog etc.)
- Added more options for joining channels (Addressbook categories, favorites,
live resctriction)
- Some Twitch URLs can be specified for joining channels
- Reduced join delay a bit
- Automatically change channel for Followers/Admin panel, added options in the
panel's context menus to use fixed channel and to manually change the channel
- Added more Setting Commands, including alternatives with less verbose output
- Added option to print output of /proc command
- Added /foreach command
- Made Stream Chat dockable
- Initialize Settings Dialog when first opened to improve startup times
- Various other UI improvements
- Changed to OpenJDK 17 (Adoptium) for Windows Standalone
- Updated help
### Bugfixes
- Added method to interrupt long-running regular expressions which would cause
the program to hang (e.g. catastrophic backtracking)
- Fixed icons in Live Streams List not showing up properly in some cases
- Fixed error when setting maximum tab width too low
- Various other bugfixes
</pre>
<h2>
<a name="0.15">Version 0.15</a> (2021-07-03)
<a href="#top" class="top">[back to top]</a>
</h2>
<p>More Tabs/Layouts improvements:</p>

View File

@ -23,9 +23,13 @@
toggle it and any other value to disable it.</dd>
<dd>Can be used to set the value of a key of a Map setting (for example
<code>/set lafCustomTheme selectionBackgroundColor 255 180 0</code>).</dd>
<dd>The <code>/set2</code> command works the same, but in case of Map
settings omits outputting all values of the Map.</dd>
<dt><code>/get &lt;setting&gt;</code></dt>
<dd>Shows the current value of a setting.</dd>
<dd>For Map settings <code>/get &lt;setting&gt; &lt;key&gt;</code> can
be used to get the value of a specific key only.</dd>
<dt><code>/reset &lt;setting&gt;</code></dt>
<dd>Resets the setting to the default (hard-coded) value.</dd>
@ -36,10 +40,19 @@
<dt><code>/add &lt;setting&gt; &lt;value&gt;</code></dt>
<dd>Adds an item to a List setting.</dd>
<dd>The <code>/add2</code> command works the same, but omits outputting
all values of the List.</dd>
<dt><code>/addUnique &lt;setting&gt; &lt;value&gt;</code></dt>
<dd>Adds an item to a List setting if it hasn't already been added.</dd>
<dd>The <code>/addUnique2</code> command works the same, but omits
outputting all values of the List.</dd>
<dt><code>/remove &lt;setting&gt; &lt;value&gt;</code></dt>
<dd>Removes an item from a List setting or removes a key (and the
associated value) from a Map setting.</dd>
<dd>The <code>/remove2</code> command works the same, but omits
outputting all values of the setting.</dd>
</dl>
<p><em>Tip:</em> You can use <a href="help.html#nickCompletion">TAB Completion</a>

View File

@ -55,12 +55,8 @@
<dd>Connect immediately and join the channels specified in the field
below. You can define several channels by seperating them with a
comma.</dd>
<dd>Can include Addressbook categories, e.g. <code>[vip]</code> to join
all entries associated with the "vip" category. Can restrict to just
channel entries <code>[vip #]</code> (would only get Addressbook
entries such as "#joshimuz") or non-channel entries <code>[vip !#]</code>
(entries such as "joshimuz"). This can also be used in some other
places for joining channels.</dd>
<dd>For more information on how channels can be specified, such as joining
channels by Addressbook category, see <a href="help.html#join">Joining Channels</a>.</dd>
<dt>Connect and join previously open channels</dt>
<dd>Connect immediately and join the channels you had open when you
@ -259,7 +255,8 @@
the category <code>vip</code>)</li>
<li>User-related <a href="#Highlight_Meta_Matching">Highlight Matching</a>
prefixes (e.g. <code>$m:status:r</code>, where <code>status:r</code>
is the Highlight Matching prefix)</li>
is the Highlight Matching prefix, or <code>$m:config:t|first-msg=1</code>
to match message tags, some of which are also user-related)</li>
<li>Most other <a href="#Usercolors">Usercolors</a> restrictions</li>
</ul>
</dd>
@ -972,7 +969,11 @@
<ul>
<li><code>config:firstmsg</code> - Restrict matching to the
first message of this user in this channel during the
current session (first message in User Dialog)</li>
current session (first message in User Dialog).<br />
To match on the first message of this user in the channel
overall, you can match on the message tags that Twitch
sends: <code>config:t|first-msg=1</code> (as long as Twitch
doesn't change it)</li>
<li><code>config:repeatedmsg</code> - Matches if a user repeats
the same message (this requires the <a href="#RepeatMsg">Repetition Detection</a> in
the Moderation settings to be enabled). Can optionally
@ -996,6 +997,13 @@
regex matching on the value.</li>
<li><code>config:url</code> - Message must contain a URL (same
as what is made clickable)</li>
<li><code>config:live</code> or <code>config:live|title/game</code> -
Stream must be live, title and game are interpreted as regex
(like the <code>reg:</code> prefix) and match on the stream's
title or game, use <code>!live</code> to negate match<br />
Example: <code>config:live|/"Grand Theft Auto"</code> would match
in any channel with a live stream where <code>Grand Theft Auto</code>
occurs in the currently streamed game/category</li>
</ul>
</li>
<li><a name="Highlight_Prefix-blacklist"><code>blacklist:</code></a> to specify one or more text patterns
@ -1655,8 +1663,9 @@
<h3>Event settings (Notification/Sound)</h3>
<dl class="dl-settings">
<dt>Channel</dt>
<dd>Name of the channel this item should be restricted to.</dd>
<dt>Channels</dt>
<dd>Name of the channel or channels (comma-separated) this item should be
restricted to.</dd>
<dt>Match</dt>
<dd>Match the given text or message, in the same format as for
@ -1788,11 +1797,18 @@
<a name="Other">Other</a>
<a href="#top" class="top">[back to menu]</a>
</h2>
<h3>Graphic Settings</h3>
<p>More information about <a href="help-troubleshooting.html#visual-glitches">Graphics Glitches</a>
and <a href="help-troubleshooting.html#scaling">UI Scaling</a>.</p>
<h3>Updates</h3>
<dl class="dl-settings">
<dt>Automatically check for new version</dt>
<dd>Checks for new versions every few days and outputs a message about it.</dd>
</dl>
<h3>Other</h3>
<dl class="dl-settings">
<dt>Inform me about new versions</dt>
<dd>Checks for new versions every few days and outputs a message about it.</dd>
<dt>Auto-Unhost when your stream goes live</dt>
<dd>Automatically
sends the <code>/unhost</code> command to your channel if you started

View File

@ -7,64 +7,14 @@
<h1><a name="top">More Guides..</a></h1>
<p>
<a href="#localsubonly">Local Subscriber-Only Mode</a> |
<a href="#streamers">Chatty for Streamers</a> |
<a href="#eventchat">Join Eventchat</a>
<a href="#streamers">Chatty for Streamers</a>
</p>
<p>Probably shorter guides about some aspects of Chatty.</p>
<h2><a name="localsubonly">Local Subscriber-Only Mode</a></h2>
<p>You can create your own local subonly mode, which ignores all messages
written by non-subscribers.</p>
<p>Features used: <a href="help-settings.html#Ignore">Ignore System</a>, <a href="help-addressbook.html">Addressbook</a>,
<a href="help-settings.html#Commands">Custom Commands</a></p>
<h3>Create Ignore Entry</h3>
<p>Go to <code>Main - Settings - Ignore</code> and make sure <code>Enable Ignore</code>
is ticked. Then add to the list (press the Plus-Button):</p>
<p><code>!status:smbaf chanCat:subonly</code></p>
<p>The <code>!status:smbaf</code> prefix matches on messages send by users that
<em>don't</em> have any of the status levels defined, in this case users
that are neither a subscriber (<code>s</code>), moderator (<code>m</code>), broadcaster (<code>b</code>),
admin (<code>a</code>) or staff (<code>f</code>). So basicially this only matches on normal users.</p>
<p>The second requirement for a match is the <code>chanCat:subonly</code>
prefix, which refers to the channel category <code>subonly</code>, which
means the channel the message was send in needs to have that Addressbook category.
This is used to be able to easily toggle subonly-mode for a channel, and
of course to prevent it being enabled in all channels you join in the
first place.</p>
<h3>Create Custom Command to modify Addressbook</h3>
<p>To make use of the Ignore Entry defined in the previous section, you need
to add the <code>subonly</code> category to the channel you want to have
it enabled for. To do this, you could open the Addressbook Dialog
(<code>Channels - Addressbook</code>) and add the channel with the
category there (channels need a leading # in this case, so e.g. <code>#joshimuz</code>).</p>
<p>You can however also use <a href="help-addressbook.html#commands">Addressbook Commands</a>:</p>
<p><code>/ab change #joshimuz !subonly</code></p>
<p>This toggles the <code>subonly</code> category for the given channel, so
when the category is there, it removes the category, and when the category is not there,
it adds the category.</p>
<p>To do this a bit more conveniently, you can add it as a custom command. Go
to <code>Main - Settings - Commands</code> and add the following to the
list:</p>
<p><code>/Toggle_Subonly /ab change #$$1 !subonly</code></p>
<p>If you enter <code>/Toggle_Subonly joshimuz</code>, this will automatically
run the Addressbook as mentioned above (<code>$$1</code> means this is
being replaced with the first word after the command).</p>
<p>To make this more convenient (entering the command with the correct channel
could be a bit of a hassle), add the Custom Command to the <code>Channel Context Menu</code>
(on the same page in the settings). Just click on <code>Edit</code> and add
the command name (without any parameters):</p>
<p><code>/Toggle_Subonly</code></p>
<p>Now if you right-click on a channel, the context menu that opens should
have an entry <code>Toggle Subonly</code>, which you can
use to turn your own local subonly mode for the current channel on and off.</p>
<p><em>This has been moved to it's <a href="help-local_subonly.html">own page</a></em></p>
<h2><a name="streamers">Chatty for Streamers</a></h2>
<h3>Stay informed</h3>
<ul>
<li>Open the <code>&lt;View - Channel Info&gt;</code> to see your current
@ -83,8 +33,7 @@
<li>Presets/History for title/game combinations</li>
<li>Favorite games you play often</li>
<li>Run commercials on a delay and/or timer</li>
<li>Run commercials while playing a game via a global hotkey
(Windows only)</li>
<li>Run commercials while playing a game via a global hotkey</li>
</ul>
</li>
</ul>
@ -104,54 +53,6 @@
you don't want to show).</li>
</ul>
<h2><a name="eventchat">Join Eventchat</a></h2>
<p><strong>As of March 2016 Twitch doesn't use separate Event Chat servers
anymore.</strong></p>
<p class="del">When you join a channel of a big event and you don't receive any (or few) messages,
it's possible that the channel is on the Event Chat servers, not the
regular Twitch Chat servers. It's a common problem to run into if you're
not using the website (like any regular IRC client, Chatty and possibly
mobile).</p>
<p class="del">In order to join Event Chat in Chatty, you have to connect to a different
server. See <a href="http://twitchstatus.com/#chat">Twitchstatus.com</a> for an (unofficial) list
of servers (make sure you choose the <code>Event Chat</code> tab and use
a server/port combination that is marked as <code>irc</code> in the
<code>Protocol</code> column).</p>
<p>Since Chatty can only connect to one server at a time, you either have
to only join channels that are on the Event Chat servers, or run two
<a href="help-guide1.html">separate instances</a> of Chatty at the
same time.</p>
<p>There are different ways of connecting to a different server:</p>
<ul>
<li>The <code>/server &lt;host&gt;[:port]</code> command connects to the given server and
port manually (for example <code>/server irc.twitch.tv:443</code>,
replace with an Event Chat server accordingly).</li>
<li>The <code>-server</code> and <code>-port</code> commandline options
allow you to specify a different server when you start Chatty.</li>
<li>The <code>Server</code> and <code>Port</code> settings in the
Settings Dialog under <code>Advanced</code> allows you to set
fixed settings for the server to connect to. This especially makes sense
if you are using <a href="help-guide1.html">separate settings for different instances</a> of Chatty.</li>
</ul>
<p>If you want to switch between servers sometimes, you can create a
custom command to connect to Event Chat so you don't have to enter
the command with the IP and port manually every time. Go to
<code>Settings - Commands</code>, add a new Custom Command and enter:
<code>/eventchat /server &lt;server&gt;:&lt;port&gt;</code> (replace
with the appropriate IP and port of course). Then you
can just enter <code>/eventchat</code> in the inputbox (while not
being connected) and it will connect to Event Chat and if you want to
connect to regular Twitch Chat just connect regularly via the menu
(and it will use <code>irc.twitch.tv</code> if you didn't change the
server settings).</p>
</body>
</html>

View File

@ -32,6 +32,14 @@ joshimuz
-d
H:\\Chatty\\settings1</pre>
<p>The format has changed in newer Standalone versions, which requires a
prefix on each line:</p>
<pre>
[ArgOptions]
arguments=-channel
arguments=joshimuz</pre>
<p>Note that for this file, backslashes need to be escaped. For this option
you can alternatively also use forward slashes, which Java should
understand.</p>
@ -39,7 +47,7 @@ H:\\Chatty\\settings1</pre>
<p>When you specify any launch options on the commandline/in the shortcut,
then the launch options in the <code>Chatty.cfg</code> are ignored.</p>
<h3><a name="cfg-jvm">JVM Options</a></h3>
<h3><a name="cfg-jvm">JVM/Java Options</a></h3>
<p>The <code>[JVMOptions]</code> section contains parameters that are given
to the JVM (Java Virtual Machine) when Chatty is started. There should
already be a few options there by default, for example:</p>
@ -51,6 +59,14 @@ H:\\Chatty\\settings1</pre>
<p>These restrict the maximum heap (memory usage) to 400MB and disable
Hardware Acceleration to reduce GUI issues.</p>
<p>In newer Standalone versions this needs to be under the <code>[JavaOptions]</code>
section and also requires a prefix on each line:</p>
<pre>
[JavaOptions]
java-options=-Xmx400M
java-options=-Dsun.java2d.d3d=false</pre>
</body>
</html>

View File

@ -26,6 +26,7 @@
<ul>
<li><a href="#font">Broken characters / Fallback fonts</a></li>
<li><a href="#visual-glitches">Visual Artifacts/Glitches</a></li>
<li><a href="#scaling">Blurry UI Scaling</a></li>
</ul>
</li>
<li>Other
@ -189,14 +190,26 @@
</h2>
<h3>Windows Standalone Version</h3>
<p>The <code>Chatty.exe</code> uses the bundled Java (JRE) to execute the
<code>Chatty.jar</code> in the <code>app</code> directory. If nothing
happens after starting the <code>Chatty.jar</code>, try the following:</p>
<ul>
<li>Re-download the Standalone Bundle and make sure it extracts fully.</li>
<li>Make sure that the path where Chatty is located contains only ASCII
characters (basicially no non-english letters).</li>
</ul>
<p>The <code>Chatty.exe</code> uses the bundled Java (JRE) in the <code>runtime</code>
directory to execute the <code>Chatty.jar</code> in the <code>app</code>
directory. If you have issues executing the <code>Chatty.exe</code>, try
the following:</p>
<dl class="defList">
<dt>Error: Failed to find JVM..</dt>
<dd>The <code>Chatty.exe</code> and the bundled Java in the <code>runtime</code>
directory may not be compatible or they weren't installed correctly.
Manually delete the <code>Chatty.exe</code> and the <code>runtime</code>
directory and re-install the Standalone version and make sure it installs or
extracts fully.</dd>
<dt>Error: Class chatty/Chatty not found. / Failed to launch JVM.</dt>
<dd>Make sure that the path where Chatty is located contains only ASCII
characters (basicially no non-english letters).</dd>
<dt>Issue: Nothing happens when executing the Chatty.exe</dt>
<dd>In new Standalone versions (ChattyPortable.exe exists) make sure
that the directory <code>runtime/lib/ext</code> does not exist.</dd>
</dl>
<h3>JAR Version</h3>
<p>You need to have at least Java 8 JRE (Java Runtime Environment) installed to run Chatty.</p>
@ -305,6 +318,45 @@
for experiences of other users and possible workarounds, and add your
own data to the discussion.</p>
<h2>
<a name="scaling">Blurry UI Scaling</a>
<a href="#top" class="top">[back to menu]</a>
</h2>
<p>When using a High-DPI monitor or changing the monitor scale setting in
Windows, you may experience blurryness in the UI since UI scaling is not
very well supported at the moment.</p>
<h3>Windows</h3>
<p>If an app does not handle scaling Windows will attempt to scale up the
app automatically, which will usually not look very sharp. There are
different ways to tell Windows that Chatty/Java should handle the
scaling:</p>
<ul>
<li>The Windows Standalone (Chatty.exe) contains an application manifest
that should tell Windows that the app will do the scaling.</li>
<li>Some Java executables tell Windows that the app will do the scaling,
however the javaw.exe that is used by default when starting a JAR
may not do that.</li>
<li>You can change the Compatability settings of a Java executable in
order to tell Windows to let the app do the High-DPI scaling. This
however may cause issues when moving the app between differently
scaled screens (e.g. the scaling is done visually, but mouse events
are triggered as if it was scaled differently).</li>
</ul>
<p>Once Windows lets the app do the scaling, there are different
possibilities:</p>
<ul>
<li>Java 8 versions will simply not do any scaling at all, so on
High-DPI Chatty may appear smaller.</li>
<li>Java 9 and higher can scale the UI correctly (although not always
perfectly), except for images, which will still occur blurry.</li>
</ul>
<p>You can change the "UI Scaling" setting under "Main - Settings - Other"
to force a fixed scaling. This may not always work. To avoid blurry
images and other UI issues a scaling of <code>1.0</code> is recommended
(you can change "Look", "Font" and "Emoticons" settings to scale up
fonts and emotes).</p>
<h2>
<a name="log">Debug log</a>
<a href="#top" class="top">[back to menu]</a>

View File

@ -5,7 +5,7 @@
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<h1><a name="top">Chatty (Version: 0.15)</a></h1>
<h1><a name="top">Chatty (Version: 0.16)</a></h1>
<table>
<tr>
<td valign="top">
@ -20,6 +20,7 @@
<strong>Chat basics</strong>
<ul class="menu">
<li><a href="#join">Joining Channels</a>
<li><a href="#symbols">User Status Symbols</a></li>
<li><a href="#userlist">Userlist</a></li>
<li><a href="#favorites">Favorites / History</a></li>
@ -89,10 +90,11 @@
<li><a href="help-getting-started.html">Getting Started Guide</a></li>
<li><a href="help-guide1.html">Run more than one instance of Chatty</a></li>
<li><a href="help-guide2.html">What to do when getting login fails</a></li>
<li><a href="help-guide_create_shortcut.html">Create shortcut (launch options/icon)</a></li>
<li><a href="help-guide_create_shortcut.html">Create shortcut (launch options/icon)</a></li>
<li><a href="help-bouncer.html">Using a Bouncer</a></li>
<li><a href="#custom-processes">Run Custom Processes</a></li>
<li><a href="help-short_guides.html">More Guides..</a></li>
<li><a href="help-local_subonly.html">Local Subonly</a></li>
</ul>
<p style="padding: 10px;">Also check out the official
<a href="http://www.youtube.com/user/chattyclient">YouTube Channel</a>
@ -272,7 +274,7 @@
<code>/unhost</code>, <code>/raid</code>, <code>/unraid</code>,
<code>/color</code>
just like in normal Twitch Chat</li>
<li><code>/join &lt;channel&gt;</code> - Joins the given channel</li>
<li><code>/join &lt;channel&gt;</code> - Joins the given channels, see <a href="#join">Joining Channels</a> for more information</li>
<li><code>/part</code> or <code>/close</code> - Leaves the current channel</li>
<li><code>/joinhosted</code> - Join currently hosted channel (if any)</li>
<li><code>/favorite [channel]</code> and <code>/unfavorite [channel]</code> - Add/remove a channel to/from the Channel Favorites</li>
@ -294,7 +296,8 @@
<ul>
<li><a href="#streamhighlights">Stream Highlights / Markers commands</a> (including <code>/marker</code>)</li>
<li><code>/follow [user]</code>, <code>/unfollow [user]</code> - Follow
or unfollow the given user, or the current channel if no user is given</li>
or unfollow the given user, or the current channel if no user is given
<em>(Following/unfollowing has been removed from the Twitch API)</em></li>
</ul>
<h3><a name="commands-settings">Settings / Customization commands:</a></h3>
@ -386,9 +389,22 @@
<h3><a name="commands-chain">Execute several commands</a></h3>
<p>The <code>/chain</code> command allows you to run several commands at the
same time. Each part separated by a <code>|</code> is basicially
entered into the inputbox again. Whitespace around each part is trimmed.
Escape <code>|</code> with <code>|</code> to use it directly.</p>
entered into the inputbox again.</p>
<dl class="defList">
<dt><code>/chain [command1] | [command2] | [command3]</code></dt>
<dd>Runs command1, then command2, then command3. This can be repeated
further by adding more parts separated by <code>|</code>.</dd>
<dd>Whitespace around each command is trimmed.</dd>
<dd><em>Note:</em> A <code>|</code> character in a command would be
interpreted as a command separator. Escape <code>|</code> with
itself to use the character without special meaning (<code>||</code>).
If used in a Custom Command, the function <code>$cs()</code> (as in
<u>c</u>hain <u>s</u>afe) can be used around replacements for
escaping (e.g. <code>$cs($1-)</code>).</dd>
</dl>
<p>Examples:</p>
<dl class="defList">
<dt><code>/chain /echo a | /echo b</code></dt>
<dd>Outputs <code>a</code> and <code>b</code></dd>
@ -401,26 +417,44 @@
replacements, consider the following:</p>
<dl class="defList">
<dt><code>/chain /echo $(msg) | /echo abc</code></dt>
<dt><code>/chain /echo $cs($(msg)) | /echo abc</code></dt>
<dd>All replacements are performed before the <code>/chain</code>
command is executed, so anything in <code>$(msg)</code> is put in
first. If <code>$(msg)</code> contained <code>Hello World!</code>:<br />
<code>/chain /echo Hello World! | /echo abc</code></dd>
<dd>This means that if a replacement contains a <code>|</code> character
it would add an additional command. If <code>$(msg)</code> contained <code>Hello | World!</code>, then <code>World!</code> would be
separately entered into the inputbox (so it would output two <code>/echo</code>
info messages and send <code>World!</code> to chat):<br />
<dt><code>/chain /echo $(msg) | /echo abc</code></dt>
<dd>Assuming no escaping were to take place: If <code>$(msg)</code>
would contain <code>Hello | World!</code> then the <code>|</code>
in it would be interpreted as a command separator and thus <code>World!</code>
would be separately entered into the inputbox (so it would output
two <code>/echo</code> info messages and send <code>World!</code> to
chat):<br />
<code>/chain /echo Hello | World! | /echo abc</code></dd>
<dd>Since this could cause issues, any top-level replacement will escape
the <code>|</code> character automatically if the Custom Command
begins with the <code>/chain</code> command (so it would output
<dd>This could cause serious issues, so it is recommended to always
make sure text is safe to be used in the <code>/chain</code> command:
<ul>
<li>Wrap replacements in the <code>$cs()</code> function (as in <u>c</u>hain <u>s</u>afe)
when used in a <code>/chain</code> command to escape
<code>|</code> characters: <code>$cs($(msg))</code></li>
<li>In addition, any top-level replacement will escape
<code>|</code> characters automatically if the Custom Command
begins with <code>/chain </code> (so the above
example should normally not cause issues). However it is
good practice to always use the <code>$cs()</code> function
anyway (it won't be escaped twice) in case something changes
in the future so that the Custom Command doesn't begin with
<code>/chain</code> anymore.<br />
You can prevent this automatic escaping (if you are
absolutely sure that you want replacements to be able to
insert any command) by adding a backslash in front (this
doesn't work when you enter the <code>/chain</code> command
directly into the inputbox):<br />
<code>\/chain /echo Hello | World! | /echo abc</code></li>
</ul>
When properly escaped, it will turn into this (which outputs
<code>Hello | World!</code> and <code>abc</code>):<br />
<code>/chain /echo Hello || World! | /echo abc</code></dd>
<dd>You can prevent this automatic escaping (if you are absolutely sure that
you want replacements to be able to insert any command) by adding
a backslash in front (this doesn't work when you enter the <code>/chain</code>
command directly into the inputbox):<br />
<code>\/chain /echo Hello | World! | /echo abc</code></dd>
<code>/chain /echo Hello || World! | /echo abc</code>
</dd>
<dt><code>/chain /echo abc $(chain-test)</code></dt>
<dd>You can test this by using the <code>$(chain-test)</code> replacement.
@ -431,26 +465,131 @@
<code>Test | Message</code></dd>
</dl>
<h3><a name="commands-foreach">Execute the same command for each entry in a list</a></h3>
<p>The <code>/foreach</code> command allows you to run the same command for
each entry of a space separated list. The command section is run as a
Custom Command, with the <code>$1</code> replacement containing a single
list entry.</p>
<dl class="defList">
<dt><code>/foreach [list] > [command]</code></dt>
<dd>The command consist of the comma-separated list, the <code>&gt;</code>
character and the command to execute (whereas the command is run as
it's own Custom Command with the <code>$1</code> replacement).</dd>
<dd>List and command are trimmed for leading and trailing whitespace.</dd>
<dd><em>Note:</em> Everything after the first <code>&gt;</code>
character is interpreted as the command. If you want to use a
<code>&gt;</code> in the list section you have to escape it with
itself for it to be treated literally (<code>&gt;&gt;</code>). Both the
list and command section will consume a single <code>&gt;</code> only
if they are repeated (<code>&gt;&gt;</code> to <code>&gt;</code>, but
<code>></code> unmodified).</dd>
<dd>If you use a Custom Command replacement in the <code>[list]</code>
section, make sure the text is safe to use:
<ul>
<li>Wrap replacements in the <code>$fs()</code> function (as in <u>f</u>oreach <u>s</u>afe)
to escape <code>&gt;</code> characters: <code>$fs($1-)</code></li>
<li>In addition, any top-level replacements will escape <code>&gt;</code>
characters automatically if the Custom Command begins with
<code>/foreach </code>. However it is good practice to
always use the <code>$fs()</code> function anyway (it won't
be escaped twice) in case something changes in the future so
that the Custom Command doesn't begin with <code>/foreach</code>
anymore.</li>
</ul>
</dd>
</dl>
<p>Examples:</p>
<dl class="defList">
<dt><code>/foreach a b c > /echo $1</code></dt>
<dd>Outputs <code>a</code>, <code>b</code> and <code>c</code> when
entered into the chat inputbox.</dd>
<dt><code>//foreach a b c > /echo \$1</code></dt>
<dd>Outputs <code>a</code>, <code>b</code> and <code>c</code> when
entered into the chat inputbox. Note that the double slash at the
start runs this as a Custom Command, so the <code>$1</code> needs to
be escaped, so it is only replaced when the <code>/echo</code> is
run for each list entry.</dd>
<dt><code>/foreach a &lt;b>> c > /echo $1</code></dt>
<dd>Outputs <code>a</code>, <code>&lt;b&gt;</code> and <code>c</code>
when entered into the chat inputbox. Note the escaped <code>&gt;</code>
in the list entry.</dd>
<dt><code>Open Streams=/foreach $fs($1-) > /openUrl https://twitch.tv/\$1</code> (added as a Streams Context menu entry)</dt>
<dd>When several channels are selected and the command run, it will
replace <code>$1-</code> with the list of selected streams and then
open the URL for each one of them. Note that the <code>$1</code> in
the <code>/openUrl</code> command is escaped.</dd>
</dl>
<p>Detailed Explanation Example:</p>
<dl class="defList">
<dt><code>/foreachtest /foreach a b c > /echo \$1</code> (added to the Custom Commands list)</dt>
<dd>Outputs <code>a</code>, <code>b</code> and <code>c</code> when
<code>/foreachtest</code> is entered into the chat inputbox.</dd>
<dd>Note the <code>\$1</code> with the escape character in front, which
preserves it for replacement when the <code>/echo</code> is run.
<p>This is what happens when you enter <code>/foreachtest</code>:</p>
<ol>
<li>Replacements are performed on the Custom Command
<code>/foreach a b c > /echo \$1</code>. Since the <code>$1</code>
is escaped it is treated as plain text and not replaced (the
<code>\</code> is consumed).</li>
<li>The result <code>/foreach a b c > /echo $1</code> is run
and the <code>/foreach</code> command will use everything
after the <code>></code> as the Custom Command to run (and
trim whitespace).</li>
<li>The Custom Command <code>/echo $1</code> is run with <code>a</code>
as parameter, which results in <code>/echo a</code> being
run. The same is repeated for <code>b</code> and <code>c</code>.</li>
</ol>
<p>If the <code>$1</code> is not escaped:</p>
<ol>
<li>Replacements are performed on the Custom Command
<code>/foreach a b c > /echo $1</code>. The <code>$1</code>
is replaced with an empty string (no argument given with the
<code>/foreachtest</code> command).</li>
<li>The result <code>/foreach a b c > /echo </code> is run
and the <code>/foreach</code> command will use everything
after the <code>></code> as the Custom Command to run (and
trim whitespace).</li>
<li>The Custom Command <code>/echo</code> is run with <code>a</code>
as parameter (although there is no replacement to make use
of it), which results in <code>/echo</code> being run,
resulting in an error message. The same is repeated for
<code>b</code> and <code>c</code>.</li>
</ol>
<p>If the <code>$1</code> is not escaped, but you provide a command
argument, e.g. <code>/foreachtest 123</code>, then it will
replace the <code>$1</code> with <code>123</code> in the first
step, so <code>/echo 123</code> will be run three times.</p>
</dd>
</dl>
<h2>
<a name="login">Twitch Login</a>
<a href="#top" class="top">[back to menu]</a>
</h2>
<p>The login data consists of a <em>username</em> (or account name) and most
importantly an <em>access token</em>, which is sort of a revokable
password that can also have different types of access associated with
it, the ones usable for Chatty being:</p>
password that can also have different types of access (scopes) associated with
it. You can see the full list of associated scopes under "Main - Account"
(hover over each entry for more information if available).</p>
<p>Some more information on some scopes:</p>
<dl>
<dt><code>Chat access</code></dt>
<dd>Required to connect to chat (required for Chatty).</dd>
<dt><code>Read user info</code></dt>
<dd>Required to request the streams you follow, so you can get <a href="#notifications">notified</a>
when they start streaming.</dd>
<dd>Required to connect to chat. Some newer APIs need the "Read chat"
and "Send chat" scopes, although for connecting to chat either should
work.</dd>
<dt><code>Editor access</code></dt>
<dd>Allows you to change the stream title/game on your channel and
channels you are an editor for (<a href="help-admin.html">Admin Dialog</a>).</dd>
<dd>Allows you to change the stream title/game on your channel, for
editors this only works with the old API
(<a href="help-admin.html">Admin Dialog</a>).</dd>
<dt><code>Edit broadcast</code></dt>
<dd>Allows you to create Stream Markers/set Stream Tags on your channel
@ -464,11 +603,6 @@
<dd>Required to view the list of your subscribers
via the <a href="#followers">Subscribers Dialog</a> (if you have a sub button).</dd>
<dt><code>Follow channels</code>
<dd>Gives you access to use the context menu (right-click) entries
<code>Miscellaneous - Follow/Unfollow Channel</code> and use the
<code>/follow</code> and <code>/unfollow</code> commands.</dd>
<dt><code>Your Subscriptions</code></dt>
<dd>Enables more accurate display of your emotes (for "Extra - Emotes
Dialog", TAB Completion and when sending a message).</dd>
@ -484,45 +618,27 @@
channel.</dd>
</dl>
<p>Once requested from Twitch, the login data is stored locally on your
computer along with the other settings of Chatty.
<span style="text-decoration: line-through">Since Twitch gives out the
access token per application, any access token for the same account
requested with Chatty will be invalidated when you request a new access
token</span>.
<span style="text-decoration: underline">This doesn't seem to be the
case anymore.</span></p>
<p>If getting login data fails, read <a href="help-guide2.html">this guide</a>.
If your login was determined invalid, read <a href="#login-invalid">down below</a>.</p>
<h3><a name="access">Allow more access</a></h3>
<p>To allow Chatty more access than it already has (e.g. if you haven't
selected editor access before, but you want it now), you need to request
a new access token. Just go to <code>&lt;Main - Account&gt;</code>,
delete the login and request it again with the necessary access.</p>
<h3>Allow less access</h3>
<p>To allow Chatty less access than it already has (e.g. you don't want it
to have editor access anymore) you need to first revoke access
completely in your Twitch Account
<a href="http://www.twitch.tv/settings/connections">Settings</a>, then
authorize access again. What will not work is just requesting a new
token without selecting the now unwanted access. Twitch will always
respond with a token that has at least as much access as the previous
one.</p>
<h3><a name="access">Allow more/less access</a></h3>
<p>To change what Chatty is allowed to do (e.g. if you haven't selected
editor access before, but you want it now), you need to request a new
access token. Just go to <code>&lt;Main - Account&gt;</code>,
delete the login and request it again with the access scopes that you
want selected.</p>
<h3><a name="login-security">Security</a></h3>
<p>The access token is saved in the <code>login</code> file in the settings
<a href="help-guide_folders.html">directory</a> and can thus be accessed
by anyone having access to your computer.
It allows anyone who obtains it to chat in your name and access the other
things listed above (if you allowed it when getting the token). If you think
the token may have been compromised, please immediately go to your Twitch
Settings subsection
It allows anyone who obtains it to chat in your name and do the other things
that you have allowed Chatty to do. If you think the token may have been
compromised, please immediately go to your Twitch Settings subsection
<a href="http://www.twitch.tv/settings/connections">Connections</a>
and <em>revoke the accesss</em> there. You can then request a new one for
which Twitch will ask you to authorize Chatty again.</p>
and <em>revoke the accesss</em> there. This will make all tokens previously
requested for Chatty associated with that account invalid. You can then
request a new one for which Twitch will ask you to authorize Chatty again.</p>
<h3><a name="login-invalid">Invalid Login</a></h3>
<p>If your login is determined invalid (either by checking it manually or
@ -552,20 +668,14 @@
</li>
<li>Your login is actually invalid:
<ul>
<li><span style="text-decoration: line-through">You have requested new login data for the same Twitch Account from
another instance of Chatty, for example on another Computer, which
has automatically invalidated the previously requested login data
(access token).</span>
<span style="text-decoration: underline">This may or may not
be the case anymore.</span></li>
<li>You have just requested login data and something went wrong, or it
wasn't loaded properly from the settings.</li>
<li>The token was invalidated for some other reason.</li>
<li>How to proceed:
<ul>
<li>Go to <code>&lt;Main - Account&gt;</code> to open
the <code>Login configuration</code> (you may
already have it open), click <code>[Remove login]</code>
the login configuration (if you don't already have
it open), click <code>[Remove login]</code>
and create a new login.</li>
</ul>
</li>
@ -575,15 +685,59 @@
<p>What happens when your login is no longer valid:</p>
<ul>
<li>You can't connect to chat anymore. If you are already connected and
stay connected, this doesn't matter.</li>
<li>Your followed streams are no longer requested, so you may not be
informed about streams starting anymore (if you had that enabled in the
first place).</li>
<li>Other features that require authentication won't work properly anymore, like
the Admin Dialog.</li>
<li>You can't connect to chat anymore. If you are already connected, you
probably stay connected though.</li>
<li>Various features that require authentication may not work anymore,
such as showing live streams you follow or changing your stream
title.</li>
</ul>
<h2>
<a name="join">Joining Channels</a>
<a href="#top" class="top">[back to menu]</a>
</h2>
<p>There are various ways of joining channels:</p>
<ul>
<li>The "Settings - Main - On start" setting for when Chatty is started</li>
<li>The "Main - Connect" dialog when connecting</li>
<li>The "Channels - Join Channel" dialog</li>
<li>The "Channels - Favorites / History" dialog</li>
<li>The <code>/join</code> <a href="#commands">command</a></li>
<li>The "Channels - Live Channels" dialog context menu or (if configured
that way) via double-click or space while a stream is selected</li>
<li>Right-clicking a Stream Status Notification</li>
<li>The user context menu</li>
<li>Loading a <a href="#layouts">Layout</a></li>
</ul>
<h3>Channel list format</h3>
<p>In places where you can enter a channel name you can specify several
channels by separating them with a comma. Channels can be entered with
or without leading <code>#</code>. A lot of Twitch links should also
work.</p>
<p>Various special elements can be added that are turned into channels:</p>
<ul>
<li>Can include <a href="help-addressbook.html">Addressbook</a> categories,
e.g. <code>[vip]</code> to join all entries associated with the
"vip" category. Can restrict to just channel entries <code>[vip #]</code>
(would only get Addressbook entries such as "#joshimuz") or
non-channel entries <code>[vip !#]</code> (entries such as "joshimuz").
Note that both channel entries and non-channel entries are otherwise
handled the same, both would join "#joshimuz" in this example.</li>
<li>Instead of Addressbook categories <code>[*]</code> can be used for all
favorited channels (favorited under "Channels - Favorites / History").</li>
<li>Can also restrict to just live channels e.g. <code>[vip live]</code>,
<code>[vip # live]</code> or <code>[* live]</code> (only works for
live channels Chatty already knows the status for, such as followed
channels).</li>
</ul>
<p>Example: <code>/join #joshimuz, esl_csgo, [mod], https://twitch.tv/esamarathon, [* live]</code></p>
(joins <code>#joshimuz</code>, <code>#esl_csgo</code>, any entries
associated with the <code>mod</code> Addressbook category, <code>#esamarathon</code>
and any favorited channels that are live and followed)
<h2>
<a name="symbols">User Status Symbols</a>
<a href="#top" class="top">[back to menu]</a>
@ -1394,7 +1548,7 @@ MiniK http://static-cdn.jtvnw.net/emoticons/v1/25/1.0 set:793 id:3287</pre
This is always available for streams whose channels you have joined in chat,
but with this feature enabled, this works for all streams you follow even
without joining their channel.</p>
<p>This feature requires <code>Read user info</code> access, so Chatty can
<p>This feature requires <code>Show followed streams</code> access, so Chatty can
request your followed streams. Read the <a href="#login">section about login</a>
to learn more about login data and access.</p>
<p>You can enable/disable this feature in the Settings under <code>Notifications</code>.</p>
@ -1551,12 +1705,23 @@ MiniK http://static-cdn.jtvnw.net/emoticons/v1/25/1.0 set:793 id:3287</pre
</h2>
<p>Using the <code>/proc</code> command you can start processes directly out
of Chatty. An example of where this is already integrated into Chatty is
starting Streamlink, however this is a more basic implementation.
<em>This is probably only interesting for advanced users.</em></p>
starting Streamlink, however this is a more basic implementation.</p>
<p><em>You should only use this if you know what you are doing, running
system processes can be dangerous if done wrong. Take special care when
unsafe/unpredictable text is being used, for example from chat messages,
which may need to be properly quoted/escaped depending on context.</em></p>
<ul>
<li><code>/proc exec &lt;command and parameters&gt;</code> - Try to
start a process on your computer.</li>
start a process on your computer. The command and parameters are
split by spaces, unless enclosed by quotes.<br /><br />
A quote can be escaped by adding a backslash in front <code>\"</code>
(note that if there is no closing quote, the last quote, even if
escaped, is used as closing quote). Adding another backslash, e.g.
<code>\\"</code> will still escape the quote. The debug log shows
both the original command text and how it was split up.</li>
<li><code>/proc execEcho &lt;command and parameters&gt;</code> - Same as
above, but prints the output of the process to the current tab.</li>
<li><code>/proc list</code> - List of processes currently running out of
Chatty.</li>
<li><code>/proc kill &lt;id&gt;</code> - Forcefully end the process with
@ -1644,8 +1809,8 @@ MiniK http://static-cdn.jtvnw.net/emoticons/v1/25/1.0 set:793 id:3287</pre
supply a port a default one is used. If the used port is already
taken by another program you have to specify one that works or else
no instance of Chatty will be able to start.</dd>
<dd>Currently only the <code>-channel</code> parameter is used when
forwarded to an already running instance (joining the channel).</dd>
<dd>Currently only the <code>-channel</code> and <code>-cc</code>
parameters are forwarded to an already running instance.</dd>
<dt><code>-cc &lt;name&gt; [parameters]</code></dt>
<dd>Execute the Custom Command with the given name on start. The

View File

@ -203,3 +203,7 @@ td.symbol {
font-size: 1.1em;
text-align: center;
}
.m {
font-family: monospace;
}

View File

@ -16,9 +16,9 @@ function loaded() {
{ ceiling: null, text: "$years years ago" }
]
}
document.getElementById("ago").innerHTML = "Version 0.15 released "+humanized_time_span("2021/07/03", Date(), custom_date_formats)+"";
document.getElementById("ago").innerHTML = "Version 0.16 released "+humanized_time_span("2022/01/06", Date(), custom_date_formats)+"";
getDownloads("v0.15");
getDownloads("v0.16");
slideshow_init("slideshow");
}
@ -108,7 +108,6 @@ function getDownloads(tag) {
<h3>Watching</h3>
<ul>
<li>Get notified when channels you follow go live</li>
<li>Follow and unfollow channels through Chatty</li>
<li>Easily open streams in your browser, or run <a href="https://github.com/chrippa/livestreamer">Livestreamer</a> (or the more up-to-date <a href="https://streamlink.github.io/">Streamlink</a>) out of Chatty</li>
</ul>
</div>
@ -158,7 +157,7 @@ function getDownloads(tag) {
<h2 id="download">Download</h2>
<p>Choose one of the following downloads of <strong>Chatty Version 0.15</strong><span id="dlCount" style="margin-bottom:7px;"></span>. For older versions or betas go to the <a href="https://github.com/chatty/chatty/releases">GitHub Releases</a>. Checksums for release files are available as <a href="https://tduva.com/chatty/checksums/v0.15/">SHA-256 hashes</a>.</p>
<p>Choose one of the following downloads of <strong>Chatty Version 0.16</strong><span id="dlCount" style="margin-bottom:7px;"></span>. For older versions or betas go to the <a href="https://github.com/chatty/chatty/releases">GitHub Releases</a>. Checksums for release files are available as <a href="https://tduva.com/chatty/checksums/v0.16/">SHA-256 hashes</a>.</p>
<p>If this is your first time using Chatty check out the <a href="help/help-getting-started.html"><strong>Getting Started Guide</strong></a>.</p>
<h3>Windows</h3>
@ -170,11 +169,11 @@ function getDownloads(tag) {
<tr>
<td>
<dl>
<dt><a href="https://github.com/chatty/chatty/releases/download/v0.15/Chatty_0.15_win_standalone_setup.exe"><strong>Download Windows Standalone (Installer)</strong></a> <span class="recommended"><sup>Recommended</sup></span></dt>
<dt><a href="https://github.com/chatty/chatty/releases/download/v0.16/Chatty_0.16_win_standalone_setup.exe"><strong>Download Windows Standalone (Installer)</strong></a> <span class="recommended"><sup>Recommended</sup></span></dt>
<dd>Install into a folder of your choice and start <code>Chatty.exe</code> (or optionally created shortcuts).</dd>
</dl>
<dl>
<dt><a href="https://github.com/chatty/chatty/releases/download/v0.15/Chatty_0.15_win_standalone.zip">Download Windows Standalone (.zip)</a></dt>
<dt><a href="https://github.com/chatty/chatty/releases/download/v0.16/Chatty_0.16_win_standalone.zip">Download Windows Standalone (.zip)</a></dt>
<dd>Extract the .zip into a folder of your choice and start <code>Chatty.exe</code>.</dd>
</dl>
@ -182,11 +181,11 @@ function getDownloads(tag) {
</td>
<td>
<dl>
<dt><a href="https://github.com/chatty/chatty/releases/download/v0.15/Chatty_0.15_win_setup.exe">Download JAR-Version (Installer)</a></dt>
<dt><a href="https://github.com/chatty/chatty/releases/download/v0.16/Chatty_0.16_win_setup.exe">Download JAR-Version (Installer)</a></dt>
<dd>Install into a folder of your choice and start <code>Chatty.jar</code> (or optionally created shortcuts).</dd>
</dl>
<dl>
<dt><a href="https://github.com/chatty/chatty/releases/download/v0.15/Chatty_0.15.zip">Download JAR-Version (.zip)</a></dt>
<dt><a href="https://github.com/chatty/chatty/releases/download/v0.16/Chatty_0.16.zip">Download JAR-Version (.zip)</a></dt>
<dd>Extract the .zip into a folder of your choice and start <code>Chatty.jar</code>.</dd>
</dl>
</td>
@ -194,7 +193,7 @@ function getDownloads(tag) {
</table>
<h3>Non-Windows</h3>
<p>For OS other than Windows (e.g. Linux or MacOS) you will need to download the <a href="https://github.com/chatty/chatty/releases/download/v0.15/Chatty_0.15.zip">JAR-Version (.zip)</a> and must have Java 8 or later installed on your system. Extract the .zip into a folder of your choice and start <code>Chatty.jar</code>.</p>
<p>For OS other than Windows (e.g. Linux or MacOS) you will need to download the <a href="https://github.com/chatty/chatty/releases/download/v0.16/Chatty_0.16.zip">JAR-Version (.zip)</a> and must have Java 8 or later installed on your system. Extract the .zip into a folder of your choice and start <code>Chatty.jar</code>.</p>
<h2 id="feedback">Contact</h2>
<p>If you have any feedback or questions feel free to contact me. You can <a href="https://discord.gg/WTuqGeJ">join the Chatty Discord</a> <sup>preferred</sup>, write me an <a href="mailto:chattyclient@gmail.com">E-Mail</a> or use <a href="https://twitter.com/chattyclient">Twitter</a>.</p>