From c06efb4c48f3a1fa7dc3700bc1539b49e3caeb5b Mon Sep 17 00:00:00 2001 From: tduva Date: Sun, 3 Jul 2022 03:11:33 +0200 Subject: [PATCH] v0.19 files --- help/help-about.html | 5 +- help/help-custom_commands.html | 17 +++- help/help-releases.html | 42 +++++++- help/help-setting_commands.html | 10 ++ help/help-settings.html | 73 ++++++-------- help/help.html | 174 +++++++++++++++++++++++++++++--- index.html | 16 +-- 7 files changed, 271 insertions(+), 66 deletions(-) diff --git a/help/help-about.html b/help/help-about.html index 26d55f1..8dd126c 100644 --- a/help/help-about.html +++ b/help/help-about.html @@ -11,7 +11,7 @@
 
-Copyright (C) 2017-2020  tduva and contributors
+Copyright (C) 2017-2022  tduva and contributors
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
@@ -40,6 +40,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
GPLv2 or later)
  • Txtmark ("Apache License 2.0")
  • +
  • Apache HttpComponents Client ("Apache License 2.0")
  • +
  • PNGEncoder (License)
  • +
  • PNGDecoder

    Images / Other resources

    diff --git a/help/help-custom_commands.html b/help/help-custom_commands.html index 61c265a..4304554 100644 --- a/help/help-custom_commands.html +++ b/help/help-custom_commands.html @@ -530,11 +530,26 @@ between 0 and what is the first parameter.
    $calc(<simple math expression>)
    -
    Limited support for performing calculations.
    +
    Limited support for performing calculations, with binary operators + (* / % + -) and functions (sqrt() sin() cos() tan()).
    Example: //echo $calc(2^3) $calc( (3+4\) / 2) when entered into the inputbox returns 8 3.5 (note the parentheses in the second, as well as how the closing parenthesis needs to be escaped).
    +
    Example: //echo $calc($"sqrt(81) * (1 + 4/2)") outputs 27 + (this uses $" " to specify literal text + instead of escaping the parenthesis with a backslash).
    + +
    $round(<number>,[numDecimalPlaces],[roundingMode],[minNumDecimalPlaces])
    +
    Round a number to the given amount of decimal places, + with a rounding mode + of empty (half-up), ceil, floor, + up, down or half-down, with + the given number of minimum decimal places (fills with 0).
    +
    Example: //echo $round(1.335) outputs 1
    +
    Example: //echo $round(1.335,2) outputs 1.34
    +
    Example: //echo $round(345.5,3,floor,3) outputs 345.500 (fills up to 3 decimal places)
    +
    Example: //echo $round(2.565,2,,2) outputs 2.57 (uses default rounding mode)
    $urlencode(<input>)
    Uses UrlEncoder.encode() diff --git a/help/help-releases.html b/help/help-releases.html index ff42c34..09b4c3b 100644 --- a/help/help-releases.html +++ b/help/help-releases.html @@ -17,6 +17,7 @@

    Release Information

    + 0.19 | 0.18 | 0.17 | 0.16 | @@ -67,7 +68,46 @@ full list of changes.

    - Version 0.18 (This one!) (2022-04-09) + Version 0.19 (This one!) (2022-07-03) + [back to top] +

    +
    +### Commands
    +- Added `/timer` for delaying commands
    +- Added `/exportText` to write text to a file in the "exported" folder
    +- Added `/clearUserMessages` to clear User Dialog messages (or just the count
    +  for `config:firstmsg`) for all users
    +- Added `/triggerNotification` to trigger a special "Triggered by command"
    +  notification (has to be added as an event in the Notification Settings)
    +- Added Custom Command function `$round()`, added `%` operator to `$calc()`
    +- Added `/j` as default Custom Command
    +
    +### Settings
    +- Added `msg` variant to all text matching prefixes
    +- Added setting to return to previously active tab when closing tab
    +- Added settings for pausing animated emotes
    +- Added Live Streams favorite games to Settings Dialog
    +- Added setting to change locale
    +- Added commands `/setSwitch` and `/setList`
    +
    +### Other
    +- Restore active tabs when loading layout
    +- Improved showing Highlight matches for some message types
    +- Changed formatting of user name for announcements
    +- Updated Twemoji image set to v14
    +- Some memory usage improvements
    +- Improved debug output
    +- Updated help
    +
    +### Bugfixes
    +- Fixed bug where animated emotes with transparency aren't displayed correctly
    +  when the first frame doesn't have transparency
    +- Fixed Tab Completion popup being stuck when closing tab via hotkey
    +- Fixed some locale dependent issues
    +    
    + +

    + Version 0.18 (2022-04-09) [back to top]

    diff --git a/help/help-setting_commands.html b/help/help-setting_commands.html
    index 438ae26..bdf0d29 100644
    --- a/help/help-setting_commands.html
    +++ b/help/help-setting_commands.html
    @@ -23,6 +23,9 @@
                     toggle it and any other value to disable it.
    Can be used to set the value of a key of a Map setting (for example /set lafCustomTheme selectionBackgroundColor 255 180 0).
    +
    For List settings it clears existing items and only sets a single + item, even if the value contains commas. Use /setList + to set several items or /add to add a single item.
    The /set2 command works the same, but in case of Map settings omits outputting all values of the Map.
    @@ -38,6 +41,13 @@
    Sets String (text) settings to an empty String. Removes all entries from List or Map settings.
    +
    /setSwitch <setting> <value>,<value2>
    +
    Like /set, but it switches between two or more values.
    + +
    /setList <setting> <value>,<value2>
    +
    For List settings. Clears the setting and sets the given values as + separate items.
    +
    /add <setting> <value>
    Adds an item to a List setting.
    The /add2 command works the same, but omits outputting diff --git a/help/help-settings.html b/help/help-settings.html index 5acbc8c..14f51ac 100644 --- a/help/help-settings.html +++ b/help/help-settings.html @@ -446,13 +446,11 @@ messages, since Twitch handles emotes parsing serverside for those.

    With the removal of the old Twitch v5 API in February 2022 this problem - can affect even more Emotes than before. The Emote Dialog provides the - "Highlight endangered emotes" function until the API is removed (see - below).

    + can affect even more Emotes than before.

    Recommendations:

      -
    • Only add Twitch Emotes that you have permament access to.
    • +
    • Only add Twitch Emotes that you have permanent access to.
    • Only add Emotes that would otherwise not show up in Chatty in your sent messages or Emote Dialog.
    • Do not add Global, Subscriber and Follower Emotes @@ -462,40 +460,19 @@ Settings Dialog).
    -

    You can add/remove Local Emotes in different ways:

    -
      -
    • The Emote Context Menu (e.g. right-click on an emote in chat) - using the "Add local emote" option. - For example if you have a favorite emote that you have permanent - access to but that isn't available through the API (meaning it - doesn't show up in the Emote Dialog or when you send a message), you - can send a message with it through Webchat to the same channel you - have joined in Chatty and then use the Context Menu option on it. -
    • -
    • In the Settings Dialog in the Emoticon settings you - can view and edit the list of Local Emotes.
    • -
    • The Emote Dialog "My Emotes" tab can highlight - Emotes that are only available through the old API, as long as the - old API hasn't been removed. Enable the "Highlight endangered emotes" - checkbox to see which Emotes might make sense to add. -
        -
      • Magenta border: Only available through old API
      • -
      • Gray border: Only available through old API, but already - added to Local Emotes
      • -
      - To add Local Emotes you can use: -
        -
      • The Emote Context Menu to add a single Emote
      • -
      • The Section Title Context Menu to add all Emotes of a section
      • -
      - Note: You must have a channel joined and all API requests - must have finished for this to show up correctly. For example - Subscriber Emotes should not be highlighted. If the old API has - already been removed, adding Local Emotes through the Emote Dialog - doesn't really make sense, since all shown Emotes would be available - through the new API anyway. -
    • -
    +

    Add Local Emotes through the Emote Context Menu (e.g. + right-click on an emote in chat) using the "Add local emote" + option. For example if you have a favorite emote that you have permanent + access to but that isn't available through the API (meaning it + doesn't show up in the Emote Dialog or when you send a message), you + can send a message with it through Webchat to the same channel you + have joined in Chatty and then use the Context Menu option on it. +

    +

    In the Settings Dialog in the Emoticon settings you can + view and edit the list of Local Emotes.

    + +

    The help on the Emote Dialog's "Highlight endangered emotes" function has + been removed since the old API that it relied on has been turned off.

    Fonts @@ -926,15 +903,24 @@ When editing a Highlight/Ignore entry you will be warned when a pattern could be problematic.

  • +
  • You can prefix all of the above with "msg", such as msgtext: + in order to only match on user-generated messages. For regular chat + messages this makes no difference, however for Subscriptions, + Announcements, Point Redemptions or AutoMod messages it will only + match the attached message rather than the full info message. If + there is no attached message it will not match.
    + Example: config:any msgtext:bad word will match all + messages (regular and info messages) that have an attached user + message containing "bad word".
  • -

    All Text Matching Prefixes can be inverted (matches when it doesn't find +

    All Text Matching Prefixes can be inverted (matches when it doesn't find the search text) by prepending an exclamation mark, for example: !start:!bet all. See the blacklist: Prefix description for further information on the differences between blacklisting and negated matches.

    -

    Additionally, several Text Matching Prefixes can be specified by prepending +

    Additionally, several Text Matching Prefixes can be specified by prepending a plus sign. In this case the value cannot contain spaces or must be quoted. Example: +!start:"!bet all" regi:Regular search text

    @@ -1037,6 +1023,9 @@
  • config:firstmsg - Restrict matching to the first message of this user in this channel during the current session (first message in User Dialog).
    + The messages can be reset without restarting Chatty via the + /clearUserMessages + command, so that the prefix triggers again.
    To match on the first message of this user in the channel overall, you can match on the message tags that Twitch sends: config:t|first-msg=1 (as long as Twitch @@ -1063,7 +1052,9 @@ has to match), prefix value with reg: to use regex matching on the value.
  • config:url - Message must contain a URL (same - as what is made clickable)
  • + as what is made clickable), or config:msgurl to + only match in a user message (see Text Matching Prefixes + for explanation).
  • config:live or config:live|title/game - Stream must be live, title and game are interpreted as regex (like the reg: prefix) and match on the stream's diff --git a/help/help.html b/help/help.html index 18eeb96..289fd94 100644 --- a/help/help.html +++ b/help/help.html @@ -5,7 +5,7 @@ -

    Chatty (Version: 0.18)

    +

    Chatty (Version: 0.19)

    @@ -194,7 +194,7 @@ function getDownloads(tag) {
    @@ -275,16 +275,13 @@ /color just like in normal Twitch Chat
  • /join <channel> - Joins the given channels, see Joining Channels for more information
  • -
  • /part or /close - Leaves the current channel
  • /joinhosted - Join currently hosted channel (if any)
  • -
  • /favorite [channel] and /unfavorite [channel] - Add/remove a channel to/from the Channel Favorites
  • +
  • /part or /close - Leaves the current channel
  • +
  • /rejoin - Rejoins the channel (without clearing users or chat)
  • /reconnect - Disconnects and reconnects
  • /fixMods - Temporarily fixes the list of mods (like /mods but without showing the list of mods in chat)
  • -
  • /ignore <user>, /unignore <user> - To ignore/unignore user (chat and whisper)
  • -
  • /ignoreChat, /unignoreChat, /ignoreWhisper, /unignoreWhisper - - To ignore/unignore user only from chat/whispering you
  • -
  • /clearchat - Clears the current chat window of all text
  • +
  • /clearchat - Clears the current chat window of all text (only locally)
  • /connection - Show info about the current connection
  • @@ -295,9 +292,15 @@

    Other Twitch Commands

    • Stream Highlights / Markers commands (including /marker)
    • -
    • /follow [user], /unfollow [user] - Follow - or unfollow the given user, or the current channel if no user is given - (Following/unfollowing has been removed from the Twitch API)
    • +
    + +

    Special Commands

    +

    These commands change how other commands are run.

    +
      +
    • /chain to run several commands at once
    • +
    • /foreach to run a command for each value in a list
    • +
    • /runin to run a command in a specific channel context
    • +
    • /timer to run a command on a delay

    Settings / Customization commands:

    @@ -307,6 +310,15 @@ for the given name
  • Addressbook commands
  • Stream Chat commands
  • +
  • /favorite [channel], /unfavorite [channel] + - Edit the Channel Favorites list (defaults to current channel if + none is given)
  • +
  • /ignore <user>, /unignore <user> + - Add/remove a user from "Settings - Ignore - Ignored Users" (chat + and whisper, only takes effect locally in Chatty), + /ignoreChat, /unignoreChat, + /ignoreWhisper, /unignoreWhisper to do the + same, except it only affects one type of message
  • GUI commands:

    @@ -330,6 +342,12 @@
  • /openFile <path> - Opens the given path in the default application
  • /openFilePrompt <path> - Opens the given path in the default application (with prompt asking for confirmation)
  • /setSize <width> <height> - Sets the main window size
  • +
  • /triggerNotification [-hmt] <text> - Triggers a + command notification event that was added in the Notification Settings + (if none is added, this won't do anything), -h to hide + notification popup, -m to don't play sound, -t + to specify the title of the notification popup (e.g. + /triggerNotification -mt "This is the title" This is the text)
  • Save and load layouts
  • @@ -345,6 +363,7 @@
  • /showJavaDir / /openJavaDir - Show/open the directory of the JRE used by Chatty
  • /showFallbackFontDir / /openFallbackFontDir - Show/open the directory where Java looks for fallback fonts
  • /showTempDir / /openTempDir - Show/open the system's temp directory
  • +
  • /exportText [-sna] <fileName> <text> - Write the text to a file in the "exported" directory in the settings directory (UTF-8), -s for no info message when writing successfully, -n for replacing "\n" in the text with a newline, -a for appending to the file (Example: /exportText -n abc.txt one\ntwo - Writes "one" and "two" as separate lines)
  • /refresh <emoticons/badges/ffz/ffzglobal/bttvemotes> - Refresh the given data from it's respective API:
      @@ -358,10 +377,12 @@ if new emotes have been added (it's basicially like pressing reload in your browser, but only for some select stuff per command).
    • /releaseinfo - Opens the help with the release information
    • -
    • /myemotes - Show your subscriber emote codes (only works if you - have joined any channel before, this is only a quick info, better emote - integration maybe to be implemented later)
    • -
    • /ffz, /ffzGlobal - Shows the FFZ channel emote codes for the current channel/global FFZ emotes
    • +
    • /ffz - Shows the FFZ channel emote codes for the current channel
    • +
    • /clearUserMessages [-an] + - Clears the message history in the User Dialog for all users in the + current channel, -a for all channels, -n + to only clear the number of messages (e.g. so the config:firstmsg + Highlight prefix matches again)

    Test commands:

    @@ -622,6 +643,131 @@ +

    Execute a command on a delay

    +

    The /timer command allows you to run a delayed command after + a duration or at a certain time. The timed command is run as if it was + entered into the inputbox of the same channel that the /timer + command was entered in (the command is not run at all if the channel is + not a regular channel or not open anymore, unless the -a + option is used).

    + +

    Certain restrictions apply:

    +
      +
    • A timed command can't contain another /timer command as well as some other commands.
    • +
    • A timed message can only be send to regular channels (not whispers) + and only as a moderator of the channel.
    • +
    • Parameters from the context of where /timer is called + do not carry over into the context when the timed command is executed. + Note that in a lot of cases the parameters would already have been + replaced anyway. Consider a button "Test" added to the User Dialog: +
        +
      • In case of Test=/timer 1 /echo $(nick) + replacements are performed on /timer 1 /echo $(nick), + resulting in /timer 1 /echo someusername, resulting in + /echo someusername one second later.
      • +
      • On the other hand Test=/timer 1 //echo \$(nick) + replacements are performed on /timer 1 //echo \$(nick) + (note that \$(nick) is escaped, so it is not + replaced yet), resulting in /timer 1 //echo $(nick), + resulting in //echo $(nick) one second later, which + (because of the double-slash) is parsed as a Custom Command and + replacements are performed, which won't find the "nick" parameter + because it didn't carry over. Normally there is no reason to do it + like this though.
      • +
      +
    + +
    +
    /timer [-options] [:id] <duration|time|'list'|'stop'> <timed command>
    +
    Optionally one or several options (-rs) can be specified: +
      +
    • -r (Keeps the timer through a restart of Chatty + if it hasn't run yet. The timer is saved in the settings and + restored with the same target time, channel and timed + command. If the target time has already been passed when + Chatty is started again it will immediately run the timed + command.)
    • +
    • -o (If a timer of the same id already exists, + overwrite it, without this option the new timer would not be + started in such a case.)
    • +
    • -s (Silent, starting the timer successfully + doesn't output a message.)
    • +
    • -a (Always run the command, even if the channel + the timer was started in is not open anymore or not valid, + which can make sense if the command being run is not + channel-specific, such as modifying the Addressbook. If the + channel is not open anymore the currently active channel is + used, in which case sending messages it not allowed.)
    • +
    • Full example: /timer -rs 10m /echo hello + (Outputs "hello" in 10 minutes, keeps it when Chatty is + restarted within that time and doesn't output a timer + started message.)
    • +
    +
    +
    The id is used to identify a timer after it has been started (e.g. + to stop it). Can be anything (no spaces), if it ends with * + an automatically generated number will be appended to make the id + unique if used more than once. If no id is specified an + automatically generated number without prefix will be used. +
      +
    • :abc (the id is "abc")
    • +
    • :abc* (the id might be "abc1", "abc2", "abc3", ...)
    • +
    • Not specified (the id is an automatically generated number)
    • +
    • Full example: /timer :abc 10m /echo hello + (outputs "hello" in 10 minutes, with the timer id "abc")
    • +
    +
    +
    The duration is in seconds by default, but you can also append a + time unit and several durations that get added up (no spaces): +
      +
    • 5ms (milliseconds)
    • +
    • 5s (seconds)
    • +
    • 5m (minutes)
    • +
    • 5h (hours)
    • +
    • 5h10m (5 hours 10 minutes)
    • +
    • 5h10 (5 hours 10 minutes)
    • +
    • 5h10m30 (5 hours 10 minutes 30 seconds)
    • +
    • Full example: /timer 5h /echo hello (outputs "hello" in 5 hours)
    • +
    +
    +
    An absolute time is written like a digital clock in 24hr format, a + date can be added in front, in which case it has to be enclosed in + [ ]. With no date specified the next occurence of the + time is used, so e.g. if it's already in the evening a time of 5 in + the morning would be on the next day: +
      +
    • 5:30 (5:30 in the morning)
    • +
    • 17:30 (5:30 in the afternoon)
    • +
    • 5:30:50 (5:30 and 50 seconds in the morning)
    • +
    • [05:20:00] (the time can also be enclosed in + [ ])
    • +
    • [2022-01-10 5:30] (when including the date the + [ ] is required and the date has to always be + the full date in the format YYYY-MM-DD)
    • +
    • Full example: /timer 16:30 /echo hello (outputs + the info message "hello" at 4:30 PM)
    • +
    +
    +
    Output info about currently active timers: +
      +
    • list (Lists all timers, soonest to run first.)
    • +
    • -q list (Same as above, but the list is in timer start order.)
    • +
    • :a* list (Outputs information about timers with ids that begin with "a".)
    • +
    • list a* (Same as above, but id in place of the timed command.)
    • +
    • Full example: /timer list a* (Shows all active timers with ids that begin with "a".)
    • +
    +
    +
    Stop active timers: +
      +
    • :abc1 stop (Stops a timer with the id "abc1".)
    • +
    • stop abc1 (Same as above, but id in place of the timed command.)
    • +
    • :abc* stop (Stops all timers with ids that begin with "abc".)
    • +
    • :* stop (Stops all active timers.)
    • +
    • Full example: /timer stop * (Stops all active timers.)
    • +
    +
    +
    +

    Twitch Login [back to menu] diff --git a/index.html b/index.html index 97c8101..1a48dac 100644 --- a/index.html +++ b/index.html @@ -16,9 +16,9 @@ function loaded() { { ceiling: null, text: "$years years ago" } ] } - document.getElementById("ago").innerHTML = "Version 0.18 released "+humanized_time_span("2022/04/09", Date(), custom_date_formats)+""; + document.getElementById("ago").innerHTML = "Version 0.19 released "+humanized_time_span("2022/07/03", Date(), custom_date_formats)+""; - getDownloads("v0.18"); + getDownloads("v0.19"); slideshow_init("slideshow"); } @@ -158,7 +158,7 @@ function getDownloads(tag) {

    Download

    -

    Choose one of the following downloads of Chatty Version 0.18. 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.19. 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) {
  • -
    Download Windows Standalone (Installer) Recommended
    +
    Download Windows Standalone (Installer) Recommended
    Install into a folder of your choice and start Chatty.exe (or optionally created shortcuts).
    -
    Download Windows Standalone (.zip)
    +
    Download Windows Standalone (.zip)
    Extract the .zip into a folder of your choice and start Chatty.exe.
    @@ -182,11 +182,11 @@ function getDownloads(tag) {
    -
    Download JAR-Version (Installer)
    +
    Download JAR-Version (Installer)
    Install into a folder of your choice and start Chatty.jar (or optionally created shortcuts).
    -
    Download JAR-Version (.zip)
    +
    Download JAR-Version (.zip)
    Extract the .zip into a folder of your choice and start Chatty.jar.

    Non-Windows

    -

    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.

    Contact

    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.