OxidizeBot

High performance Twitch bot in Rust

APACHE-2.0 License

Stars
153

Bot releases are visible (Hide)

OxidizeBot - commit 893b8dd5

Published by udoprog over 5 years ago

OxidizeBot -

Published by udoprog over 5 years ago

Added

  • Web-based overlay with current song (#22).
  • Player will no longer pause the current song (if it's playing) and will instead synchronize the state of the player with Spotify (#18).
  • Implement !command rename <from> <to>
  • Ability to sync remote state of player with [player] sync_player_interval = "10s" (#18).
  • Much more helpful guidance when using !song incorrectly.
  • Store aliases in the database instead of the configuration. See the alias configuration for more details (#24).
  • Start storing some settings in the database (#19).
    • Bot keeps track of first time it's being started to perform first-time configuration.
  • Promotions through the promotions module. See the promotions configuration for more details (#25).

Changed

  • Cleaned up old cruft in the codebase (gfx module).
  • Moved log configuration to external file (see example log4rs.yaml).
  • No longer raise an error on bad input.
  • UI is now built in React (#23).
    • This adds the -WebRoot option to tools/setmod.ps1 to override where to load files from for development purposes.
  • .oauth2 state is now stored in the database under settings.

Removed

  • Removed !counter in favor of !command with same functionality. Using the {{count}} variable in the template will cause the count to be incremented.
  • [[aliases]] section from configuration. Aliases are now stored in the database. The first time you run the bot it will migrate all the aliases into the database.
OxidizeBot -

Published by udoprog over 5 years ago

Added

  • !water command that can be enabled using as a module through [[modules]] see README.md.
  • Attempt to automatically refresh expired tokens on startup (#21).

Changed

  • Move all locks to parking_lot.
  • Improved logic to notify on device configuration.
OxidizeBot -

Published by udoprog over 5 years ago

Added

  • Player now plays music through Spotify's blessed Connect API (#17).
  • !swearjar command that can be enabled using as a module through [[modules]] see README.
  • !countdown command that can be enabled using as a module through [[modules]] see README.

Changed

  • Remove dependency on bundled .dll files.
  • Deprecated the use of the native player in favor of connect since it's a potential TOS violation (#17).
  • Improved administration UI:
    • Support for selecting Audio Device (does not persist across reboots) (#20).
    • Informing you more clearly when you need to authenticate.
    • Provide hint on how to configure persistent device.
OxidizeBot -

Published by udoprog over 5 years ago

Added

  • !song promote <number> to promote songs to the top of the queue (#2).
  • Optional web page (hosted on setbac.tv) to display current queue (#3) (config: api_url).
  • Support suppressing echoing of current song (config: [player] echo_current_song = false).
  • Show queue position in player view (#8).
  • Support deleting a song at the given position (#7).
  • Moderator action cooldowns (#6).
  • Moderators are automatically picked up through /mods command on IRC (#5).
  • Support for !clip command (#13)
  • Support for !8ball command (#14)
  • !afterstream command now has a cooldown configured through [irc] afterstream_cooldown.
  • !song when to see when your requested song will be playing.
  • Added {{elapsed}} as a variable for current_song.
  • [current_song] update_interval = "5s" to specify how frequently the current song information will be updated.
    This might be necessary in case {{elapsed}} is used as a variable and you want it to update live.
  • [irc] startup_message = "HeyGuys" to send a message when the bot starts.

Changed

  • Changed configuration format to be TOML and flatten it (see example configuration).
  • Removed HTML escapes from current_song (#4).
  • Fixed !song purge not sending update to setbac.tv (#9).
  • Streamer is immune to cooldown and is always moderator (#10).
  • Changed configuration format to flatten it more (#11).
  • Reduced the number of scopes requested for tokens to a minimum.