SogeBot - Twitch Bot

Free SogeBot - Twitch Bot 14.14.1

Before running this version of bot backup your sogeBot.db and run
Code:
npm run cleanup

Changelog
  • changed: id is stored from messages and API is not used anymore 3c1ed27
  • changed: fire follower event only for users followed in latest hour 7852f3f
  • added: systems/songs - songs can be searched with string #230
  • added: widgets/chat - add chat input to write as a bot #225
  • added: panel/viewers - subscriber, follower and regular can be toggled now by clicking #224
  • fixed: widgets/ytplayer: quality and volume was not properly set 3729a3d
  • fixed: libs/twitch - fix non translated message in !me 7a11b04
  • fixed: libs/parser - commands should be parsed more accurately #254
  • fixed: main - command messages will not be counted in user stats #249
  • added: libs/users - add !merge command when user renamed itself #256
  • added: libs/events - added every-x-seconds event #253
  • added: overlays/alerts - add !alert overlay for images/sound #229
  • fixed: libs/configuration - fix setting default value d1c7172
  • fixed: systems/raffles - fix invalid (winner) message 392e6a2
  • added: systems/raffles - automatically add raffle info into title #252
  • fixed: widgets,systems/raffles - will check if command is already in use #255
  • fixed: libs/logging - using moment.js to determite correct time #261
  • fixed: libs/parser - (list.#) should not return disabled commands/aliases #260
  • changed: libs/parser - removed (command.#) and replaced with (!#) #268
  • fixed: libs/parser - (!#) should run aliases as well #267
  • added: libs/commons - toggable @ for username #270
  • changed: - libs/configuration - change settings notification to whisper all owners #264
  • added: systems/cooldown - added quiet option #266
  • changed: libs/parser - (var.#) set will return new value in chat #269
  • added: systems/songs - requested by user or playlist info added for !currentsong #271
  • fixed: systems/customCommands - check if command keyword is free #246
  • fixed: systems/alias - check if command keyword is free #247
Changelog
  • added: main - exit bot with error message when channel doesn't exist c2c78c2
  • added: libs/panel - show full uri for dashboard #234
  • added: libs/twitch - save cached latest followers and subscribers #236
  • added: systems/raffles - add (product) to win message #237
  • added _systems/raffles - add subscribers only raffles #238
  • fixed: response/filters - fix (list.!alias) throw exception #228
  • fixed: libs/users - fix crash when user change username and doesn't have all relevant data 5c6a010e919889 2b05b18
  • fixed: widgets/ytplayer - fix unresponsive ytplayer api #231
  • fixed: systems/ranks - fix empty rank list #232
  • fixed: libs/users - add db compacting after users save a43b97b
  • fixed: libs/parser - add queues for messages to free up resources for dashboard, etc. 1b9f0aa
  • fixed: libs/events - fix crash undefined attr 00af0a6
  • fixed: overlays/stats - fix empty uptime 54f5910
  • fixed: libs/events - fix stream-is-running-x-minutes not firing cbe1178
  • fixed: libs/events - fix number-of-viewers-is-at-least-x not firing 7111968
  • fixed: libs/events - system events is showing as empty operation in panel #240
  • fixed: widgets/raffles - fix missed translations #239
  • fixed: systems/moderation - mods and owner will not be checked for blacklisted words #242
  • fixed: main/events - fix month translation for subs widget #244
  • fixed: panel/events - form should correctly reset after creation #235
  • fixed: systems/events - fix incorrect event showing in webpanel #245
Changelog
  • changed: response/filters - if (command.#) will be used alone -> print command response to chat #209
  • changed: response/filters - (list.alias) and (list.command) will not have '!' before commands #214
  • changed: widgets/raffles - remove button for clearing participants #213
  • added: response/filters - add (list.!#) to have output with '!' #214
  • added: response/filters - add (uptime) filter #208
  • added: systems/notice - skip to next notice if response is empty #210
  • added: webpanel - remember settings of % #212
  • added: configuration/lang - emit new lang to webpanel if changed #194
  • added: widgets/raffles - disable follower toggle and watched time input when raffle is running #207
  • added: moderation/links - toggle to check links with spaces or not #193
  • added: widgets/subscribers - add latest subs widget #166
  • added: overlay/imagecarousel - simple fadeIn/fadeOut carousel #191
  • added: libs/twitch - save when stream was offline #219
  • fixed: response/filters (list.#) and (list.!#) should return message even if list is empty #211
  • fixed: configuration/mute - bot will send both mute status in chat #167
  • fixed: events/operations - fixed message was not correctly changed #220 #221
  • fixed: libs/permissions - remove custom permission on command unregister #226
  • fixed: systems/raffles fix announce not showing #222
  • fixed: minor translation fixes
Changelog
  • fixed: stream stopped events is triggered too often #199
  • fixed: Alias list and Command list is always empty #200
  • fixed: raffle widget cannot pick a winner #201
  • fixed: mods event will fire only once 3ffe8e7
  • fixed: missing follow/unfollow/ban/timeout events #202
  • added: dashboard dark theme toggle #153
Changelog
  • fixed: crash if user changes his username 7d2190b
  • fixed: mods will not be automoderated #174
  • fixed: points will be not visible in webpanel viewers tab if points system is disabled #178
  • fixed: emit configuration on !set #180
  • changed: aliases (and its commands) can contain spaces now #158
  • changed: commands and aliases are case insensitive now #171
  • changed: random number filters can have arguments #157
  • changed: !set with empty value will set default value 3a313fc
  • changed: non eligible users will not be added to raffle list at all 35ea4d2
  • added: bot will send whisper message if raffle participation is succesfull or not 35ea4d2
  • added: alias and custom commands toggle visibility in list #159
  • added: (list.#) response filters #160
  • added: !followage #165
  • added: self purge !seppuku command #169
  • added: self purge !roulette command with 50% chance #170
  • added: bot will send both mute status in chat #167
  • added: emotes overlay - will show emotes from chat #175, #176, #177, #179, #181, #182, #183
  • added: stats overlay for viewers, followers, uptime #189
  • added: toggable subscribers moderation imunnity #184
  • added: added regulars permission #146
  • added: manage channel regulars through !regular add and !regular remove #146
  • added: raffles can have product now #163
  • added: raffles set custom reoccurring message #164
  • added: raffles added minimal watched time condition #161
  • added: !uptime offline message will contain how long stream is off #192
  • added: Event Listeners for various events and custom behavior #198
Changelog
  • fixed: moderation empty blacklist timeouts #145
  • fixed: pointsName for xmulti patterns #152
  • fixed: points system regexp #155
  • fixed: !watched crash if user doesn't have time attribute #156
  • added: (game) and (status) filters #149
  • added: (price) filter #151
  • added: (command.#) filter #148
  • added: (onlineonly) and (offlineonly) filters #150
  • added: latest followers widget #142
  • added: gambling system and simple !gamble with 50/50 outcome #154
Changelog
  • fixed: !points should return correct response now
Changelog:
  • re-add !top time and !top points #144
  • minor fix of evaluation if viewer an owner
Changelog:
  • fixed: getting data from API response arrays (#140)
    • Arrays can be defined now
      • API response example: {'my': [{'custom': 'Array'}]}
      • => (api.my[0].custom)
  • fixed: songrequest youtube link should not be moderated (#141)
Changelog
  • enhanced logging
  • fixed: exclude sender in (random.*) (#128)
  • added: (param) filter for custom commands (#129)
    • Usage:
      • Command !test with response: Something (param) something
    • Expected behavior:
      • !test
      • bot will not respond (no param is given)
      • !test dark side
      • Bot: Something dark side something
  • added: keywords, commands, notices can be edited in webpanel (#125)
  • added: fully translatable webpanel (#122)
  • added: whisper error if user have low permissions for command (#87)
  • added: blacklisting (#9) and whitelisting (#10)
  • added: soundboard duration progress bar when sound is played
  • added: search dropdown suggestions for games
  • added: dashboard viewers paging and username filtering
  • added: message API filter for API calls (#138) - HOW TO USE BELOW
  • changed way response time is calculated - will properly count when bot get message and finish parsing
  • more optimizations of followers
  • minor fixes (#130, #132)
How to use API filter
Note: usable in notices, keywords, custom commands - everything with response

How to use in response:
(api|http://your.url.goes.here) Something something (api.fromApiJSON)

Example setting for !api custom command with json response:
Set response to:
(api|https://jsonplaceholder.typicode.com/posts/5) UserId: (api.userId), id: (api.id), title: (api.title), body: (api.body)

Twitch chat:
sogehige: !api
bot: UserId: 1, id: 5, title: nesciunt quas odio, body: repudiandae veniam quaerat sunt sedalias aut fugiat sit autem sed estvoluptatem omnis possimus esse voluptatibus quisest aut tenetur dolor neque

Example setting for !api custom command with string response:
Set response to:
(api|https://api.kyroskoh.club/dota-api/party-mmr?id=58241935) (sender), (api._response)

Twitch chat:
sogehige: !api
bot: sogehige, [SO,HI]GE's Party MMR: 2072
Top