NOTES
- 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
- Added new attribute
- 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
- Added system and games configuration pages
- games
- Added wheel of fortune game
- systems
- Added quote system
- docs
- Docs moved to http://sogehige.github.io/sogeBot/
- widgets
- Removed
joinpart
widget and addedjoin
andpart
widgets
- Removed
- 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
- Added
COMMITS
- [1459472] registry/customVariables: Fix not available text when current value is 0
- [399c8e1] libs/customvariables: Fix error with checking custom variables
- [2b6d032] lib/twitch: Fix setTitle error without params
- [e2d8e60] lib/twitch: Fix setGame error without params
- [4988072] lib/customvariables: Change variable value from widget when readonly
- [522fd74] lib/logging: Add logging time based on locale or configured timezone
- [3815abc] lib/twitch: Show !time based on locale or configured timezone
- [6f81965] game/heist: Fix payout of points from bet
- [db928b1] chore: update PULL_REQUEST_TEMPLATE
- [5ddb50d] docs: Move from wiki to docs
- [feeb90c] chore: move from snekfetch to axios
- [9d881d7] main: Add new_chatter ritual
- [ab8fca7] main: Add raid support
- [c8928fa] game/wof: Add wheel of fortune game
- [e79ae30] css: Add raid color for eventlist
- [cf3e653] ui/games: Fix link to wheel of fortune
- [dbfa394] game/wof: Add sender username to spin
- [bc4991c] overlay/alerts: Set iframe border to 0
- [daf87f4] lib/panel: Add custom subfolder
- [ec585af] lib/api: Fix axios call for followers
- [c2eec19] system/highlight: Use axios instead of tmi api call
- [40bb12d] overlay/credits: Fix typo in creditsRaidedBy
- [d202182] lib/message: Stringify object if api is used with _response
- [2266c75] lib/customvariable: Return full axios object on url()
- [b0d07e6] ui/customVariables: Add proper null checks
- [8a31d34] system/points: Force set points in setPoints
- [f623d76] ui/stats: Add number shortening
- [737eddc] ui/stats: Add sticky toggle
- [d717046] ui/stats: Fix number shortening typo
- [424d914] ui/stats: Add avg diff toggle
- [99491c9] package: dependencies update
- [26a8383] overlay/alert: Add delay for html alert
- [f17e162] docs: Update configuration section
- [9529ee5] docs: Update links on readme
- [5653214] lib/events: Reorder atrributes by length
- [86f5855] chore: Remove pre-commit checks
- [f4dec83] system/raffles: Remove correctly points from user in ticket raffle
- [bcdb476] database/mongodb: Remove unique constraint for users.online
- [01cec7e] database/nedb: Remove unique constraint for users.online
- [61f0a36] main: Remove tmi join/part events listeners
- [d27cad6] lib/api: Force set offline ignored users
- [2e26388] lib/api: Fix quiet setting on first run of latest followers
- [9bca13a] lib/api: Add oauth2 validation
- [3e07d74] lib/cache, lib/panel: Access game titles cache directly
- [f6c408d] system/quotes: Init implementation of quotes system
- [7c74a7b] lib/configuration: Add !enable/!disable commands
- [cb2d201] ui/popout: Remove unused console.log
- [cb2d201] ui/popout: Remove unused console.log
- [13d5db2] core: Add id for all commands
- [dc5eb98] core: Add .apply() to parsers calls
- [5c7cf6a] lib/parser: Add .apply() to moderated parser
- [c323d5b] game/heist: Make heist command proper command
- [5e3cb7e] game/wof: Make wof command proper command
- [000ec34] lib/api: Fix change title and game through cluster process
- [6e686f5] lib/customvariable: Fix setTitleAndGame call
- [45ed5a6] lib/events: Fix setTitleAndGame call
- [4a46dcb] lib/panel: Fix setTitleAndGame call
- [c93b117] lib/parser: Remove deprecated command check
- [f039226] lib/configuration: Add ids to commands
- [6ec5894] lib/configuration: Change to class
- [a12c596] lib/users: Add ids to commands
- [74b80a7] lib/twitch: Add !top points id
- [741c2b0] overlay/alert: Fix !alert command id
- [6bba140] system/songs: Fix getCurrentSong undefined error
- [70ffe8d] integration/spotify: Add format settings
- [9e1b17e] lib/parser: Remove empty commands from commands list
- [6ab478a] lib/api: Send correct cli error if channel is not affiliate/partner
- [ff22cfa] lib/twitch: Fix showMe sender variable
- [ce583f1] overlay/alert: Fix !alert command isWorker part of code
- [4e47cd7] chore: Update dependencies
- [8136e18] chore: Move twitch-emoticons dependency to server
- [bcaf675] lib/message: Add escaping for currentSong
- [48d736b] lib/customvariables: Add global filters and custom variables to eval
- [8d4cad4] lib/customvariables: Add missing null check
- [f6340ac] lib/api: Add retry for getChannelSubscribersOldAPI
- [2496f9d] lib/api: Add reset for retry getChannelSubscribersOldAPI
- [22d269e] tool/cleanup: Add missing global.log.error
- [b527de4] lib/logging: Add stream start/stop logging
- [66d18a1] lib/events: Fix atUsername ignore for usernames
- [eab55e0] lib/api: Fix log.stop Promise error
- [a698bb7] integration/donationalerts: Update socket address
- [0d16666] cluster: Add insert/update based on user existing
- [d0f544e] lib/api: Catch will print stack for API calls
- [9410bb4] game/heist: Fix empty command return
- [f73e703] game/wof: Fix empty command return
- [c083a24] system/interface: Add system interface to easy customizable system creation
- [27080e7] system/alias: Add alias system customization
- [dcb3bfa] lib/panel: Deprecate registerSockets
- [de02e1b] lib/parser: Await for parsers functions
- [09e2ae9] lib/expect: Fix behavior with single parameter number
- [c1c86a0] game/wof: Remove console.log
- [81f46f0] system/bets: Add bets system customization
- [4e7878d] system/commercial: Add system customization
- [1cdeea1] system/cooldown: Add system customization
- [b21457f] system/quotes: Fix error when id is not a number
- [ad23ce5] system/interface: Move commands() into interface
- [a9e6e1a] tools/migrate: Fix system -> systems in collection
- [63d9327] system/customcommands: Add system customization
- [90a875b] lib/api: Add check for empty data from twitch
- [4295870] js/components: Move vue components to own library
- [44030c0] test/helpers: Fix db systems.* cleanup
- [4f1a266] lib/message: Fix (list) filter response
- [8af14df] lib/configuration: Add game enable/disable
- [fa459c1] game/seppuku: Move !seppuku from gambling system to games
- [30be95c] game/gamble: Move !gamble from gambling system to games
- [9889c0b] overlay/alert: Force iframe refresh
- [fd8d42b] game/roulette: Move !roulette from gambling system to games
- [8bd8445] game/fightme: Move !fightme from gambling system to games
- [37be78d] game/duel: Move !duel from gambling system to games
- [c244f0c] tests: Add !fightme tests
- [80b433e] tests: Fix !duel tests after move to games
- [13ec6bc] system/highlights: Add system customization
- [3178bf5] lib/commons: Send all /commands without /me
- [00972cb] system/interface: Add enviromnent variable DISABLE to force disabling
- [964f7aa] system/interface: Move parsers() into interface
- [25998b9] system/interface: Add default settings and settings.update listeners
- [23d049c] system/interface: Add dynamic collection getter
- [f157422] lib/parser: Fix debug information error
- [bf62fda] lib/parser: Reorder commands by length
- [637afd8] system/interface: Add dependsOn option for parsers and commands
- [bdee72d] system/keyword: Add system customization
- [8930f86] system/moderation: Add system customization
- [23db979] lib/interface: Move interface to library
- [d5868e6] various: Add settings UI and helpers for UI
- [4a4b34c] system/points: Add system customization
- [ed8df6a] lib/permissions: Fix permission settings through UI
- [b3888e2] system/price: Add system customization
- [9a066ea] lib/message: Fix (price) and (list) filters
- [45eb646] lib/configuration: Update !_debug for new system/game interface
- [a2d992d] system/queue: Add system customization
- [13c9724] system/quotes: Add system customization
- [0af2275] system/raffle: Add system customization
- [e24a334] lib/interface: Add find, findOne, update, delete into interface socket
- [6cb6e06] system/ranks: Add system customization
- [e7d9801] system/customCommands: Remove redundant interface sockets
- [b06b81c] system/keywords: Remove redundant interface sockets
- [e097eae] system/price: Remove redundant interface sockets
- [7a24f7f] system/quotes: Remove redundant interface sockets
- [c4ccb13] system/songs: Add system customization
- [caa5d36] tools/migrate: Add unlinking of not used nedb files
- [0167028] lib/interface: Add more options for FUD operations
- [4d43c4f] ui/widgets: Move widgets to Vue
- [e4af95a] system/gambling: Remove deprecated system
- [124de2e] lib/events: Fix fireCreateAClipAndPlayReplay error on clip play
- [7b5aff6] lib/message: Decode html entities on message
- [0ed9e57] panel/events: Fix incorrect toggles values
- [47b6228] lib/interface: Remove settings data if value is default
- [ff4ba8a] tool/migrate: Fix path for constant if updated from 7.0.0
- [a5fdab0] library/interface: Fix settings being rewrited if in same category
- [f4dff40] test/moderation: Add var check for moderation tests
- [fec23ca] test/twitch: Add waitMs(100) to enhance robustness
- [f38b598] overlay/bets: Align bet collection to new interface
- [556712e] database/nedb: Delete _id on insert to align with mongodb
- [9154b3f] system/timers: Add system customization
- [ba8d108] panel/settings: Add games settings page
- [b8b1d59] game/wof: Move wof to interface and update settings
- [f8fc08c] game/*: Align games with new settings
- [b00427e] system/bets: Fix total points on bet close
- [5ff5f66] games/interface: Set games opt-in instead opt-out
- [b67d481] lib/twitch: Fix !me system status check
- [5afe553] chore: remove systems from config
- [820ebda] game/heist: Update game to new interface and settings
- [ae23e2a] library/configuration: Add !set for interface values
- [3f0477c] docs: Update changelog version of a bot in quotes
- [e062d7a] docs: Update alias
- [e880f88] docs: Update commercial
- [938f957] ui/menu: Fix links in menu dropdown
- [725c14f] ui/systems: Add permission dropdown for commands
- [973e14a] src/api: Reorganize try/catch/finally code
- [6efa13b] docs: Add how to write own system
- [2e0825b] cluster: Fix corrupted user data onMessage
- [887d2a3] src/users: Move watched to own collection
- [d33132a] chore: Bump version to 8.0.0-SNAPSHOT
- [8c5a4df] tools/migrate: Add settings migration
- [38b949b] system/raffles: Check raffle keyword case insensitive
- [0bae67d] src/twitch: Add tip amount to !me
- [7cab823] src/api: Remove interval for getting channelID
- [e08b3aa] system/raffles: Add subscribers and followers luck
- [3d1958c] tool/migrate: Remove deleting of stats.db
- [61e9a07] locales: Add ui settings locales for systems and games
- [447b10f] ui/settings: Make save button sticky on top
- [2fb2bc0] chore: dependency update
- [4ce3571] locale/cs: Fixed case in string
- [91d9cb3] src/interface: Fixed get permission of simple commands
- [205c661] ui/settings: Fixed styling of pending changes warning
- [7e63768] js/component: Fixed sending undefined onUpdate
- [081afca] docs/howto: Updated missing exports in howto
- [21b97d1] docs/howto: Add return statement to parser fnc
- [2603aed] src/interface: Fix propagating of command objects
- [bf02d69] system/points: Fix get of interval settings
- [1d439a7] src/interface: Remove redundant console.log
- [2f65baa] src/message: Fix undefined system pointer
- [6320851] database/nedb: Add unique tag for cache collection
- [14dfc5a] database/mongodb: Add unique tag for cache collection
- [d747d42] ui/customCommands: Fix incorrect data object
- [0940e32] ui/keywords: Fix incorrect data object
- [b29f0cd] ui/price: Fix incorrect data object
- [ddce023] ui/ranks: Fix incorrect data object
- [4afed96] ui/various: Fix incorrect _id sent on delete
- [58d4bfc] ui/various: Alphabetically order lists
- [04b5ca4] chore: update config example with oauth:format
- [319790e] docs: Update install and upgrade guide
- [1c19da3] database/mongodb: Add useNewUrlParser option to connect
- [f35d9b7] database/nedb: Create always indexes
- [5f1eec1] database/mongodb: Create indexes on master only
- [77431f4] game/fightme: Add rewards for user vs user
- [77120c2] game/roulette: Add rewards for game
- [9f986dd] ui/various: Fix incorrect search critearia sent
- [36aba8e] src/interface: Add cleanup for undefined settings values
- [c4f2034] js/components: Fix height is not properly applied to full block
- [60e4a58] js/commons: Fix height issue with abbr
- [ab30613] docs: Add bot account warning
- [8e34cc5] src/logging: Add missing raid level
- [1ea63a5] src/api: Fix getCurrentStreamData loop
- [3cd81c6] src/commons: Fix undefined compact value if only one item exist
- [ae18688] database/mongodb: Add sort, sum, total to find()
- [eda9d3f] database/nedb: Add sort, sum, total to find()
- [a7cc630] database/interface: Update comment with _sum, _total, _sort
- [85022f8] src/twitch: Simplify !top by narrowing db calls
- [4058ed1] src/api: Remove bot from online users
- [61fb34a] docs: Add browser prerequisite
- [677fbad] chore: SIlent deprecation errors
- [f8c5a2a] tool/migrate: Properly cleanup settings when value is empty
- [3747f3f] js/component: Fix wof response heights
- [0e4c34f] widget/soundboard: Fix volume progress dragging
- [69bb0b4] widget/queue: Fix missing popout prop
- [2429c12] database/master: Add index function
- [258afb8] src/interface: Add automatic indexing on settings collection
- [82480f5] database/mongodb: Fix not indexing on bot start
- [874a3f2] tool/migrate: Fix migration of settings
- [653017b] panel: Fix incorrect socket to highlights
- [955b7e8] database: Fixes regarding of db speed
- [d692e91] panel: Fix NaN in stats
- [699c557] src/message: Fix missing param for custom variables
- [e862ed5] locales: Add missing timer locale
- [fec487f] panel/playlist: Remove unused edit button
- [2267d0f] src/users: Update watch time interval updating
- [917ba18] src/commons: Compact dbs only on offline stream
- [eb1745f] src/commons: Run compactDb only once when stream is offline
- [c7c2589] ui/widgets: Add missing langs for raffles widget
- [0e1008c] chore: Move dev packages to devDependencies
- [d324f0c] docs: Update installation guide for production and dev
- [98c41b4] npmrc: Add save and save-exact options
- [ef58158] build: Straightforward build system
- [75d11cd] chore: Update travis install
- [72ddcc0] makefile: Add zip packing
- [25357bc] system/moderation: Fix blacklist moderation loop
- [b67b43c] chore: Add debug option into package scripts
- [610b158] database/mongodb: Create collections before create index
- [4604de9] database/mongodb: Make reconnectTries infinite
- [4edcf9c] ui: Add missing locales
- [ea6bb18] makefile: Pipe git log through cat
- [d0ea816] chore: Update vue-plyr to 4.0.0
- [54e3e9b] chore: Update dependencies
- [f1880f5] makefile: Add ENV to set production or development
- [1b1a146] makefile: split clean to prepare and clean
- [e698119] chore: Update to twitch-js 2.0.0-beta.9
- [9fe5271] src/commons: Fix message sending and timeout
- [8102547] ui/cooldown: Add missing type toggles
- [62e03e7] src: Fix subscriber check
- [98e181e] src/twitch: Fix !top message undefined output
- [7b9621d] src/event: Fix commercial operation
- [895f6cd] travis: Add travis_wait to make
- [6ea7a53] main: Check raw message for hosts
- [e7c7831] ui/cooldown: Fix not saving of type
- [e94def3] src/twitch: Fix !top points undefined values
- [e40cadd] chore: Update twitch-js 2.0.0-beta10
- [48ca7bd] src: Add sub community gift support
- [fe79ef3] ui: Fix bot status update after restart or socket disconnect
- [b7ad3f9] src: Add ignorelist to memory
- [59fd048] system/moderation: Fix !songrequest and sr aliases whitelist
- [47de2b6] src/commons: Remove redundant console.log
- [6be6310] widget/chat: Remove ignored viewers
- [ac424a1] src/commons: Fix events fireRunCommand with null sender
- [8fb60b0] ui/songs: Add volume and trim change
- [2c25a3e] test: Add missing await
- [30af387] src/events: Add reset each message toggle for keyword-send-x-times
- [2aa4c82] chore: Update dependencies
- [2d6a666] main: Change PRIVMSG to HOSTED event
- [cf2aa62] panel/popout: Fix dropdown hide with data-allow-focus
- [aeb0ca2] docs: Add bot_color settings
- [b18f3fe] game/duel: Add dynamic $command
- [6cf8369] system/bets: Add dynamic $command
- [7eca3ce] game/fightme: Add dynamic $command
- [31e87f2] system/points: Add points per message for offline
- [16cc799] game/seppuku: Add reason for seppuku timeout
- [21a2deb] docs: Add tools documentation
- [a533229] test: Remove redundant console.log* [c803ea1] docs: Add important links
- [3806573] src/twitch: Add !top followage
- [4f074dd] system: Fix missing await for message prepare
- [8340ce9] chore: Remove redundant devDependencies
- [fbca88a] system/moderation: Change default spam maxLength to 50
- [977a456] src/events: Add undefined check
- [0d17111] database/mongodb: Fix sorting
- [03029b3] src/permissions: Fix misalignment between permissions
- [6fec19b] chore: Update twitch-js 2.0.0-beta14
- [d740589] tool/migrate: Fix error on permission migration
- [d31a163] overlay/emotes: Fix incorrect parsing of emotes
- [c346e50] system/moderation: Fix emote count check
- [9ca72ab] chore: Add Flow checking
- [19d97fb] system/cooldown: Fix global cooldown
- [5483bbf] chore: Add flow building
- [a24d3f4] src/panel: Fix path for public html
- [7106739] src/panel: Fix dist path
- [daf863d] metrics/translations: Add translations metrics
- [39db8a1] chore: Update linting
- [acbf952] database/master: Update connection check
- [d8eeb6a] test: Disable translations metrics
- [d43c7c2] system/moderation: Fix emote parsing on caps
- [20a32d5] src/main: Add whisper support
- [a9d2705] src/translate: Send metrics only if metrics are enabled
- [e96405a] src/main: Ignore subsequent sub gifts events after community gift event
- [b32c75a] package: Update dependencies
- [77490f4] panel/twitch: Fix link for twitch player
- [67edfe5] database/master: Add isConnected() check to worker
- [f161c19] docs: Add clientId possible error with new apps
- [a0ed1cf] src/main: Add oauth checks
- [d4d18c3] src/commons: Fix !ignore add process.send
- [f83ea6d] src/commons: Fix isIgnored if arg is string
- [a3214fd] tools/migrate: Fix caps and spam moderation migration
- [caa3d47] database: Fix index creation
- [ac6fc65] src/customvariables: Add response types for variable set
- [5d726d9] src/customvariables: Add default responseType to new variables
- [7d988bb] docs: Fix custom variable filter format
- [450d2bd] src/main: Remove redundant console.log
- [f7d425f] src/translate: Send metrics only once on use
- [e886ed5] src/translate: Fix if logic for metrics
- [7061012] src/translate: Add check for ui/webpanel keys
- [927f795] tools/migrate: Remove redundant console.log* [996a9a5] src/translate: Hide metrics errors
- [fb3d4f0] make: Update files to zip
- [10d1a70] chore: Add greenkeeper commit messages
- [ef30d65] docs/readme: Add greenkeeper badge
- [24fae9c] chore: Update dependencies
- [e118b9e] eslint: Fix eslint issues
- [c94286f] chore: Update compare-versions to version 3.4.0
- [42b77f1] src/users: Fix watched time set
- [2925e25] chore: Update auto-load to version 3.0.1
- [6824910] chore: Add prelaunch task for debugging
- [c9e78de] src/api: Update follow check
- [9434422] ui: Show menu item only after being selected
- [8437528] chore: Update flow-bin to version 0.80.0