SogeBot - Twitch Bot

Free SogeBot - Twitch Bot 14.14.1

NOTABLE CHANGES
  • Added gamblingMinimalBet to set minimal bet for !gamble
  • Added duelMinimalBet to set minimal bet for !duel
  • Added duelDuration to set duration of !duel
  • Added (stream|#|game), (stream|#|title), (stream|#|viewers) filters, where # is channel name
COMMITS
  • 6eb496f various: Remove all api.stats references
  • 1007329 ui/viewers: Improved date handling
  • ea09f9a ui/viewers: Fix 'Invalid date' when saving empty dates
  • e7ef446 lib/message: Fix incorrect sender username pass for parse process
  • 4565354 lib/twitch: Add sender.username check for lastseenUpdate
  • 6f7a471 system/raffles: Add sender.username check for participate
  • 757b1bb tool/cleanup: Remove duplicates cleanup
  • 9ca31e0 ui/timers: Add margins for timer cards
  • bca150b db/mongodb: Add unique option for user usernames
  • cdb0db1 various: Force bot username to lower case
  • 71c369c system/points: Fix time check when adding points
  • 29af09c system/points: Add check if interval or points are set to 0
  • 40bcfc4 system/points: Add user.points collection
  • dce905c tool/migrate: Remove points from users collection
  • a7434b5 system/points: Compact only >0 points
  • 195f407 lib/api: Fix incorrect id check for follower update
  • b418284 main: Fix undefined username when checking follower state
  • e73a5a6 lib/twitch: Fix incorrect points in !top points command
  • f6312f7 lib/translate: Add error message when language doesn't exist
  • 59c3f25 locale/cs: Lowercased increment of custom variable
  • 6021887 lib/events: Save inc/dec variable's value as string
  • ebf07f5 lib/configuration: Fix widget output in !_debug
  • 2c4ee1f system/gambling: Fix points check on !gamble
  • 109ac71 various: Remove not needed debug console.log
  • 915f6d5 widget/custom_variables: Fix removal of watched variable if integer
  • 4daa396 lib/message: Fix if filter contains $param
  • 817d7a3 system/points: Compact points only if stream offline
  • 3846189 system/gambling: Add gamblingMinimalBet settings
  • b77a845 system/points: Compact only offline users when stream online
  • d5c8123 system/gambling: Add duelDuration settings
  • 5f7279a system/gambling: Add duelMinimalBet settings
  • 2213f31 tool/migrate: Remove points from user in collection
  • 01add30 lib/commons: Retry sendMessage if action or say failed
  • 911e903 locale/en: Fix typo for duel minimal bet
  • ecf5aea system/points: Add null check for usernames
  • 7143413 package: deps update
  • 6767018 system/price: Remove redundant number checks
  • 997027a tool/migrate: Fix NaN issue when migrated
  • cc5f196 system/alias: Fix aliases with params being ignored
  • 392a329 test/price: Add price check tests
  • 8622188 lib/api: Fix incorrect created_at format for users
  • 92e384e tool/migrate: Remove incorrect created_at from users
  • 53460e3 system/points: Set points to 0 if below 0
  • 00e6623 system/gambling: Fix incorrect !gamble lose points in message
  • db64dd1 database/mongodb: Drop duplicates on unique index creation
  • 52561f7 lib/users: Merge will move points
  • 9ec3fb4 system/gambling: Fix !fightme timeouts
  • 7763f0d lib/twitch: Fix !top points calculation
  • 0d2c3fb system/gambling: Fix deletion of !duel users when new user is added
  • 1f522db system/gambling: Fix incorrect variable in error
  • 937b584 system/gambling: Remove redundant toString
  • 58e5d0d lib/twitch: Fix exception when dataset is empty
  • c83ba29 lib/message: Add stream filters
  • c05561e tool/migrate: Remove user before reinserting
  • 722affd database/nedb: Add users.points indexing
  • 3afac23 database/mongodb: Add users.points indexing
  • 84dafdb system/points: Fix saving points for undefined user if not in collection
  • 9dc4905 lib/twitch: Fix users duplication on !top points
  • c9b3d9f system/points: Change logic of points compact
  • e6f00fa lib/message: Fix (!#) and (!!#) filter on master
  • 44f4417 system/gambling: Fix noContestant sender name to winner
NOTABLE CHANGES
  • events:
    • Add increment and decrement operations for custom variables
  • filters:
    • Add $!param filter for non-required parameters (will return n/a on empty)
COMMITS
  • d025705 tool/commits: List commits as unordered list
  • f68755c integration/streamlabs: Add debug messages
  • 564e9c1 integration/streamlabs: Don't update users.tips and current tips if test
  • 9e8bfcc lib/api: Remove data saving from error
  • 18e3a2d system/highlights: Fix incorrect saving of highlights
  • abc93b2 lib/message: Set sender attribute as null when not defined
  • 9367e03 lib/events: Add increment and decrement of $_ operations
  • 780c7df lib/events: Update title only if custom variable is in title
  • 99d0fd9 lib/message: Update title only if custom variable is in title
  • d87ec1d lib/twitch: Simplify !followers and !subs
  • 7e789f3 tool/nedb-to-mongodb: Add simple migration tool from nedb to mongodb
  • d90d203 tool/nedb-to-mongodb: Remove unused require
  • f7e86e1 ui/viewers: Remove points input and data if points system disabled
  • bbf90fc db/master: Retry data send to worker until its ready
  • 8d7f571 db/master: Fix requests were not correctly sent
  • fec7558 lib/translate: Fix incorrect loading of custom translations
  • 6f69045 lib/message: Fix $param behavior and add not required $!param
  • b9087e3 ui/commands: Add $param and $!param filters
  • 75bf88f package: Update dependencies
  • 8bbbe6d lib/api: Revert API stats cleanup
  • 4b13f36 lib/currency: Change rate provider to cnb.cz
  • 273a82a lib/commons: Warn only if there is text to warn
  • 89648ff ui/cmdboard: Add switcher list, grid
  • e16a901 lib/api: Update online timestamp if current timestamp is later than it should be
  • 7abaf12 lib/api: Remove api.stats collection and saving
NOTABLE CHANGES
  • memory leak:
    • Fixed memory leak introduced by cluster implementation
  • performance:
    • Fixed several bot hard locks
COMMITS
  • 17fcb90 tools/migrate: Fix migration errors
  • a1c3b82 package: fix missing cluster.js in zip
  • b493a90 lib/twitch: Fix undefined currency on !top tips
  • 273d28c tests/moderation: Add !permit multiple link test
  • d30b763 various: Fix missing await on some configuration values
  • 5ecc781 libs/api: Fix incorrect account created_at fetch
  • 8c2690a lib/configuration: Fix !_debug errors
  • d589034 lib/api: Make all variables permanent
  • e34e2be overlay/stats: Fix sending incorrect data
  • f66b3fc integration/donationalerts: Fix saving tips when stream is online
  • 59c19b6 integration/streamlabs: Fix saving tips when stream is online
  • 0be14c6 overlay/credits: Fix get of current game and status
  • ae7f5c0 lib/webhooks: Fix update of game and status on stream start
  • 6e72ec5 lib/message: Fix get of game and status filters
  • a4ad421 main: Fix current bit increment when stream online
  • b63cf17 lib/events: Fix check on current viewers
  • ee56838 lib/stats: Expire api.stats automatically after 24h
  • 81f6b06 system/cooldown: Fix not respecting disableCooldownWhispers value
  • 559eb43 db/master: Cleanup expired data periodically
  • 4b9222c lib/api: Move raw status logic after online check
  • c0bfab3 db/master: Cleanup data as soon as they are finished
  • 755f0f5 db/master: Up timestamp threshold to delete data
  • c72139a db/master: Fix incorrect error messages
  • e614f7b db/master: Remove dbAck
  • 99d7ca7 db/master: Add retries for getting data from worker
  • 6ca0461 system/keyword: Fix parser being enabled regardless system status
  • b1e9ded db/all: Remove threading locks
  • 20bc74c cluster: Add debug messages
  • 68e26f6 lib/api: Mute unofficial chatters errors in log
  • 0cc315f various: Move online users status to users.online collection
  • df78279 lib/users: Fix set all users as offline
  • 94db688 lib/users: Fix watch time increment when user is not existing
  • dccbfff db/master: Run cleanup faster
  • 678a6bc db/master: Fix incorrect deletion of finished calls
  • 72b7af6 lib/api: Add wait for widgets on chatters
  • 107e050 db/mongodb: Drop Index on startup
  • ebf8478 db/mongodb: Check if collection is existing before dropIndex
  • e5ee7bf various: Fix incorrect use of append -> push
  • b89e4c7 lib/twitch: Add missing await
  • a56a35e lib/twitch: Fix !game and !title on cluster worker
  • dc316a9 system/commands: Fix remove of upper case command from param
  • fcd1e38 lib/message: Remove sender from random filters
  • 677d08b lib/message: Exclude bot from random filter
  • e75ebe6 lib/users: Fix incorrect return state of user activity
  • 765372c db/mongodb: Add insertMany support
  • 82855ef lib/api: Add bulk operations to prevent bot lock
COMMITS
6c8b9e1 integration/streamlabs: Fix saving tips when stream is online
770d35f integration/donationalerts: Fix saving tips when stream is online
COMMITS
a232820 libs/api: Fix incorrect account created_at fetch
COMMITS
11053a2 lib/twitch: Fix undefined currency on !top tips
7f10277 various: Fix missing await on some configuration values
NOTE
If you have issues with unique violation on startup, please remove from your db/nedb/users.db lines looking like
{"$$indexCreated":{"fieldName":"username","unique":true,"sparse":false}}

COMMITS
81089a5 tools/migrate: Fix migration errors
NOTABLE CHANGES
  • winston:
    • Updated winston to latest 3.x version
  • !_debug:
    • Debug information will be saved to sogebot.log and not send as message
  • tips:
    • Added user stats for tips and tips were added to stream info panel
    • Added !top tips command
  • currency:
    • Added default currency settings
      • can be set through ui, settings->systems->others
      • can be set through message, !set currency USD
    • Set currency will be uses in ui viewers, top tips, aggregated credits tips, etc.
    • Available currency list:
      • USD, AUD, BGN, BRL, CAD, CHF, CNY, CZK, DKK, EUR, GBP, HKD, HRK, HUF, IDR, ILS, INR, ISK, JPY, KRW, MXN, MYR, NOK, NZD, PHP, PLN, RON, RUB, SEK, SGD, THB, TRY, ZAR
      • Default: USD
  • cluster:
    • bot is running in cluster mode now
    • if you are migrating from 6.x, update your config.json - add (for example) "cpu": 4
    • NOTE: this value affecting number of processes bot is running (not working on nedb, this can only have one process)
  • others:
    • updated commands for !command add, !command edit, !alias add, !alias edit, see wiki
COMMITS
7883c68 lib/logging: Update winston to 3.x
ff85ccc lib/parser: Save started, success in queue namely except just numbers
8bbe2ed lib/configuration: !_debug will be saved only in a log
11dfd72 ui/css: Make dark theme more grey than black
12be5ab overlay/credits: Add space after aggregated columns
616b378 overlay/credits: Set max number of zero of tips to 2
1a6c005 widget/eventlist: Fix resub icon misalignment
a51e218 lib/events: Fix check of stream-is-running-x-minutes
920a603 css: Add padding to some card titles
af215b2 lib/events: Fix send message not sending if username null
d0bded5 lib/logging: Add username if available
991cda7 lib/panel: Fix webpanel link on startup
4d4b331 users: Add Tips stats for each user
1345868 ui: Add tips to stream info panel
4f3905a lib/twitch: Add '!top tips' command
76d1ae0 lib/users: Move bits and tips to separate db collection
44677d9 lib/currency: Add simple currency exchange library
fad53fc lib/currency: Add default currency setting
5220e0a lib/logging: Set logfiles size to 5M
2358412 tools/migrate: Add bits migration
5cdb09c lib/logging: Add console transport for exceptions
7e5f198 ui/viewers: Fix utf-8 encoding
0087641 ui/systems: Add configuration for currency
959c50e lib/currency: Return new exchange value as float
ef63ff7 theme/dark: Make secondary buttons darker
72f07ac main: Properly inspect unhandledRejection promise
5374913 css: Lower padding for eventlist messages
593bfc8 lib/stats: Fix NaN if attribute is not saved in db
4d1f96d dashboard: Remove incorrect ids from join/part buttons
079c91e lib/events: Order attributes to replace by length
cfb7c7a js/commons: Order filters by length
80b5d55 js/commons: Add withFilters fnc for filters parsing
b93808f page/events: Properly parse filters on event load
732f364 locale: Fix moderationLinksClips message
6672fcf lib/twitch: Fix follow time on initial load
7098136 main: Check if user is follower on each message
fa4dffc lib/twitch: Use correct timestamp for follow time
8b09b92 lib/twitch: Save follow time as Integer
b0e813f lib/user: Save follow time as Integer
06cd2b2 lib/users: Check users after overlay is initialized
08d43a4 lib/webhooks: Pick correct domain from config
d2301a8 ui: Add warning if dashboard accessed from incorrect domain
698d3c5 integration/donationalerts: Add more socket debug messages
424f5c5 system/commands: Fix edit of response starting with !
9223d57 lib/webhooks: Force check follower event to_id
562a78e core: Add cluster support
bb24e3e package: dependency update
5a89932 package: 7.0.0-SNAPSHOT
dbabb48 core: Fix several function calls
7930fa7 core: Fix getLocalizedName calls
2e7767e lib/message: Fix refresh of custom_variable widget
d37511d lib/message: Fix setTitleAndGame calls
7485855 lib/events: Fix message send to random worker
daefea4 core: Fix incorrect bot load sequence
3ae615b overlay/emotes, system/raffles: Fix error if sender is null
5a0a3bd lib/twitch: Fix incorrect uptime response
b4a5b19 db/mongodb: Add index creation on connect
7fa73de lib/commons: Fix sendMessage incorrect channel
bee49a3 main: Fix sendMessage incorrect channel
aa7c0e3 lib/api: wait for channelId before follow check
b8b944f overlay/credits: Fix clip fetch
c7bd2a1 various: Fix incorrect settings loading
b1d6c1f lib/api: Change getCurrentStreamData to check every 30s
04f2e33 lib/cache: Fix mistakenly deleted cache on title update
4d3d13e lib/webhooks: Fix incorrect function calls
62efb41 overlay/credits: Fix insert of multi lines at once
04f4d54 system/moderation: Fix warning count
d8a4170 test/moderation: Add test for #884
d78ce01 lib/cache: Fix save of isOnline var if false
31a338a lib/twitch: Fix uptime command response
eea1118 system/moderation: Add caps debug messages
1ead1af lib/configuration: Remove panel update on lang change
14d1aaf various: Add await for message prepare
241403d lib/webhooks: Fix channelId check
0207e97 system/moderation: Fix capitals check with emotes
a18f5e1 ui/viewers: extend user editation
8ad4043 system/command: Add missing return
9cbda39 lib/message: Fix (api) filter undefined message
67d13c8 lib/api: Ensure that setTimeout is called everytime
4aa412a system/commands: Add custom permissions
db0ab36 system/alias: Add custom permissions
c0e67c9 test/alias: Update tests for custom permissions
8a003b0 tests/command: Update tests for custom permissions
2ea2bb6 lib/api: Fix multiple getCurrentStreamData intervals
cf19cf3 lib/cache: Fix get and save for game title/status
06ed321 various: Fix startup issues when APIStats needs to be removed
6d11704 tools/commits: Add for changelog commit listing
7b3806f tools/commits: List commits from certain commit
8757923 system/moderation: Fix incorrect timeout logs and cooldown
89973c8 lib/configuration: Fix !set lang propagation
f3d9e16 system/moderation: Fix timeout announcing
72d2078 lib/logging: Cleanup comment
9124f5b system/moderation: Fix incorrect timeout messages
0e76f2d integration/spotify: Add more debug messages
591f34e integration/spotify: Fix getMe() when display_name is not set in spotify
88d7ab9 various: Rename APIStats collection to api.stats
7e5533d db/nedb: Add ensureIndex to increase performance
8031dfd lib/api: Fix followed_at error when user id is not defined
d9f5fc2 db/nedb: Add unique restraint for usernames
dadb405 lib/webhooks: Fix incorrect getGameFromId call
bcc47de system/gambling: Fix timeout calls
ab6ff67 lib/api: Fix error with empty game
e18a73f lib/api: Add chatters check on unofficial API
73c5333 lib/api: remove unnecessary if
902ff9c ui/viewers: Add filters for subscriber, regular, follower, active
a8b062c lib/api: Fix incorrect api stats collection
6bacb31 various: Count preciseDiff only as UTC times
HOTFIX 6.2.2
d6a53be - ui/eventlist: missing resub icon class
7bf0afa - ui/css: Fix colors and simplify theme coloring
HOTFIX 6.2.1
524812b - overlay/eventlist: Fix incorrect function on socket get
baa1622 - integration/spotify: Add e.stack to refresh token for more information
Top