From bdcefef978b1dd2a73382fce5af76c7634e690bf Mon Sep 17 00:00:00 2001
From: tduva
You can also execute Anynomous Custom Commands directly from the +
You can also execute Anonymous Custom Commands directly from the
inputbox, by prepending //
, which allows you to use
Replacements:
Note: If you want to use a dollar sign
- $
without it having a special meaning, you can escape it
- with a backslash: \$
. To use a backslash literally instead
- of as an escaping character, it must be escaped as well: \\
.
If you want to use a dollar sign $
literally, without it
+ beginning a replacement, you can escape it with a backslash:
+ \$
. A backslash will always interpret the following
+ character as a regular character without a special meaning, while
+ the backslash itself will not show up in the result.
Example: $replace($1-,(\\w+),(\$1\),regRef)
This function (surrounds all + consecutive word characters with brackets) contains some escaping:
+(\\w+)
turns into the plain text (\w+)
. The backslash needs to be escaped so
+ it actually shows up for the regex.(\$1\)
turns into the plain text ($1)
. The dollar sign is used for the regex,
+ not an actual Custom Command replacement and the closing bracket
+ needs to be escaped here because the following function parameter is
+ optional, so the bracket would close the function.Alternatively you can use $"<literal text>"
which
+ interprets everything inside the quotes as literal text without any
+ special meaning. To use a quote inside the literal text, it can be
+ doubled: $"This is a dollar sign: ""$"""
turns into the
+ plain text This is a dollar sign: "$"
. Instead of "
+ you can also use `
(backquote) or '
(single quote):
+ $`This is a dollar sign: "$"`
is equivalent to the above.
The previous example could also be written like this: $replace($1-,$"(\w+)",$"($1)",regRef)
A basic use of replacements is using the short notation @@ -239,18 +265,13 @@
1
, nick
1
display-nick
, custom-nick
,
- full-nick
display-nick
- may contain spaces for some users. custom-nick
may
- also be the Custom Name you
- set, full-nick
is what is displayed in the userlist
- (includes status symbols)msg
user-id
twitch-badge-info
Example with pre-defined parameters:
+These are available where a user is involved, such as the User Dialog and
+ User Context Menu. In some contexts they may also be available with the
+ my-
prefix for your own user info (e.g. my-full-nick
).
nick
- Name of the user, maybe capitalizeddisplay-nick
- Same as nick
, but may not match the regular username (spaces, completely different)display-nick2
- Same as display-nick
, but contains the regular username in parentheses if necessarycustom-nick
- Same as display-nick
, but may also be the Custom Name you setfull-nick
- The same name that is displayed in the userlist (includes status symbols)full-nick2
- Same as full-nick
, but contains the regular username in parentheses if necessaryspecial-nick
- Returns true
if the user has a display name not matching the regular usernameuser-id
- The Twitch ID of the user (if available)twitch-badges
- A textual representation of the Twitch badges (if available)twitch-badge-info
- Another textual representation of the Twitch badges (if available)/streaminfo /echo [Stream Status] $(streamstatus) [Uptime] $(streamuptime)
/streaminfo
outputs an info message (only for
@@ -425,19 +455,32 @@
referring to Fremily
turns into FREMILY
.$replace(<input>,<search>,<replace>,[method])
- \
(\\
) and $
(\$
).\
(\\
) and $
(\$
)
+ when they should e.g. be used in regex rather than interpreted as special Custom Command characters.
+ Instead of escaping each special character individually, you can also
+ use Literal Text.cs
- Literal case-sensitive searchreg
- Regular Expression searchregRef
- Regular Expression search, with references to groups (\$1
) in the replacementregRef
- Regular Expression search, with references to groups via \$1
$1
in this case does not refer to a Custom Command replacement, but something that the replaceAll() method uses, so it needs to be escaped in the Custom Command function, either by using \$1
or using Literal Text. In addition, if $
or \
should show up literally instead of being interpreted by the replaceAll() method then they need to be escaped again (e.g. $replace(..,..,Dollar: \\\$1 Ref: \$1,regRef)
, whereas Dollar: \$1 Ref: $1
would be given to the replaceAll() method).regFirst
, refFirstRef
- Same as above, but only replace first occurenceregCustom
- Regular Expression search, the replace parameter has access to match values and is
+ executed for each match ($1-
full match, $(g1)
first group in the search regex
+ if available, $(g2)
second group, ..).regFunc
- Regular Expression search, the replace must be the name
+ of a Custom Replacement which is called with the same values as regCustom
+ (doesn't always work in Custom Commands, can use regCustom
+ with e.g. $(_<name>,$1-)
instead).$replace(A b and another B,b,bee)
turns into A bee and another bee
$replace(Was timed out for 30 seconds,.*?(\\d+) seconds,Number of seconds: \$1,regRef)
turns into Number of seconds: 30
$replace($1-,$"~([a-z]+)~",$replace($(g1),$"(\w)",$"$1+",regRef),regCustom)
adds +
behind every character surrounded by ~
(the inner $replace()
is in the replace
parameter and executed for each match)$rand([output1],[output2],[output3],..)
$if($get(ontop),ONTOP)
will return
ONTOP
only if "View - Always on top" is enabled.$request(<url>,[options])
error
- A request error will return an error
+ message instead of an empty response.$request()
+ function will be performed asynchronously so that it can complete
+ the request without freezing the GUI. This means the result of the
+ Custom Command may be run seconds or more later.Tip: Enter e.g. //echo $datetime()
@@ -611,9 +671,23 @@
creates a mention if the first parameter isn't equal to the current
channel.
Note: Custom identifiers always start with an - underscore and can themselves not contain replacements with custom - identifiers (well they technicially can, but they won't get replaced).
+The data that can be accessed via replacements is the same as in the
+ command it is used in, so in this example the text provided after the
+ /faq
is available via the $1-
replacement.
Optionally you can also provide a second parameter in a Custom Replacement
+ that overwrites the default value of the $1-
replacement:
/faq $(_m,$(custom-nick))FAQ: https://pastebin.com/KySx3KDu
This will make whatever value is contained in $(custom-nick)
+ available in $1-
instead of the default.
Note: Custom Replacement identifiers always start + with an underscore.
+Note: Custom Replacements don't work when placed
+ inside eachother. So for example in _abc Abc: $(_m)
the $(_m)
will
+ always be empty (whether it's defined in the Custom Commands list or not).
To join channels directly out of the Live Channels
-dialog
right-click on a stream to open the context menu and then select Join channel
to join the channel for that stream and if you want also open the stream in
- your browser or Livestreamer.
If you can't fix this problem and there are no other error messages that - may indicate what is going wrong, then you can manually open the necessary - page:
- -- | Chat | -User read | -Editor | -Commercials | -Subscribers | -Follow | -
---|---|---|---|---|---|---|
Request new login | -✓ | -✓ | -✓ | -✓ | -✓ | -✓ | -
Request new login | -✓ | -✓ | -✓ | -✓ | -✓ | -- |
Request new login | -✓ | -✓ | -- | - | - | - |
Request new login | -✓ | -- | - | - | - | - |
Since the webserver in Chatty won't run if you got any of the aforementioned
- errors, your browser will tell you it can't load the page when you get to
- http://127.0.0.1:61324
. Read on in the next section, especially
+ may indicate what is going wrong, then you can still proceed with opening the
+ link by clicking on "Open URL" in the dialog (or this link, 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 http://127.0.0.1:61324
), so you have to
+ read on in the next section, especially
Manually add the login into Chatty.
Usage | Settings | Troubleshooting
-Streamlink is a commandline program that can be used to watch streams in a player like VLC Player. It has to be downloaded and installed separately from Chatty.
-Note: Since Livestreamer doesn't appear to be developed anymore, there is an
- updated fork called Streamlink, which works the same way. If you want to
- use Streamlink with Chatty, simply change the Base command
- to streamlink
(or, as with Livestreamer, put the whole path to the program
- if that is required in your case). Currently Streamlink appears to be using the
- same commandline interface, so everything should work as usual (after
- changing the Base command
). If they do change the
- interface, changes in Chatty may be required.
Note: Streamlink is a fork of Livestreamer
+ and more up-to-date, but mostly works the same way. If you want to use
+ Streamlink with Chatty you may have to change the Base command
+ to streamlink
(or, as with Livestreamer, put the whole path
+ to the program if that is required in your case). Currently Streamlink
+ appears to be using the same commandline interface, so everything should
+ work as usual (after changing the Base command
). If they do
+ change the interface, changes in Chatty may be required.
You can open the Livestreamer dialog that Chatty provides via
- Extra - Livestreamer
, where you can directly run Livestreamer
+
You can open the Streamlink dialog that Chatty provides via
+ Extra - Streamlink
, where you can directly run Streamlink
and change some settings.
Each time you open a stream via the dialog or a context menu, a tab is - added to the dialog where the output of the Livestreamer process is + added to the dialog where the output of the Streamlink process is redirected to. If you open a stream with the same stream name and quality you already have open in a tab whose process isn't currently running, then that tab will be reused.
The tab of a stream is automatically closed when you close the Video
- Player opened by Livestreamer, if the dialog isn't currently open. Otherwise
+ Player opened by Streamlink, if the dialog isn't currently open. Otherwise
you have to close it yourself by using the Close
-button on the
top right, which turns into an End process
-button as long as
the process is still running. The Retry
-button can be used to
@@ -43,25 +43,25 @@
stream, but you want to retry now because you know it's come online).
The settings can be changed in the Livestreamer dialog.
+The settings can be changed in the Streamlink dialog.
Starting player
+ Starting player
comes up in the log.Select
which tells Chatty you want
+ Streamlink, except Select
which tells Chatty you want
to select a quality in the dialog.|
(vertical
bar) to add a separator to the menu.<Base command> <url> <quality>
.$stream
, $url
and $quality
in this setting (see Examples).livestreamer
, which is sufficient
- if Livestreamer is correctly included in the systems PATH variable,
+ streamlink
, which is sufficient
+ if Streamlink is correctly included in the systems PATH variable,
but you may also specify the full path."C:\My Programs\Livestreamer\livestreamer.exe"
"C:\My Programs\Livestreamer\livestreamer.exe" --player "C:\Program Files\MPC-HC\mpc-hc64.exe"
/usr/local/bin/livestreamer
"C:\My Programs\Streamlink\streamlink.exe"
"C:\My Programs\Streamlink\streamlink.exe" --player "C:\Program Files\MPC-HC\mpc-hc64.exe"
/usr/local/bin/streamlink
livestreamer -p "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe --meta-title $stream/$quality"
streamlink -p "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe --meta-title $stream/$quality"
Recently Twitch changed their API to require a Client ID being supplied, - which Livestreamer doesn't do by default, so you may get a Bad Request - error. You can fix this either by:
-Use Authorization
setting to authenticate
- with Twitch, which makes the Twitch API derive the Client ID from
- the access token.Base command
, for eaxmple to
- add Livestreamer's Client ID:livestreamer --http-header Client-ID=ewvlchtxgqq88ru9gmfp1gmyt6h2b93
- If you're using Streamlink this shouldn't be an issue for you since it - has been updated accordingly.
- -If you get an error like Error: java.io.IOException: Cannot run
program "<...>": CreateProcess error=2 [..]
, then
- Chatty probably can't find Livestreamer on your system.
To solve this, first make sure that
- you actually have Livestreamer installed. You need to install it on you own, it does
+ you actually have Streamlink installed. You need to install it on you own, it does
not come bundled with Chatty. If you are sure it is installed (and you maybe can
run it from the commandline just fine), you may have to tell Chatty the full
- path to the Livestreamer executable for it to work by entering it in the
+ path to the Streamlink executable for it to work by entering it in the
Base command
field. See the Settings section above for examples
and help on that.
+ 0.14 | 0.13.1 | 0.13 | 0.12 | @@ -62,7 +63,85 @@ full list of changes.
This version features (among other things) a more advanced drag&drop + functionality:
+ ++### Custom Commands / Commands +- Added `$"<text>"` to Custom Commands syntax, where everything inside the + quotes is interpreted as literal text (e.g. `$"This costs $30 dollars"`) +- Added optional args parameter to Custom Replacements: `$(_m,[args])`, where + "args" is available in the "_m" replacement via `$1-` (like a function) +- Changes to the /chain command: + - Automatically escape seperator character "|" in top-level replacements + - Fixed bug where the wrong parameters would be sometimes set +- Added /say command +- Added $request() method to perform GET requests +- Improved $replace() function with more advanced replace options +- Added identifiers to retrieve info about the local user +- Prevent endless recursion that could happen in some cases +- Added warning when Custom Commands have the same name as built-in commands + +### Matching (Highlight, Ignore etc.) +- Added Presets that can be used in individual Matching items (various prefixes) +- Improved Highlight editor +- Added "n:" prefix for notes that are ignored for matching +- Added "startw:" prefix +- Added Highlight-style user-related matching to custom Usercolors/Badges +- Added Ignore blacklist (to prevent message from being ignored) +- Various blacklist improvements +- Added "Message Info" context menu entry for chat messages showing which + Highlights or Custom Message Color item they were affected by (if any) +- Improved Highlighted/Ignored messages dialogs (e.g. show bans/timeouts) + +### Users +- Added date separator in User Dialog message history +- Added setting for User Dialog message limit +- Added user notes (via User Dialogs) +- Added support for showing pronouns (disabled by default) +- Added colored names in userlist (disabled by default, limited to users that + already talked) + +### Other Changes +- Improved tab/popout handling (see description above) +- Updated JTattoo Look&Feels to fix some small tabs issues +- Added "Join"-link for hosted channels +- Keep message in input box after cancelling mention dialog +- Account: Allow opening connect URL on error to make manual process easier +- Always show whisper related info messages in active channel +- Added setting for link color in info messages +- Added FFZ per-channel bot recognition +- Increased the maximum amount of followed streams that can be requested +- Updated translations/texts +- Updated help + +### Bugfixes +- Fixed error in Highlight editor due to missing icon on some platforms +- Fixed sub months in badge tooltips +- Fixed token verified dialog showing when it shouldn't +- Fixed website approved automod message showing as points reward ++ +
diff --git a/help/help-settings.html b/help/help-settings.html
index bba0a1b..151e132 100644
--- a/help/help-settings.html
+++ b/help/help-settings.html
@@ -153,6 +153,8 @@
as hardcoded into Chatty, may be different from other programs), e.g. $color:Blue
for blue,
which can be used to replace colors
$defaultColor
- Users that don't have a color set and have the default assigned color (somewhat random)$m:<item>
- Specify user-related Highlight Matching prefixes, such as
+ $m:config:b|partner
to match users with a partner badgeThe order of the @@ -230,11 +232,16 @@
serenity
) or an
- addressbook category (e.g. $cat:vip
, which would refer to
- the category vip
). If you keep this empty, then no restriction
+ for the icon to be displayed. If you keep this empty, then no restriction
is applied.serenity
)$cat:vip
, which would refer to
+ the category vip
)Addon
carries an
implicit restriction, since e.g. the default moderator icons are only
displayed if the user is a moderator.Also see:
+By default only regular chat messages are matched, however with the @@ -777,6 +791,7 @@
wcs:
is the same as w:
, but case-sensitive.start:
to match at the start, so start:!bet
will
match messages starting with !bet
.startw:
is a combination of start:
and w:
.reg:
(and variations) to use a
Regular Expression (Regex), which are case-sensitive by default:
replacement:"text with ""space"""
(meaning
- the value is text with "space"
)replacement:
is text with "space"
)
cat:category1,category2
.
Commas in list values can be quoted as well for them to be used
@@ -967,7 +982,13 @@
config:silent
- Disable sounds for this itemconfig:!notify
- Disable notifications for this itemn:
to provide a note that is ignored for matching.
+ Example: In n:"Explains this entry" config:info startw:!quote
+ only config:info startw:!quote
will have an effect
+ (see Meta Prefixes (Matching)
+ on how quoting works).Note: If you're using the color:
or bgcolor:
@@ -976,7 +997,108 @@
message to the Highlighted Messages window - then consider using Custom
Message Colors instead.
There are different ways that allow you to build Highlight items (or + settings using the same format) from pre-defined parts or apply + functions instead of writing it all manually:
+ +preset:
prefix inserts a "Presets" list entry at
+ it's position (good for often used meta prefixes).cc:/cc2:
prefixes modify all of the text after it
+ by allowing Custom Command syntax to be used (which allows you to
+ include entries from the "Presets" list or use functions).ccf:
prefix modifies all of the text after it by
+ applying a function from the "Presets" list to it.The "Presets" list can be accessed through the Highlights settings page. + Presets can be used from any setting that uses the Highlights format, + even though in this help it only refers to the Highlights list.
+ +The "preset:" prefix inserts an entry from + the "Presets" list. It could for example contain an entry with the name "m" that contains some meta prefixes:
+m chanChat:mod config:!notify
("Presets" list)
This could then be inserted into a Highlight list entry like this:
+preset:m reg:<some regex>
Prior to further parsing this would be expanded to:
+chanCat:mod config:!notify reg:<some regex>
You can also add an optional parameter, for example preset:m|",silent"
,
+ which will be appended directly to the end if the inserted text:
+ chanCat:mod config:!notify,silent reg:<some regex>
.
+ If the name of the preset begins with an underscore the parameter
+ will instead be provided to the preset in the $1-
+ replacement.
The "cc:" prefix (short for "Custom Command") causes all following text to be + interpreted in the Custom Command syntax, which means:
+ +$(m)
or $(_m,<text>)
, whereas "m" or "_m" are
+ entries on the "Presets" list. Presets beginning with _
+ can contain Custom Commands replacements like $1-
, which
+ allows working with the given <text>
(so they act like functions).$
and \
have to
+ be escaped with a backslash (\$
and \\
)
+ when intended to be used literally.$datetime()
+ may be available, it is inadvisable to use them
+ since it would cause inconsistent results.For example there could be a preset with the name "_t", that replaces
+ spaces in all of the given text $1-
with underscores:
_t $replace($1-, ,_)
("Presets" list)
This could then be used in a Highlight item:
+cc:reg:\\w $(_t,abc test)
(note the escaped \
and the abc test
parameter)
Prior to further parsing this would be modified to (due to being handled + like a Custom Command):
+reg:\w abc_test
The "cc2:" prefix does the same, except that you
+ must also specify a custom escaping (and optionally a replacement) character.
+ For example the following sets ~
as escape character (instead of \
)
+ and §
as replacement character (instead of $
).
+ Anything after |
is then interpreted in Custom Command syntax as above:
cc2:~§|reg:\w §(_t,abc test)
The result is the same as the cc:
example, but the \w
+ does not need the additional \
in front, since \
+ is not a special Custom Command character anymore.
The "ccf:" prefix (short for
+ "Custom Command Function") applies a "Presets" list entry (whose name
+ should begin with _
to be able to use Custom Command
+ replacements) to the entire following text, as if you wrapped the entire
+ text in a replacement. Example:
ccf:_t|reg:\w abc test
This is equivalent to:
+cc:$(_t,reg:\\w abc test)
Both of these would give the entire text to _t
(which is $replace($1-, ,_)
as seen above) and then use the return value, so it changes to:
reg:\w_abc_test
Using ccf:
has the advantage that you don't have to
+ worry about potentially having to escape special characters,
+ since simply everything after the |
is provided to _t
+ as a parameter without being interpreted in any special way.
You can chain several prefixes, for example:
+ccf:_test|preset:m reg:<some regex>
This would first apply the _test
function to everything after
+ it, then insert the m
preset (assuming the _test
+ function did not change the preset:m
), then continue parsing the
+ result as a Highlight item.
When using prefixes that change the behaviour (like setting a color) the
order of Highlight items may be important, since the settings of the
first matching item (from the top of the list) will be used. Contrary to
@@ -1737,7 +1859,7 @@
the -token
parameter sets the login token used in
Chatty. If a token is already saved in Chatty, then the -token
parameter will have no effect, unless this setting is enabled.
-
See the Chatty Livestreamer Help.
-
@@ -50,7 +50,7 @@
R9k for R9Kbeta ModeEmoteOnly for Emote-Only Mode[FM] indicates a websocket connection (F
+ for FrankerFaceZ, M for PubSub/Modlogs)You can toggle showing some information under Chat commands:
When using
Twitch Login [back to menu] @@ -1429,7 +1466,7 @@ MiniK http://static-cdn.jtvnw.net/emoticons/v1/25/1.0 set:793 id:3287Using the
Download-Choose one of the following downloads of Chatty Version 0.13.1. For older versions or betas go to the GitHub Releases. Checksums for release files are available as SHA-256 hashes. +Choose one of the following downloads of Chatty Version 0.14. For older versions or betas go to the GitHub Releases. Checksums for release files are available as SHA-256 hashes. If this is your first time using Chatty check out the Getting Started Guide. Windows@@ -170,11 +170,11 @@ function getDownloads(tag) {
|
|
@@ -194,7 +194,7 @@ function getDownloads(tag) {
|
For OS other than Windows (e.g. Linux or MacOS) you will need to download the JAR-Version (.zip) and must have Java 8 or later installed on your system. Extract the .zip into a folder of your choice and start Chatty.jar
.
For OS other than Windows (e.g. Linux or MacOS) you will need to download the JAR-Version (.zip) and must have Java 8 or later installed on your system. Extract the .zip into a folder of your choice and start Chatty.jar
.
If you have any feedback or questions feel free to contact me. You can join the Chatty Discord preferred, write me an E-Mail or use Twitter.