SogeBot - Twitch Bot

Free SogeBot - Twitch Bot 12.9.3

Change to across a bot and metrics

  • [3696ab1b] chore: Replace with
Hotfixes for user removal and fetching account age for not existing account

  • [6ed47e8] src/users: Fix user removal
  • [090e215] src/users: Fix removal of user watched and points
  • [93f0946] src/api: Hide error message if account don't exist
  • custom variables
    • Add response customization in registry for each variable
    • Fix numeric variables parsing in commands (like $_3 was ignored)
  • config.json
    • Added new attribute timezone, to set your bot timezone
    • If timezone is not specified or is set to system, bot is using system timezone
    • Removed configuration of systems (enable/disable), this was move into command (!enable system, !disable system) and UI
    • Added translation metrics to help find unused translations see docs
  • UI
    • Added system and games configuration pages
      • Note: Games are by default disabled
    • Updated UI for systems manage
    • Added full customization for commands of systems and games - settings->games/systems
  • games
    • Added wheel of fortune game
  • systems
    • Added quote system
  • docs
  • widgets
    • Removed joinpart widget and added join and part widgets
  • others
    • Added !top followage command
    • Added raid support for events and eventlist
    • Added community subgift support for events and eventlist
    • Updated dependencies
    • Slim production dependencies after npm install, before ~300MB, currenlty ~100MB
  • [4792aaf] registry/customVariables: Fix not available text when current value is 0
  • [1625c13] libs/customvariables: Fix error with checking custom variables

  • Added custom variables registry and updated custom variable widget
  • Note: you need to recreate your variables
  • Added $!_customvar filter with forcefully silenced set message
  • $_customvar and $!_customvar now accept + and - as params to increment and decrement by one
  • Overhaul of image carousel overlay, more settings for each image
  • Note: you will need to reupload your images to image carousel as they will not be stored as files but in db
  • Added type clip to be able to play in alerts
  • Clip creation and play through overlay/alerts
    • Note: if you want to use clip creation, re-do your oauth (need clips:edit permission)
  • Trigger events by keywords
  • [b30b1ee] lib/commons: Remove reduntant toLowerCase()
  • [5fe09dd] system/moderation: Add .me as domain suffix
  • [57049be] lib/users: Fix UI filtering of active users
  • [c6010bc] tools/migrate: Remove not used from user collection
  • [10facab] system/points: Save points time as date
  • [28cbfa6] ui: Fix NaN when viewers value is hidden
  • [d2ea7dd] widget/twitch: Set protocol http/https as appropriate
  • [15d461b] libs/users: Fix ui active filtering
  • [0add586] overlay/alert: Add clip type support
  • [9fe49cb] lib/panel: Fix set of domain access if contains whitespaces
  • [11f55be] system/bet: Add more accurate error message
  • [e77dbd9] lib/cache: Use cache.titles collection instead of cache
  • [b7e7246] cluster: Fix incorrect set of online user on message
  • [4b99edb] lib/api: Trigger only reset events on stream start
  • [c156af7] lib/events: Fix placebo event reset
  • [9380066] lib/message: Fix custom variable in eval
  • [0fb9038] various: Fix propagation of quiet
  • [b7f2737] lib/message: Add $!_cvar and + and **params support
  • [88fe282] chore: Create
  • [222ecee] lib/panel: Use bot username as bot name in panel
  • [cf03447] lib/message: Fix inc/dec when variable is saved as string
  • [3259bfa] **Update
  • [2e5bf7a] widget/customvariables: Fix error onSave
  • [5d1d31e] overlay/imageCarousel: Extend configurability
  • [767d14d] widget/custom_variables: Fix variable save if name contains only numbers
  • [6b574e5] system/bets: Fix index and options list
  • [936800f] lib/users: Fix updating user message count
  • [bfda15a] lib/message: Fix variable set if url() return string
  • [ef31333] ui: Fix translation for 'create and use a new game' input
  • [0e8f166] chore: Update
  • [f9d5838] chore: Update dependencies
  • [26679e5] overlay/alerts: Fix regexp cutting part of url if contain =
  • [ed77eee] lib/events: Add keyword-send-x-times event
  • [ad53271] lib/events: Add create-a-clip and create-a-clip-and-play-replay events
  • [9f1e860] overlay/alerts: Fix data extract when using another =
  • [e5a25e3] chore: revert snekfetch version to 3.6.4
  • [ed9f1b4] lib/message: Force return empty qs if param is null
  • [42ab4c9] main: 1 cpu by default if not specified in config
  • [af94090] locale/cs: Fix $winner for fightme
  • [eed5911] lib/customvariables: Add custom variables library
  • [4b5fec1] chore: Update AUTHORS
