diff --git a/changes.txt b/changes.txt index 6fa850a..958d1da 100644 --- a/changes.txt +++ b/changes.txt @@ -1,5 +1,31 @@ -0.8.5.1 (2017-04-14) Latest Version +0.8.6 (2017-05-27) Latest Version + +### General +- Added new Notification system +- Added support for new sub messages +- Added button to sort some setting lists alphabetically +- Changed Emote Context Menu entry "Twitch Profile" to "Twitch Stream" +- Some other Settings Dialog and GUI improvements +- Made Addressbook mod commands channel setting case-insensitive +- Some debug output improvements +- Updated help + +### Custom Commands +- Added custom replacements +- Added $ifeq function +- Added feature to add channel-specific Custom Commands +- Made identifiers case-insensitive +- Allow absolute positioning of Custom Menu Items + +### Bugfixes +- Fixed word wrapping issues (hopefully) +- Fixed selection in chat window moving around +- Added workaround for error occuring in Java 1.8.0_131 (the actual cause of the + error is still unclear, but hopefully this works well enough) + + +0.8.5.1 (2017-04-14) - Fixed Whispering that didn't work due to changed Twitch behaviour - Fixed bug related to Custom Commands which would prevent startup diff --git a/help/Notifications_example.jpg b/help/Notifications_example.jpg new file mode 100644 index 0000000..d5783a0 Binary files /dev/null and b/help/Notifications_example.jpg differ diff --git a/help/help-custom_commands.html b/help/help-custom_commands.html index 917e7c5..43fea0c 100644 --- a/help/help-custom_commands.html +++ b/help/help-custom_commands.html @@ -17,6 +17,7 @@
  • Simple Replacements
  • Pre-defined Parameters
  • Functions
  • +
  • Custom Replacements
  • @@ -26,6 +27,7 @@
  • Format 2: Inline-Commands
  • Format 3: Submenus
  • Shortcuts
  • +
  • Positioning
  • @@ -52,6 +54,16 @@ Hello World! to chat, just as if you would have written it yourself and pressed Enter.

    +

    Adding a # and a channel name you can restrict the command + to that channel:

    + +

    /hello#joshimuz Hello Joshimuz Chat!

    + +

    This /hello command would only be executed in #joshimuz, + however if you still have the version without a channel in the Custom + Commands list as well, it will fallback to that in other channels. This + way to can add variations of commands for specific channels.

    +

    Replacements

    Anything starting with $ in the <what the command should do> section is treated as some sort of replacement. @@ -205,15 +217,24 @@ replacements, however they have a function name before the identifier (there is no short notation for functions):

    -

    $<functionName>(<identifier>,<some parameters>)

    +

    $<functionName>(<identifier>,<some parameters>,[optional parameters])

    The following functions are available:

    -
    $if(<identifier>,<replacement if exists>,<replacement if doesn't exist>)
    +
    $if(<identifier>,<output if exists>,[output if not])
    If the value the identifier refers to exists (non-empty), it will return the first function parameter, the second otherwise.
    -
    Example: $if(1,$1,nope) with parameters cheese cake turns into cheese, - with no parameters turns into nope
    +
    Example: $if(1,$1,nope) with command parameters cheese cake turns into cheese, + with no parameters turns into nope, the optional [output if not] function parameter.
    + +
    $ifeq(<identifier>,<comparison>,<output if equal>,[output if not])
    +
    Similar to $if, but instead of just checking fot the + existence of a parameter it compares it to a given value + (<comparison>).
    +
    Example: $ifeq(1,cheesecake,yummy) with parameters + cheesecake turns into yummy, with parameters + cheese cake turns into an an empty string, since the + optional [output if not] has not been specified.
    $join(<identifier>,<separator>)
    Joins together the arguments the identifier refers to, using the @@ -248,7 +269,28 @@ In this example only the closing one after n/a has to be escaped, because the opening one doesn't have a special meaning in this context and the ones around streamuptime have a special - meaning that takes precedence (closing the replacement).

    + meaning that takes precedence (opening/closing the replacement).

    + +

    Custom Replacements

    +

    You can create your own identifiers for replacements by adding an entry + to the Custom Commands list starting with an underscore:

    + +

    _m $ifeq(1,$(chan),,$$1: )

    + +

    Instead of a command, this creates an identifier that can be used in a + replacement:

    + +

    /faq $(_m)FAQ: https://pastebin.com/KySx3KDu

    + +

    When the /faq command is run, the $(_m) gets + replaced with whatever is defined in _m, in this case it + 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).

    +

    Custom Context Menus / User Dialog Buttons

    Under Settings - Commands there are several settings that @@ -285,7 +327,12 @@ Spoiler[S]=/timeout $$1 600 No spoilers ./Message /Report .Warn User=$$1: Plz no spammerino -

    Format 1: List Custom Command Names

    +

    Note: Command Names/Labels may not contain the + characters [ ] { } except for their special meaning of + Shortcuts and Positioning.

    + + +

    Format 1: List Custom Command Names

    You can list the name of several Custom Commands in one line, for example:

    /Slap /Permit

    @@ -394,9 +441,10 @@ Spoiler[S]=/timeout $$1 600 No spoilers timeout buttons as well as a single bottom row for the Slap command.

    +

    Shortcuts

    You can add a shortcut to the end of a label or command name by enclosing - it with [ ]:

    + it with [ ] (square brackets):

    /Ban[B] or Spoiler[S]=/timeout $$1 ..

    @@ -423,6 +471,40 @@ Spoiler[S]=/timeout $$1 600 No spoilers allow you to open that submenu by pressing R on your keyboard when the context menu is open).

    + +

    Positioning

    +

    You can define an absolute position in the menu the entry should appear + at by enclosing it with { } (curly brackets) at the end of + the label or command name (but before a shortcut if there is any):

    + +

    Mention{1}=/insertword $$1: \

    + +

    This will put the Mention menu entry at the second + position in the menu (counting starts from 0).

    + +

    Another example:

    + +
    +@Twitch Stream[s]
    +.Videos{2}[v]=/openUrlPrompt https://www.twitch.tv/$$1/videos/past-broadcasts
    +@Important{0}
    +.Slap=/me slaps $$1 around a bit with a large trout
    +@Really Important{0}
    +.FAQ=FAQ: https://pastebin.com/KySx3KDu
    +
    + +

    This puts the Videos entry into the pre-defined + Twitch Stream submenu at the third position in the submenu + (also adding the accelerator key s to the menu and + v to the entry).

    + +

    It also adds the Important submenu at the first position + (since it hasn't been added yet) and after that adds the + Really Important submenu at the first position as well, + moving down Important. This demonstrates that the + positioning is based on the current state of the menu, so it can matter + when you add entries with absolute positioning.

    + diff --git a/help/help-memory_usage.html b/help/help-memory_usage.html index bceb4e6..10e8e5f 100644 --- a/help/help-memory_usage.html +++ b/help/help-memory_usage.html @@ -33,12 +33,12 @@ and add the appropriate parameter after the javaw.exe but before the -jar parameter.

    -

    For example to restrict memory to 100 MB: javaw -Xmx100M -jar "D:\Chatty\Chatty.jar". - 100 MB is probably the lowest you should go, although more is recommended, - depending on how you are using Chatty (how many/busy channels). Note - that Java will show a higher usage than this in the Task Manager, since - this pretty much only restricts how much the program can store, Java - will need some more for it's own management and data.

    +

    For example to restrict memory to 150 MB: javaw -Xmx150M -jar "D:\Chatty\Chatty.jar". + You should test out yourself how low you can go, although more than 100 MB + is usually recommended. Note that Java will show a higher usage than + this in the Task Manager, since this pretty much only restricts how much + the program can store, Java will need some more for it's own management + and data.

    For the Windows Standalone version you can add this value to the file <path to Chatty>/app/Chatty.cfg.

    diff --git a/help/help-releases.html b/help/help-releases.html index ed9a9ae..a8f7e23 100644 --- a/help/help-releases.html +++ b/help/help-releases.html @@ -15,6 +15,7 @@

    Release Information

    + 0.8.6 | 0.8.5.1 | 0.8.5 | 0.8.4.1 | @@ -44,8 +45,49 @@

    This page shows important information about new versions as well as the full list of changes.

    +

    - Version 0.8.5.1 (This one!) (2017-04-14) + Version 0.8.6 (This one!) (2017-05-27) + [back to top] +

    +

    This version features a new Notification system, which combines both + Desktop Notifications and Sounds. It is more flexible to configure and + can be easier extended on the programming side. It has more types of + events (like Whispers or AutoMod messages), better matching of events + (matching text or restricting to a channel) and things like configurable + colors for Desktop Notifications.

    + +

    Note: While your previous Desktop Notification Settings should be + carried over, you will have to reconfigure any Sounds in the new system + (if you used any).

    + +
    +### General
    +- Added new Notification system
    +- Added support for new sub messages
    +- Added button to sort some setting lists alphabetically
    +- Changed Emote Context Menu entry "Twitch Profile" to "Twitch Stream"
    +- Some other Settings Dialog and GUI improvements
    +- Made Addressbook mod commands channel setting case-insensitive
    +- Some debug output improvements
    +- Updated help
    +
    +### Custom Commands
    +- Added custom replacements
    +- Added $ifeq function
    +- Added feature to add channel-specific Custom Commands
    +- Made identifiers case-insensitive
    +- Allow absolute positioning of Custom Menu Items
    +
    +### Bugfixes
    +- Fixed word wrapping issues (hopefully)
    +- Fixed selection in chat window moving around
    +- Added workaround for error occuring in Java 1.8.0_131 (the actual cause of the
    +  error is still unclear, but hopefully this works well enough)
    +
    + +

    + Version 0.8.5.1 (2017-04-14) [back to top]

    diff --git a/help/help-settings.html b/help/help-settings.html
    index 5f3de8e..995ffa6 100644
    --- a/help/help-settings.html
    +++ b/help/help-settings.html
    @@ -16,7 +16,7 @@
             | Ignore
             | Sounds
             | Notifications
    -        | Log to file
    +        | Log to file
             | Window
             | Tabs
             | Commands
    @@ -842,50 +842,104 @@
             Sounds
             [back to menu]
         
    -    

    General Sound Settings

    -

    You can enable or disable all sounds here. Sounds are searched in the - displayed folder, which is the current working directory. Any valid sound - files in the folder should be selectable as a sound to be played. If you - added or removed files, you may have to use Rescan folder to - make the files show up in the list. You can open the folder in your standard - file browser from here to add files to it more quickly.

    - -

    The Output Device lets you choose the device on your - computer the sounds gets output to. This is kind of experimental and may - not work properly.

    - -

    Sound Types Settings

    -

    You can specify requirements, soundfile, volume and delay for - different types of events:

    -
      -
    • When a message is highlighted
    • -
    • When a stream changes status (online/offline/changed title/changed game)
    • -
    • When any message in received in any open channel
    • -
    • When someone joins/leaves any open channel
    • -
    • When a new follower is detected (this only works if the Follower - Dialog is currently open)
    • -
    -

    You can set a delay (seconds) so that the same sound won't be played twice during - the set number of seconds. So if e.g. 3 highlighted messages come in within - 10 seconds and the delay is set to 15 seconds, only one sound will be played.

    - -

    Each sound has different options for when the sound should be played. See - the Notification Settings for help on the options.

    +

    Sounds are now integrated into the Notifications.

    Notifications [back to menu]

    -

    Notifications

    -

    You can show notifications for two kinds of things:

    -
      -
    • Highlights - When a message in chat is highlighted
    • -
    • Stream Status - When a stream changes status, e.g. - offline -> online or changed title
    • -
    +

    The Events table can contain several entries that + describe events and whether they should trigger a Desktop Notification + and/or Sound.

    + +

    The entries are checked from the top and only the first enabled + Notification and Sound of matching events are chosen, and then triggered + if the Cooldowns allow it (given that any are configured).

    + +

    Example: You could have two "Highlights" events, the first restricted to + a certain channel with a Notification/Sound and the second + non-restricted with just a Notification. This way only Highlights in + said channel would play a Sound (and maybe have different Notification + colors) and all others just show a Notification. Note that if you were + to switch those entries, then the channel-restricted one would never be + chosen, because the non-restricted one already catches everything. So as + a general rule, the more specific/restricted entries should always come + first.

    + +

    + +

    Possible event types that can be selected for an entry:

    + +
    +
    Stream Status
    +
    A stream Chatty is watching (because you have it's chat open + or you follow it) went online/offline or changed title.
    + +
    Highlights
    +
    Chat Messages that were highlighted.
    + +
    Chat Message
    +
    Any Chat Message (including highlighted ones, in this case + the order of list entries can matter).
    + +
    Whisper
    +
    Any Whisper message (including highlighted ones).
    + +
    User Joined & User Left
    +
    When a user is seen entering or leaving a chat. Note that + this is quite unreliable, see Userlist and JOIN/PART.
    + +
    New Followers
    +
    When a new follower is detected (this only works if the + Follower Dialog is + currently open).
    + +
    Subscriber Notification
    +
    When a new Subscriber/Resub notification is received in chat.
    + +
    AutoMod Message
    +
    When a new chat message filtered by AutoMod is received.
    +
    + +

    Settings for an entry (Notification/Sound)

    +
    +
    Channel
    +
    Name of the channel this item should be restricted to.
    + +
    Match
    +
    Match the given text or message, in the same format as for + Highlighting (although some prefixes won't + work unless it's a chat message).
    + +
    Notification (Tab)
    +
    A Desktop Notification, with customizable colors.
    + +
    Sound (Tab)
    +
    Play the selected Sound.
    +
    Specify a Cooldown to prevent this sound from playing + too often.
    +
    Passive Cooldown will only play the sound if enough + time has passed since this event was last matched. Or in other words + it will reset the Cooldown every time the sound would have + been played, even if it actually wasn't because another sound took + precedence or the regular Cooldown didn't allow it.
    +
    For example if your chat isn't very busy and you want to get + notified of new messages so you notice, then you could add an event + of type Chat Message with a Passive Cooldown + of 5m, which means the sound only plays if someone + writes a message after the chat has been silent for at least 5 minutes. + If on the other hand you would set it as a regular Cooldown + it would play the sound after 5 minutes even if the chat has been + busy non-stop, at which point you probably wouldn't need to be alerted + since you're already paying attention to it.
    +
    + +

    On both the Notification (Tab) and Sound (Tab) + you can enable/disable the according action by choosing one of the + following:

    -

    For both these you can select separately if and when they are shown:

      +
    • Enabled - No requirements, always show it
    • Off - Never show
    • When channel/app not active - Only when the channel isn't the currently selected tab AND when the program doesn't have focus
    • @@ -897,44 +951,53 @@ isn't the currently selected tab
    • When channel active - Only when the channel IS the currently selected tab
    • -
    • Always - No requirements, always show it
    -

    In addition, the option Don't notify about "Stream offline" allows you - to never show when a stream changes status to offline, so you will only be - notified about streams going live or changing title/game.

    -

    Notification Type / Options

    -

    Select here whether to use the Chatty Notifications or the default - System Tray Notifications. This settings DOES NOT enable or - disable notifications altogether, just switch between the types.

    -

    If you have Chatty Notifications selected, you can change some - more options:

    -
      -
    • Position: In which corner the the notification appears on the screen
    • -
    • Screen: On which screen the notification appears (auto means - it's on the same screen as the Chatty window)
    • -
    • Display Time: How long the notification will be displayed - by default. This can vary a bit depending on the situation.
    • -
    • No User Activity: This is a tricky one. If you enable - this, then the notification will not be closed after the defined Display Time - if no activity was detected in the last few seconds. This can be useful - to still see notifications from a few minutes ago if you were away from - the computer. - The time defines - when the notification will be closed no - matter what, so older notifications won't stay there forever if you are - away from the computer for a bit longer. -

      Activity is tracked through two methods: - The first method is tracking the system-wide mouse movements, which is - done through an API that may not always return accurate information - (e.g. if you are in a game) and it only checks the position every few - seconds (only the last location is saved at any time for comparison). - The second method detects activity only inside of Chatty, by tracking - button presses and mouse actions (e.g. if you type a message, open a - dialog etc.).
    • +

      General Notification Settings

      +
      +
      Position
      +
      The corner of the screen the notification is displayed.
      -
    +
    Screen
    +
    On which screen the notification appears (auto means it's on the + same screen as the Chatty window).
    + +
    Display Time
    +
    How long the notification will be displayed by default. This can + vary a bit depending on the situation.
    + +
    No User Activity
    +
    This is a tricky one. If you enable this, then the notification will + not be closed after the defined Display Time if no activity was + detected in the last few seconds. This can be useful to still see + notifications from a few minutes ago if you were away from the + computer. The time defines when the notification will be closed no + matter what, so older notifications won't stay there forever if you + are away from the computer for a bit longer.
    +
    Activity is tracked through two methods: The first method is + tracking the system-wide mouse movements, which is done through an + API that may not always return accurate information (e.g. if you are + in a game) and it only checks the position every few seconds (only + the last location is saved at any time for comparison). The second + method detects activity only inside of Chatty, by tracking button + presses and mouse actions (e.g. if you type a message, open a dialog + etc.).
    +
    + +

    General Sound Settings

    +

    You can enable or disable all sounds here. Sounds are searched in the + displayed folder, which is the current working directory, although you can + also Change it to a folder of your choice. If you added or removed files, + you may have to use Rescan folder to make the files show up in + the list of sounds selectable in the event settings. You can Open + the folder in your standard file browser from here to add files to it more + quickly.

    + +

    The Output Device lets you choose the device on your + computer the sounds gets output to. This is kind of experimental and may + not work properly.

    +

    Followed Streams

    Enable this to make Chatty get a list of your followed streams regulary so it can display notifications if their status changes. This simpy allows @@ -942,6 +1005,7 @@ advantage. It also allows it to record the viewer count and status history of followed live streams as long as Chatty is running.

    +

    Log to file [back to menu] @@ -1130,7 +1194,15 @@ scroll through them.
    Scroll through tabs with mousewheel
    -
    Hover mouse over tabs and scroll to change tabs.
    +
    Hover mouse over tabs and scroll to change tabs. +
    +
    Scroll through tabs anywhere
    +
    Don't restrict scrolling through tabs to the tab bar, + although this mostly only applies to the inputbox. So you + can hover your mouse over the inputbox and scroll to switch + between tabs.
    +
    +

    diff --git a/help/help.html b/help/help.html index 882447c..e7f4c59 100644 --- a/help/help.html +++ b/help/help.html @@ -5,7 +5,7 @@ -

    Chatty (Version: 0.8.5.1)

    +

    Chatty (Version: 0.8.6)

    diff --git a/index.html b/index.html index 5128343..43815ae 100644 --- a/index.html +++ b/index.html @@ -15,9 +15,9 @@ function loaded() { { ceiling: null, text: "$years years ago" } ] } - document.getElementById("ago").innerHTML = "Version 0.8.5.1 released "+humanized_time_span("2017/04/14", Date(), custom_date_formats)+""; + document.getElementById("ago").innerHTML = "Version 0.8.6 released "+humanized_time_span("2017/05/27", Date(), custom_date_formats)+""; - getDownloads("v0.8.5.1"); + getDownloads("v0.8.6"); } function getDownloads(tag) { @@ -217,15 +217,15 @@ function getDownloads(tag) {

    Download & Getting started

    diff --git a/version.txt b/version.txt index aec0800..cfe1c79 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -0.8.5.1 Some Bugfixes \ No newline at end of file +0.8.6 New Notification system, Bugfixes, and more..