Releases: SleepyLili/tlapbot
Tlapbot 1.2.2
This version fixes commands not working with Owncast v0.1.2.
Bugfixes
- #18 Switched receiving webhook for chat messages to use
rawBody
of the message instead of justbody
-
- This fixes issues with commands not working with Owncast v0.1.2.
- Help command now uses
<br>
newlines instead of\n
-
- This fixes an issue with missing line breaks in help message with Owncast v0.1.2.
- Help message with
LIST_REDEEMS
toggle on now supports milestones (instead of crashing).
Improvements
- You can't donate zero points to a milestone anymore.
- Tlapbot now warns you on startup if you have a redeem that has spaces in it, as commands with spaces in them will not work.
- Help message with
LIST_REDEEMS
now only sends redeems that are currently active. - Jinja template html for the dashboard was improved. (Less "technically incorrect" html weirdness.)
Misc.
- Cleanup of unused variables/imports.
How to update
If you followed the installation instructions from the README, just git pull
. Optionally, also rerun pip install -e .
, so that pip reports the new version number correctly.
Tlapbot 1.2.1
Few additions and fixes for 1.2.0 functionality, removal of unnecessary milestone minimum bid, and some better error handling.
Removed features
- #15 Milestones no longer have a minimum bid. Anyone can donate any amount of points to any milestone.
-
- Therefore, milestones redeems no longer need a
"price"
value. This doesn't break existing config files -- the"price"
value is simply ignored now.
- Therefore, milestones redeems no longer need a
-
- On the dashboard, Milestones now have a blank "price" column.
New features
- #14
reset-milestone
andhard-reset-milestone
commands to reset milestones. -
- You no longer need to remove and re-add milestones to reset them.
python -m flask hard-reset-milestone milestone
Improvements
- #12 In situations where the Owncast instance is down, the Owncast access key is wrong, or Owncast returns an unexpected http status code, Tlapbot no longer causes tons of uncaught exceptions, and instead logs more sane error and warning messages.
- In situations where click CLI commands or database operations fail, Tlapbot no longer lies about the operations being successful.
How to update
If you followed the installation instructions from the README, just git pull
. Optionally, also rerun pip install -e .
, so that pip reports the new version number correctly.
Tlapbot 1.2.0
What was originally supposed to be a few convenience updates ended up being a pretty big release. Milestones required A LOT more work than I thought they would, but this hopefully made the codebase a bit less janky and a bit more versatile.
New Features
- Milestone goals. Different chatters can now donate arbitrary amounts of points towards the same milestone goal.
-
- Milestones should be smart and shouldn't take more of users' points than needed for completion.
-
- Milestones will keep their progress when milestone goal gets changed.
-
- Milestones won't show up when they're in an inactive category, but they'll keep their progress.
-
- Check The redeems.py section of the README for more info on how to add counters to your
redeems.py
file.
- Check The redeems.py section of the README for more info on how to add counters to your
- #11 Passive mode: Streamer can now set Tlapbot to be passive. No chat messages, no redeems, but users still get points and name changes get tracked.
Improvements
- Counters and milestones now all get initialized in the database, regardless of whether they're active or not.
- Tlapbot dashboard now has a separate tab for redeems queue. The recent redeems table is a little nicer.
- The cumbersome
owncast_helpers.py
file has been split intoowncast_requests.py
andredeems.py
. - Readme typo fixes and clarifications.
Bugfixes
- CLI errors are now much better readable.
- #10
is_stream_live()
no longer explodes when Owncast instance is down.
How to update
If you followed the installation instructions from the README, just git pull
. Then run python -m flask init-db
to reinitialize your database, and add the milestones table. This will remove your redeem queue history, and your counters.
Optionally, also rerun pip install -e .
, so that pip reports the new version number correctly.
Tlapbot 1.1.0
Update focused on adding quality of life features and fixing various bugs and shortcomings.
New features:
- Redeem categories
- Customizable prefix for Tlapbot commands
- Dashboard now automatically refreshes after 30 seconds of being open. Thanks to @Michcioperz for tips on this!
Improvements:
- Custom emotes in redeem notes now display as shortcodes instead of raw html
- Failed redeems now no longer take away user's points
- Better Owncast chat messages when redeems fail
- New warning for when a counter that doesn't exist in the db is redeemed
- New CLI command for both refreshing counters and clearing the queue
- Simplified some files, removed redundant conversions, removed redundant imports
Bugfixes:
- Errors during db operations no longer throw an exception while resolving an exception
- Selected tab of Tlapbot dashboard is now properly highlighted
About redeem categories
You can now put each redeem in a category, and turn categories on and off in the config file.
- This should make it easier to change redeems between different streams, without having to edit
redeems.py
every time. - Each redeem in
redeems.py
can have a"category"
entry now, which is a list of strings that mark all the categories the redeem is in. config.py
can now haveACTIVE_CATEGORIES
entry, which is a list of categories that are currently active.- Redeems with no category are always active -- so any old
redeems.py
andconfig.py
files should work without issue.
Example redeems.py
from my Tlapbot instance:
REDEEMS={
"drink": {"price": 60, "type": "counter", "info": "Give a pitíčko drinkbox to Tlapka."},
# Slime Rancher
"free_slime": {"price": 1000, "type": "note", "info": "I will release a slime of your choice back into its natural habitat.", "category": ["slime"]},
"race": {"price": 500, "type": "list", "info": "I will go do a race with the quicksilver slimes.", "category": ["slime"]},
# Arknights
"hire_operator": {"price": 500, "type": "note", "info": "Select an operator to hire next.", "category": ["arknights"]},
"change_lobby": {"price": 200, "type": "note", "info": "Change the lobby assistant to selected operator.", "category": ["arknights"]}
}
By adding "slime"
or "arknights"
to ACTIVE_CATEGORIES
in config.py
, I can easily switch which set of redeems is active. You can check the updated README for more info.
How to update
If you followed the installation instructions from the README, just git pull
. Optionally, also rerun pip install -e .
, so that pip reports the new version number correctly.
Tlapbot 1.0.1
Small release with a few bugfixes and small improvements.
What's Changed
- Fix: Remove strict "is True" check by @trwnh in #7
- Fix: Change POST to GET for certain API calls by @trwnh in #8
- Fix: Fixed possible crashes when users joined chat when bot was down/restarting.
- Improvement: Multiple commands in a single message no longer behave weirdly (#5, thanks to Samgai for bringing my attention to this behavior)
- Refactor: reduce nesting by @trwnh in #6
Thank you to @trwnh for the pull requests with feedback and improvements, @Michcioperz for issue/PR comments, samgai for discovering the buggy behavior.
How to update
If you followed the installation instructions from the README, just git pull
. Optionally, also rerun pip install -e .
, so that pip reports the new version number correctly.
Tlapbot 1.0.0
First release! 🎉
Install Tlapbot and connect it to your Owncast instance to give your viewers points for watching, and let them spend points to interact with the stream.
Features
- Channel points are given to chatters at a set interval
- Chatters can spend points on redeems
- Redeems can be customized in a redeems file, so you can come up with your own unique redeems
- Dashboard page (Owncast external action) that viewers can check to see possible redeems and their points
See the README for install instructions, config and redeem file format information, CLI commands, etc.