Contains only hotfix for processing messages affecting mainly mongodb

  • [96d09ee] main: Fix incorrect call to resend message to worker
eval filter

  • Added url() function, see eval documentation about usage
  • [6063582] system/keywords: Fix sender variable as string and not object
  • [c4d8248] lib/message: Add url() function to eval
  • [af51da1] lib/logs: Update datetime format to use local time
  • [ce3bec4] main: Fix incorrect checking user on join/part
  • [c80285c] lib/api: Add clearTimeout for better garbage collection
  • [294099b] database/master: Add clearTimeout too free gc
  • [909b06f] lib/currency: Add clearTimeout to free gc
  • [ef49807] lib/event: Add clearTimeout to free gc
  • [8fcd58e] games/heist: Add clearTimeout to free gc
  • [819071f] system/bets: Add clearTimeout to free gc
  • [e679e80] main: Add clearTimeout to free gc
  • [95d958b] lib/users: Add clearTimeout to free gc
  • [46d585f] lib/webhooks: Add clearTimeout to free gc
  • [2516700] integration/spotify: Add clearTimeout to free gc
  • [e087f0e] system/gambling: Add clearTimeout to free gc
  • [b061cb8] system/points: Add clearTimeout to free gc
  • [5881374] system/raffles: Add clearTimeout to free gc
  • [0656ee0] system/timers: Add clearTimeout to free gc
  • [04dcfb8] perf/sockets: Remove from several calls
  • [1e33902] cluster: Initialize debug functions only once
  • [e966f63] lib/api: Initialize debug functions only once
  • [bd54c4f] database/master: Initialize debug functions only once
  • [dcb3046] main: Initialize debug functions only once
  • [7696341] lib/configuration: Initialize debug functions only once
  • [1c18cc8] lib/parser: Initialize debug functions only once
  • [d5f9c2f] system/bets: Initialize debug functions only once
  • [5dd21e5] system/moderation: Initialize debug functions only once
  • [9185f7f] lib/timeout: Add recursive() to use for recursive functions with wait
  • [07a9810] various: Change recursive interval calls with timeout.recursive()
  • [92d17ae] lib/timeout: Properly cleanup timeout after clear
  • [e87b7d0] package: 7.4.2
  • Fixed alias system causing cpu lock and infinite loop
  • [5c1f037] database/nedb: Remove index on startup
  • [2fb159d] lib/message: Fix undefined (
  • [b7d112c] system/bets: Add options to some messages
  • [4cddc1c] system/alias: Check if parsed message contain command
  • overlays
    • Added facebook-like animation for emotes fade out
  • ui
    • Toggle to hide or show New chatters, Max viewers and Current viewers
  • performance
    • Fixed potential database memory leak
  • response filters
  • [5155a43] system/gambling: Change $sender to $winner for noContestant
  • [3da2d94] ui/highlights: Remove 'v' from beginning of video id
  • [cebe083] overlay/emotes: Add facebook-like animation
  • [b67986d] tool/migrate: Set version to 999.9.9-SNAPSHOT if called directly
  • [a212583] database/mongodb: Remove dropDups as it is not supported anymore
  • [efb2fbb] database/mongodb: Create indexes only on cluster
  • [7541346] tools/cleanup: Revert duplicate user clean
  • [6a7848d] lib/users: Move messages stats to own collection
  • [c87ceea] widget/chat: Remove viewer count from tab
  • [68fd049] ui/dashboard: Toggle hide/show viewers in quick stats
  • [97661b6] Update issue template with links to fider
  • [e4ed33c] lib/users, ui/viewers: Change sorting to be server side
  • [a752f87] database/master: Change setTimeout for returnData
  • [0d40f7e] system/highlight: Fix incorrect api.stats call and api type
  • [4cd5133] lib/api: Move loop timeout call after everything is done
  • [27fd102] lib/api: Wait until all events are done before interval call
  • [5230fe6] main: Send message to another worker then last one
  • [32ce34b] database/master: Fix potential memory leak
  • [fc54bad] lib/api: Add timeout refresh to catch
  • [ddfe91b] lib/api: Revert wait for join/part event
  • [b748f57] tool/commit: Update commit changelog style
  • [b65c790] system/bets: Fix incorrect message on bet close
  • [c4ccd09] system/bet: Fix error when parsing without options
  • [10e378d] widget/bets: Fix updates of widget data
  • [5248fba] travis: Update NodeJS version to 10.x
  • [0ffe603] database: Use master controller only on single instanced dbs
  • [d306f43] database/master: Fine tune timeouts for sendRequest and returnData
  • [90e1b46] system/bets: Refactor of bet system
  • [125348a] lib/permissions: Fix slow UI response on permission change
  • [44a9142] widget/cmdboard: Fix widget behaviour
  • [fbd8b51] widgets:: Drag widgets only by header
  • [f57cc0c] lib/api: Move join/part event handlers at the end
  • [ebb359c] database/master: Remove retry and cleanup
  • [c0dd149] lib/parser: Populate list only at parser init
  • [94d5317] main: Add warning if message parse took more than 1000ms
  • [e0040b3] widgets/bets: Update chart only if dataset changed
  • [b1ae26e] widget/cmdboard: Fix displayAs on refresh
  • [1017fa9] lib/api: Update follower update interval to use timeout
  • [ff63e84] widget/bets: Fix refund when using non english lang
  • [c609a4c] system/moderation: Fix return of empty blacklist/whitelist
  • [6d717d8] database/nedb: Fix creation of indexes
  • [5ba74be] lib/commons: Fix send message if client is not properly connected
  • [64bb27e] lib/commons: Simplify code for workers
  • [80c2ffc] lib/commons: Retry only once for message send
  • [1f33a20] libs: Fix several incorrect log error calls
  • [4e415c5] lib/twitch: Fix !game and !title commands without arguments
  • [e47016a] lib/parser: Add debug message after parsers are done
  • [aa7cd30] system/alias: Fix running alias if it point to same alias !me -> !me
  • [30f0bcc] widgetr/raffles: Move pick a winner after input
  • [37e716d] widget/raffles: Add popout
  • [de02984] system/raffles: Announce only if stream is online
  • [9929254] widget/bets: Reset dataset when bet is closed
  • [a071e12] various: Remove not intended console.log
  • [21b75ed] overlay/bets: Add bet index to overlay
  • [2b0b49c] lib/api: Set values on stream offline instead of online
  • [7209265] lib/commons: Fix sending message when debug is set to console
  • [0c95b50] lib/message: Fix if filter used with other params like random
  • [90c91c3] system/highlight: Fix !highlight not working on worker
  • [63c0061] lib/message: Add new global event filters
  • [5a41614] system/bets: Fix incorrect user amount when closing bet
  • [96c0456] locale/cs: Change points to body
  • [4ffe2fe] system/moderation: Fix cleanup of warnings and warning count
  • [2a123e7] lib/message: Improve eval performance
  • [dcc6ef6] lib/api: Add more data to stats
  • [97efc8d] lib/webhooks: Add check for channelId to stream event
  • [29755f3] lib/message: Exclude Math.random, _.random from random check
  • [f9969b0] integration/donationalerts: Fix amount to have fixed float number
  • [8569b44] integration/streamlabs: Fix amount to have fixed float number
If you have issues with bot startup due duplication keys issues, please run through cleanup, node tools/cleanup.js

Example of error
(node:14592) UnhandledPromiseRejectionWarning: MongoError: E11000 duplicate key error collection: icebot_db.users index: username_1 dup key: { : "boonee007" }
at /home/bots/icebot/node_modules/mongodb-core/lib/connection/pool.js:598:61
at authenticateStragglers (/home/bots/icebot/node_modules/mongodb-core/lib/c onnection/pool.js:516:16)
at Connection.messageHandler (/home/bots/icebot/node_modules/mongodb-core/li b/connection/pool.js:552:5)
at emitMessageHandler (/home/bots/icebot/node_modules/mongodb-core/lib/conne ction/connection.js:309:10)
at Socket. (/home/bots/icebot/node_modules/mongodb-core/lib/conne ction/connection.js:452:17)
at Socket.emit (events.js:180:13)
at addChunk (_stream_readable.js:269:12)
at readableAddChunk (_stream_readable.js:256:11)
at Socket.Readable.push (_stream_readable.js:213:10)
at TCP.onread (net.js:578:20)
(node:14592) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejectio n id: 1)
(node:14592) [DEP0018] DeprecationWarning: Unhandled promise rejections are depr ecated. In the future, promise rejections that are not handled will terminate th e Node.js process with a non-zero exit code.

  • 1d1c709 database/mongodb: Remove dropDups as it is not supported anymore
  • d59c784 database/mongodb: Create indexes only on cluster
  • 2b7ce8e tools/cleanup: Revert duplicate user clean