v0.18 files

This commit is contained in:
tduva 2022-04-09 21:50:15 +02:00
parent 463a6ffaed
commit 595395573f
No known key found for this signature in database
GPG Key ID: 01EB6B81F18C5128
6 changed files with 212 additions and 14 deletions

View File

@ -20,6 +20,7 @@
<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>
<li><a href="#runin">Run command in specific channel</a></li>
</ul>
</li>
<li>
@ -116,6 +117,10 @@
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>
<h3><a name="runin">Run command in specific channel</a></h3>
<p>The <a href="help.html#commands-runin">/runin command</a> can be used
to run a command in a specific open channel.</p>
<h2><a name="replacements">Replacements</a></h2>
<ul>
<li><a href="#simple-replacements">Simple Replacements</a></li>
@ -271,7 +276,7 @@
</tr>
<!-- User Context Menu -->
<tr>
<th rowspan="5">User Context Menu</th>
<th rowspan="6">User Context Menu</th>
<td><code>1</code></td>
<td>Name of the user</td>
</tr>
@ -285,6 +290,14 @@
chat you opened the User Contex Menu from, not available for
your own messages)</td>
</tr>
<tr>
<td><code>msg-time</code></td>
<td>Message time of the selected message (depending on the line in
chat you opened the User Contex Menu from, not available for
your own messages), as milliseconds since
1970-01-01 00:00:00 UTC, intended to be used with <code>$datetime()</code>,
e.g. <code>$datetime(datetime,,,$(msg-time))</code></td>
</tr>
<tr>
<td><code>msg-id</code></td>
<td>Message id of the selected message (depending on the line in
@ -299,7 +312,7 @@
</tr>
<!-- User Dialog -->
<tr>
<th rowspan="7">User Dialog</th>
<th rowspan="8">User Dialog</th>
<td><em>All from User Context Menu</em></td>
<td>See above</td>
</tr>
@ -313,6 +326,14 @@
of message, depending on the line in chat you opened it from,
not available for your own messages)</td>
</tr>
<tr>
<td><code>msg-time</code></td>
<td>Message time of the selected message (<code>&gt;</code> in front
of message, depending on the line in chat you opened it from,
not available for your own messages), as milliseconds since
1970-01-01 00:00:00 UTC, intended to be used with <code>$datetime()</code>,
e.g. <code>$datetime(datetime,,,$(msg-time))</code></td>
</tr>
<tr>
<td><code>msg-id</code></td>
<td>Message id of the selected message (<code>&gt;</code> in front
@ -395,6 +416,9 @@
<li><code>user-id</code> - The Twitch ID of the user (if available)</li>
<li><code>twitch-badges</code> - A textual representation of the Twitch badges (if available)</li>
<li><code>twitch-badge-info</code> - Another textual representation of the Twitch badges (if available)</li>
<li><code>user-stream</code> - The name of the stream the user talked in</li>
<li><code>user-stream-id</code> - The id of the stream the user talked in</li>
<li><code>user-channel</code> - The name of the channel the user talked in (with leading # if applicable)</li>
</ul>
<h3>Pre-defined Parameters Example</h3>
@ -537,12 +561,13 @@
<dd><em>Example:</em> <code>$input()</code></dd>
<dd><em>Example:</em> <code>$input(Enter a number please)</code></dd>
<dt><code>$datetime([format],[timezone],[locale])</code></dt>
<dt><code>$datetime([format],[timezone],[locale],[unix time])</code></dt>
<dd>Outputs the current date/time. You can optionally give a format
pattern (based on <a href="https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html#patterns">DateTimeFormatter</a>),
a timezone (based on <a href="https://docs.oracle.com/javase/8/docs/api/java/time/ZoneId.html">ZoneId</a>,
although something like "New York" should also work) and a locale
(a language tag such as "en").</dd>
(a language tag such as "en"). The optional unix time parameter must
be in milliseconds.</dd>
<dd>Predefined formats:
<ul style="margin-top:0">
<li>Short: <code>date</code>, <code>time</code>, <code>datetime</code></li>
@ -588,6 +613,11 @@
<dd>(Custom format, <code>,</code> escaped since it normally
separates function parameters, empty timezone in order to be
able to specify locale.)</dd>
<dt><code>$datetime(datetime2,Berlin,,1646937275000)</code></dt>
<dd><code>2022-03-10 19:34:35 MEZ GMT+0100</code></dd>
<dd>(Preset format, with timezone, no locale, with a time
specified in milliseconds since 1970-01-01 00:00:00 UTC.)</dd>
</dl>
</dl>

View File

@ -42,6 +42,20 @@
re-run the last command of that tab (for example when it couldn't find the
stream, but you want to retry now because you know it's come online).</p>
<h3>Command</h3>
<p>The <code>/livestreamer</code> command can be entered into the inputbox
or used in a Custom Command to run Livestreamer/Streamlink as configured
in the Streamlink dialog.</p>
<dl class="defList">
<dt><code>/livestreamer &lt;stream&gt; [quality]</code></dt>
<dd>The stream is required, if no quality is given the dialog will open
to be able to select it.</dd>
<dd>Instead of specifying a stream <code>$active</code> can be used to
open the stream of the currently active channel.</dd>
<dd>Example: <code>/livestreamer joshimuz best</code></dd>
</dl>
<h2><a name="settings">Settings</a></h2>
<p>The settings can be changed in the Streamlink dialog.</p>
<dl class="dl-settings">

View File

@ -17,6 +17,7 @@
<h1><a name="top">Release Information</a></h1>
<p>
<a href="#0.18">0.18</a> |
<a href="#0.17">0.17</a> |
<a href="#0.16">0.16</a> |
<a href="#0.15">0.15</a> |
@ -66,7 +67,63 @@
full list of changes.</p>
<h2>
<a name="0.17">Version 0.17</a> <a name="latest">(This one!)</a> (2022-01-31)
<a name="0.18">Version 0.18</a> <a name="latest">(This one!)</a> (2022-04-09)
<a href="#top" class="top">[back to top]</a>
</h2>
<pre>
### Twitch Features
- Added new Announcement messages and `/announce` command (Twitch hasn't added
commands for the color variants yet)
- Added badge for first message in channel (shown for mods only)
- Added workaround for Twitch filtering out Emoji joiner characters
### Highlight / Ignore Matching
- Added separate `_global_highlightBlacklist` and `_global_ignoreBlacklist`
Matching Preset names
- Added Highlight Matching substitutes / lookalikes
- Added setting and prefix to allow messages to be highlighted even if they
would otherwise have been ignored (Override Ignore if Highlighted)
- Added `if:` Matching prefix to specify conditions with an "or" relationship
### Custom Commands
- Added additional Custom Command identifiers related to user/channel
- Added identifier for User Dialog/Context Menu selected message time
- Added optional unix time input to `$datetime()` Custom Command function
- Added `/runin` command to run a command in a specific channel
### Other Settings
- Added badge scaling settings
- Emote scaling setting now applies to GIFs as well
- Added option to add Stream Uptime to timestamps
- Added search field to Settings Dialog
- Added sound test button to Sound Settings tab
- Added setting to show Connect Dialog (when it usually wouldn't) if login or
channel is missing
- Added hotkey action to switch to a specific tab index/channel
- Added warning to hotkey table when the same key is used more than once
### Other
- Added a new badge context menu entry to hide badges (you could already add a
Custom Badge with no image for that, but this is a bit more straightforward)
- Added "View" menu entry to toggle the userlist, changed default hotkey
- Updated help
### Bugfixes
- Fixed scaling on Emote Details page
- Fixed Favorite Emotes not working properly for Local Emotes
- Make GIF animations (of the same image) more likely to stay synchronized
- Fixed some emotes showing "[modified]" when they weren't actually emotes
modified by channel points
- Added workaround for played sounds sometimes not being cleaned up correctly
- Fixed focus being stolen from the input box when a second channel is opened
- Fixed error sometimes occuring when closing window and moving mouse over chat
- Fixed rare edge case where a PubSub message could reopen a closed channel tab
- Fixed small issues when adding a hidden badge
- Fixed error that could occur when saving the "login" file failed
</pre>
<h2>
<a name="0.17">Version 0.17</a> (2022-01-31)
<a href="#top" class="top">[back to top]</a>
</h2>
<p>The Twitch v5 API is scheduled to be shutdown at the end of February 2022

View File

@ -1074,6 +1074,17 @@
<li><code>config:!blacklist</code> - Ignore the overall
blacklist for this entry. The <code>blacklist:</code> prefix
still applies though.</li>
<li><code>config:!ignore</code> - Allows an ignored message to
be highlighted and overrides the ignored status of the
message, so it shows up as a regular highlighted message.
In the Highlight settings you can also enable this for all
Highlight items, without having to apply this prefix to each
one.</li>
<li><code>config:s</code>, <code>config:!s</code> - Enable or
disable Substitutes. You can turn it on for all items by
default in the "Substitutes / Lookalikes" dialog in the
Highlight settings (if no prefix is provided it will use the
default setting).</li>
</ul>
</li>
<li><a name="Highlight_Prefix-blacklist"><code>blacklist:</code></a> to specify one or more text patterns
@ -1093,6 +1104,33 @@
in the message, while <code>blacklist:!cheesecake reg:^!\w+</code>
will only prevent the match when it fully encompasses the regular
text match, so only when the message starts with <code>!cheesecake</code>.</li>
<li><a name="Highlight_Prefix-if"><code>if:</code></a> to specify
additional conditions that have an "or" relationship to eachother.
This is a comma-separated list (enclose spaces and commas in quotes
to ignore them) of Highlight items, whereas at least one has to
match.
<br/><br />
Prefixes in an item always have an "and" relationship, so they all
have to match (<code>cat:abc user:a_name</code> requires the "abc"
Addressbook category <em>and</em> the "a_name" username), the <code>if:</code> allows for
some more flexibility (<code>if:"cat:abc","user:a_name"</code> requires
only one of them).
<br/><br />
Example: <code>config:any if:"config:info start:[AutoMod]"," " reg:complicated regex</code>
<ul>
<li><code>config:any</code> - Match any type of message,
otherwise it would only match regular chat messages, as is
the default</li>
<li>First <code>if:</code> entry: <code>"config:info start:[AutoMod]"</code> - Match info
messages starting with "[AutoMod]" (note the quotes due to
the spaces)</li>
<li>Second <code>if:</code> entry: <code>" "</code> - This one is a bit weird,
it just specifies an empty item, which matches any regular
chat message (could also have <code>reg:.*</code> or something).</li>
<li><code>reg:complicated regex</code> - The other stuff was
just to narrow down which messages to match on, so now match
the actual text.</li>
</ul></li>
</ul>
<h3><a name="Highlight_Meta_Behaviour">Meta Prefixes (Behaviour)</a></h3>
@ -1114,6 +1152,12 @@
<ul>
<li><code>config:silent</code> - Disable sounds for this item</li>
<li><code>config:!notify</code> - Disable notifications for this item</li>
<li><code>config:!ignore</code> - Allows an ignored message to
be highlighted and overrides the ignored status of the
message, so it shows up as a regular highlighted message.
In the Highlight settings you can also enable this for all
Highlight items, without having to apply this prefix to each
one.</li>
</ul>
</li>
<li><code>n:</code> to provide a note that is ignored for matching.

View File

@ -5,7 +5,7 @@
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<h1><a name="top">Chatty (Version: 0.17)</a></h1>
<h1><a name="top">Chatty (Version: 0.18)</a></h1>
<table>
<tr>
<td valign="top">
@ -569,6 +569,59 @@
</dd>
</dl>
<h3><a name="commands-runin">Run a command in a specific open channel</a></h3>
<p>The <code>/runin</code> command runs a command in the context of a
specific open channel, as if you had entered it into the channel's
inputbox. Without this, commands usually run in the context of the
currently active channel.</p>
<dl class="defList">
<dt><code>/runin [channel] [command]</code></dt>
<dd>The channel must be a regular channel with or without leading "#" (<code>#channelname</code>)
or a whisper channel (<code>$username</code>).</dd>
<dd>The command can be anything you could enter into a chat inputbox.</dd>
</dl>
<p>Examples:</p>
<dl class="defList">
<dt><code>/runin #chan2 /echo abc</code></dt>
<dd>Outputs the info message "abc" in the channel "#chan2" (if it is
open in Chatty).</dd>
<dt><code>//runin #chan2 //echo Channel context: \\$(chan) -> \$(chan)</code></dt>
<dd>This example is entered directly into a chat inputbox and outputs
an info message about the changed channel context in "#chan2". Let's say the
command is entered in the channel "#chan1".</dd>
<dd>The command begins with two slashes (<code>//</code>), so it is
interpreted as an anonymous Custom Command:
<ul>
<li><code>\\$(chan)</code> turns into <code>\#chan1</code> (the <code>\\</code> escaped
the backslash itself, not the <code>$</code>, so the replacement is performed)</li>
<li><code>\$(chan)</code> turns into <code>$(chan)</code> (this <code>\</code> actually escapes the
<code>$</code>, so the replacement is not performed here)</li>
</ul>
The result <code>/runin #chan2 //echo Channel context: \#chan1 -> $(chan)</code>
is run, which runs <code>//echo Channel context: \#chan1 -> $(chan)</code>
in "#chan2".</dd>
<dd>Yet again, the command begins with two slashes (<code>//</code>) and
is interpreted as an anonymous Custom Command:
<ul>
<li><code>\#chan1</code> turns into <code>#chan1</code> (the
backslash removes any special meaning from the following
characters, which in this case is not necessary, but it you
had entered this in a whisper channel <code>$user1</code>
then the <code>$</code> would have had to be escaped)</li>
<li><code>$(chan)</code> turns into <code>#chan2</code> (this
Custom Command is run in the new channel context, so it
turns into the target channel, which does not need to be
escaped further, even if it were <code>$user2</code>, since
it doesn't get interpreted as a Custom Command after this)</li>
</ul>
The resulting command <code>/echo Channel context: #chan1 -> #chan2</code>
is then run and outputs an info message.
</dd>
</dl>
<h2>
<a name="login">Twitch Login</a>
<a href="#top" class="top">[back to menu]</a>

View File

@ -16,9 +16,9 @@ function loaded() {
{ ceiling: null, text: "$years years ago" }
]
}
document.getElementById("ago").innerHTML = "Version 0.17 released "+humanized_time_span("2022/01/31", Date(), custom_date_formats)+"";
document.getElementById("ago").innerHTML = "Version 0.18 released "+humanized_time_span("2022/04/09", Date(), custom_date_formats)+"";
getDownloads("v0.17");
getDownloads("v0.18");
slideshow_init("slideshow");
}
@ -158,7 +158,7 @@ function getDownloads(tag) {
<h2 id="download">Download</h2>
<p>Choose one of the following downloads of <strong>Chatty Version 0.17</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.17/">SHA-256 hashes</a>.</p>
<p>Choose one of the following downloads of <strong>Chatty Version 0.18</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.18/">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 +170,11 @@ function getDownloads(tag) {
<tr>
<td>
<dl>
<dt><a href="https://github.com/chatty/chatty/releases/download/v0.17/Chatty_0.17_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.18/Chatty_0.18_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.17/Chatty_0.17_win_standalone.zip">Download Windows Standalone (.zip)</a></dt>
<dt><a href="https://github.com/chatty/chatty/releases/download/v0.18/Chatty_0.18_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 +182,11 @@ function getDownloads(tag) {
</td>
<td>
<dl>
<dt><a href="https://github.com/chatty/chatty/releases/download/v0.17/Chatty_0.17_win_setup.exe">Download JAR-Version (Installer)</a></dt>
<dt><a href="https://github.com/chatty/chatty/releases/download/v0.18/Chatty_0.18_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.17/Chatty_0.17.zip">Download JAR-Version (.zip)</a></dt>
<dt><a href="https://github.com/chatty/chatty/releases/download/v0.18/Chatty_0.18.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 +194,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.17/Chatty_0.17.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.18/Chatty_0.18.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>