# 3.0.0 / Unreleased **⚠ Breaking Changes:** - Backend storage format has been switched from JSON-file to database. Migrations must be run before use of `v3.x` version. See [README](https://github.com/Luzifer/twitch-bot#upgrade-from-v2x-to-v3x) for instructions. - Some template function have been migrated to a new function collection. See [migration section of Templating documentation](https://github.com/Luzifer/twitch-bot/wiki/Templating#upgrade-from-v2x-to-v3x) for required changes. **Changelog:** * New Features * [templating] Add jsonAPI template function * Improvements * ⚠ [core] Move storage to SQLite database (#30) * [core] Allow to pass ID to channel modification * ⚠ [templating] Add sprig functions, replace some built-ins * Bugfixes # 2.7.1 / 2022-09-06 Bugfix release, repeating `v2.7.0` changelog as of broken release. * New Features * [template] Add `randomString` template function * Improvements * [core] Make number of subscribed months available for subgift * [security] Add mitigation for slowloris DoS attack vector * Bugfixes * [msgformatter] Fix: Trim leading / trailing spaces * [ci / lint] Fix missing CI tooling, fix linter errors # 2.7.0 / 2022-09-03 * New Features * [template] Add `randomString` template function * Improvements * [core] Make number of subscribed months available for subgift * Bugfixes * [msgformatter] Fix: Trim leading / trailing spaces # 2.6.0 / 2022-07-15 * New Features * [editor] [#18] Add editor for `disable_on_match_messages` * [template] Add `inList` function * [template] Add "mod" function for modulo in templating * Improvements * [core] Expose user\_id in events * [editor] Add explanatory hint for exceptions * Bugfixes * [editor] Fix: Token badges had no spacing # 2.5.0 / 2022-06-06 * Improvements * [core] Add multi\_month parameter parsing for subs # 2.4.0 / 2022-05-07 * Improvements * [editor] [#23] Add confirmation for delete buttons * [editor] [#25] Allow searching in / sort rules * Bugfixes * [core] Fix: Notify event handlers before rules to prevent delays * [editor] [#28] Fix: Allow saving with empty optional duration * [editor] Fix: Remove asymmetric margin from buttons * [modchannel] [#26] Fix: Modify channel module not working for editor-bots (#27) # 2.3.0 / 2022-04-22 * New Features * [core] Add more mathematical functions for templating * [customevent] Add API module and actor to create custom events * [filesay] Add FileSay actor to "paste" files with commands * [msgformat] Add module to retrieve filled template through API * [overlays] Add overlays server with some example templates and library * Improvements * [core] Add `delete` event for deleted chat messages * [core] Add `origin_id` to subgift / submysterygift events * [core] Add support for `annoumcement` event type * [core] add `total_gifted` field for gifts, use numeric values for some fields * [core] Provide message in `announcement`, `bits` and `resub` events * [counter] Add template support for counter step * [counter] Remove stored counter value on zero value * [editor] Add bot version to frontend * [editor] Improve location of permission warning * [timeout] [#15] Allow timeout reason to be set * Bugfixes * [ban] Fix: Add missing API docs * [core] Delete refresh token only for HTTP errors, not on connection issues * [core] Fix: Accept 1s cooldown, fix user and channel cooldowns * [core] Fix: EventSub messages had misformatted channel * [core] Fix: Handle unauthorized error for app-access-tokens * [core] Fix: Raid viewercount should be numeric, not string * [core] Re-check token validity more often than on expiry * [editor] [#19] Validate durations when checking for invalid rules * [editor] [#20] Fix: Strip query parameters from redirect uri * [editor] Fix node package vulnerability / update dependencies * [editor] Fix: Upgrade contains a header send, error must not send headers * [status] Fix: Add missing API docs # 2.2.0 / 2022-01-16 * [ci] Make installed go binaries available during build * [core] Add deprecated but still used V5 ChannelEditor scope * [core] Add EventSub subscription prefetching * [core] Add "follow" event using EventSub * [core] Add handling for channel point rewards * [core] Do not retry POST requests automatically * [core] Fix: Event data was not available in rule templates * [core] Implement dynamic token update and broadcaster permissions (#13) * [core] Improve EventSub API request design * [docs] Update README * [editor] Display disconnected status instead of error * [editor] Fix follow-redirects vulnerability (CVE-2022-0155) * [editor] Prevent adding invalid usernames as channel / editor # 2.1.0 / 2021-12-24 * [automessage] Add disable switch * [ban] Add HTTP API route for banning users * [core] Add status / health check API * [core] Fix: send-message function passed to plugin was nil * [core] Fix: Strip newlines from message templates * [core] log bits from chat message * [editor] Fix: Removing cooldown resulted in save error * [editor] Rework to use esbuild / Vue component files (#12) # 2.0.0 / 2021-12-03 * [ban] Enable templating for ban reason * [core] Add `giftpaidupgrade` event * [core] **BREAKING:** Allow actors to set fields those after them (#11) * [core] Fix: Set channel for incoming host through jtv message * [core] Handle host announce messages from jtv user * [lint] Properly format inputs * [templating] Add `multiply` and `seededRandom` template functions # 1.6.0 / 2021-11-11 * [core] Add `ban`, `clearchat` and `timeout` events * [core] Add EventSub support for Twitch-Events (#10) * [core] Add moderator badge to broadcasters * [core] Prevent logging every PING message # 1.5.0 / 2021-11-04 * [nuke] Add new moderation module # 1.4.0 / 2021-10-25 * [core] Allow the bot to track config editor changes through Git * [core] Implement write authorization for APIs (#9) * [editor] Cleanup config by removing invalid / zero attributes * [openapi] Allow multiple mime-types on single route * [plugins] Move missing plugin-dir warning to debug level * [quotedb] Add simple page to list quotes # 1.3.0 / 2021-10-22 * [core] Add "bits" event * [core] Add `streamUptime` / `formatDuration` template functions * [core] Add submysterygift event, add more event data to events * [core] Add username fields to events * [core] Remove unused subscribed\_months field from subgifts * [openapi] Allow subdir serving * [quotedb] Add new actor * [respond] Fix: Broken condition for fallback message * [respond] Fix: Empty string fallback should not count as fallback * [respond] Log message template errors even when fallback is set # 1.2.0 / 2021-10-08 * [core] Log submysterygift * [automessage] Move spammy message to trace-level * [core] Improve logs for USERNOTICE events * [editor] Add description to "Add Action" form group * Add "punish", "reset-punish" actors and storage manager (#8) # 1.1.0 / 2021-10-01 * [templating] Add `botHasBadge` function * [editor] Mark fully disabled rules in list # 1.0.0 / 2021-09-22 * Breaking: Add configuration interface and switch to more generic config format (#7) # 0.18.0 / 2021-09-17 * [script] Allow to skip cooldown on script error * [modchannel] Add modchannel core module * [core] Break actions execution when one action fails * [core] Transform broadcaster name into ID * [core] Add category search and channel update * [core] Expose GetIDForUsername function * [core] Expose TwitchClient to plugins * [core] Add fallback support to group template matches * [respond] Support sending message to different channel * [core] Reduce cache time for stream info * [core] Add Twitch events * [core] Add registration for raw-message-handlers # 0.17.0 / 2021-08-28 * Create API for counter and setvariable modules * Provide HTTP server and registration function * Provide central cron service to plugins # 0.16.0 / 2021-08-21 * Update dependencies and bring plugin example to work with master * Lint: Ignore gocritic for fatal program exit not running unlock * Move to Go1.17 mod-file, update dependencies * Disable CGO for default container * Allow plugins to register template functions * Add plugin support to allow extending of functionality (#6) * Add support to disable cooldown through the action module * Add method to send messages from within the bot without trigger * Add validation mode for config # 0.15.0 / 2021-06-30 * Wiki: Add example for generic chat-addable commands * Add support for dynamic variables * Lint: Update linter list, disable gomnd for some lines * Move timers to storage to persist them * Fix: Set channel for more events # 0.14.0 / 2021-06-17 * Fix: JSON is not able to decode `2s` but `2` which is ns instead of s * Add concat template function * Disable auto-messages in non-observed channels * Automatically leave channel when removed from config # 0.13.0 / 2021-06-13 * Use more flexible Actor format to allow addition of new actors (#5) * Add user- and channel-based cooldowns (#4) * Fix: ID generation handling different automessages as same * Fix: Do not try to log functions * Fix: Do not access automessage attributes without lock # 0.12.0 / 2021-06-05 * Add "respond as reply" functionality # 0.11.0 / 2021-06-02 * Add retries to Twitch API calls # 0.10.0 / 2021-05-27 * Add Whisper / RawMessage actions * Add `whisper` event # 0.9.0 / 2021-05-26 * Add `part` event * Allow to disable automessages with templates * Add global variables to be used in templates * Add Disable and DisableOnTemplate attributes for rules * Drop HCL support (causes too much effort for too little benefit) # 0.8.0 / 2021-05-24 * Fix: Display fallback when no category is set in `recentGame` * Add displayName template function * Replace non-reliable fsevents library with simple check * Add HCL config format support # 0.7.0 / 2021-05-13 * Lint: Disable requirement for crypto/rand for time randomizer * Add delay-action # 0.6.0 / 2021-05-12 * Add sub events, document available event types # 0.5.0 / 2021-05-11 * Fix: Unlock auto-messages to prevent dead-locks * Log amount of loaded rules on (re)load * Support templating in automessages # 0.4.1 / 2021-05-06 * Include tzdata into Docker image to allow TZ env setting * Update README for new flags # 0.4.0 / 2021-04-22 * Introduce general send limit to prevent global-timeouts # 0.3.0 / 2021-04-21 * Extract template functions into registry * Lint: Reduce complexity of loadConfig function * Add raw-log functionality * Add a delay while joining channels # 0.2.0 / 2021-04-04 * Add instructions for token generation * Add GH page to generate token # 0.1.0 / 2021-04-03 * Initial release