Releases: WrithemTwine/TwineChatBot
TwineStreamerBot - beta release
Updated:
- Rolled up code fixes from v.1.3.1.0 to address issues with running the Twitch bots
- this corrects 1.3.1.1 issue with tokens failing when using the bots
- fixed a problem when renewing tokens and locking up the GUI
- Updated some bot code to stop while closing the app (affects the Exception log output - not completely fixed, but next code focuses on re-working all of the bots)
- Media Overlay Server is now only a built-in tab under "Bots" - had some issues connecting the overlay server to the main application and getting data transferred for the item tickers; might restore in the future
- Adjusted date/time data fields to permit editing time along with the date
- Adjusted a setting name to better indicate "ImportedDatagram" from "ImportDatagram" to better indicate what 'true' meant
- Corrected a crash from incoming channel raids
- Reviewed how incoming Twitch usernames don't match upper/lower case and how they're stored in the database. The database usernames are otherwise case-sensitive in EFC queries (used additional code to mitigate case-sensitive matches).
- Updated datafile import to be more flexible with certain data. Corrected 1.3.1.1 known issue regarding "Followers" with missing categories. If using this version to import from datafile, check statuslog for any data not imported into database.
Issue:
- Multilive status log in the tab may not properly appear-working on to include this
- Chatbot sometimes will stop when tokens refresh. Restarting the entire bot will utilize the updated tokens and (should) recapture the stream stat details.
Upcoming Releases:
- Fix any issues breaking the bot, i.e. crashes (the bot connectivity will be addressed in the Twitch bot rewrite)
- Focus on integrating new TwitchLib code and rewrite actual bot side of this app (bot side -> database side)
TwineStreamerBot - alpha release
Entity Framework Core (EFC) is here!
Known Issue: Some prior issues with tokens remain in this version (different code in different branches) and operating with the bots will intermittently fail. Working now on a new beta release to update these and adjacent issues. The data import sometimes fails and next update addresses some of these import issues-please report issues you encounter (as an 'Issue').
Ok several notes about EFC itself.
- Be sure to make a backup of "ChatDataStore.xml" prior to starting this bot version.
- As this is pre-release, any databases created and updated for this version could possibly be changed/updated for release. There is a process in "EFC" called "Data Migration" that can update tables through code, but be prepared to remove the database data completely (will be specified in the release notes) for the actual release.
- Select the build for the database provider you wish to use. "Sqlite" provides a built-in database provider and doesn't require the user to install a separate database system.
- Treat this version as 'testing purposes' to determine errors and be sure to post issues for resolution.+
- The EFC documentation states something to the effect that while the EFC interface specifies what the third-party programmers should do, every EFC API command may not translate properly to that database version.
- This version was only tested on "Sqlite".
- This version uses existing settings from the prior version, there are some new settings to choose.
- The very first startup of this version will have you set the 'Connection' strings for the database you choose
- There's a new "Database" tab within "Options" to show the connection string.
- The very first run will import the "ChatDataStore.xml" into the database, meaning your custom messages and users should import.++ The database version now uses more strict relational data and ensures proper data in columns; any data not meeting this criteria is attempted to be resolved but failures are not imported in the database.
- More details about importing and switching databases can be found in the initial startup selection window. Note, to enable importing "ChatDataStore.xml" to a different database, this requires setting "EFCDataImportDataGram" to false in the "{User}\AppData\Local\TwineStreamerBot" folder and the current version folder contains the setting file.
- The token version you chose (self-renew or auto-renew) should translate to the new version.
- The GUI data updates changed from prior version, so some updates may occur slower than prior versions. This can be reviewed and improved in coming version releases.
-+ EFC supports several databases. However, including the code to support each database at the same time would increase the distribution file to >50MB. So in lieu of a full 'every supported database' version, each supported database will have a separate release build and the end-user needs to select the appropriate build for the database they wish to use. "Sqlite" provides a built-in standalone database, not requiring a separate database provider, as compared to "SqlServer".
-++ Having done extensive testing on the import process, most scenarios should be covered. The import process automatically enables "StatusLog.txt" to record the import process and will show any records failing to import.
Behavior notes in the new version
- Adding Followers - when starting the "Follower" bot, the GUI will freeze to process the entire followers list (and subsequent regular updates - specified in the options for updating followers on a regular basis). Have worked on keeping the GUI from freezing with limited success. It may be possible in the future to improve this experience.
- When followers change their name or are no longer following, these entries are moved to a new table called "OldFollowers" for additional review (if the option to prune non-followers is not selected). The user can delete these rows at any time.
- In rewriting a lot of the data portion of the bot, implemented 'row details' to reduce the number of columns found in the GUI tables. Clicking on row(s) will provide an additional expanded detail section panel with more detail.
- Not all tables have 'row details' added to them. This will update in the coming release versions, and may not include all tables.
- Some data tables prevent adding new rows, those tables don't need new rows e.g. Channel Events; other tables do allow new rows. New rows can be added from the right-click menu. Have reviewed the tables and right-click menu and most/all tables should have the proper "Add row" menu item. Any missed will be updated in coming versions.
- The updated "Add Row" editor will show the fields the user needs to input data for the new row. Any 'red box' will show there isn't any data or it is not formatted properly for the column.
- The "Add Row" editor currently shows the properties usually out of order to how they are presented in the GUI tables. No current plans to update how these are presented - would be significant work to customize each table's 'Add Row". If a more effective method reveals itself, it would be implemented.
- Most every table does allow editing rows, which the user can now perform by double-clicking the row itself and updating the data. Note any field formats should be maintained. Some fields, such as key columns e.g. "Id", can't be edited. Note: the "Overlay" table for events has options for "Image File" and "Media File" - the edit row process won't copy any media files to the proper folders ("working directory/Overlay") as the prior version. So ideally, setup a new row or manually move the file and identify its path in the respective Overlay row. A future update may be able to address this particular issue.
- Because of the improved data integrity within the database, several "Add Row" tables only include "UserId" fields instead of "UserName". This might present difficulty if the end-user only knows a username and not the userId. A future release will mitigate this by looking up the username and retrieve the userId. So currently, please use the "userId" data from the "Users" table if that user has visited your channel and recorded in the table until the update is coded.
- The right-click menu will probably show "Enable Selected Row(s)" and "Disable Selected Row(s)" for tables that don't have "IsEnabled" columns. This will be updated in coming releases.
- The "MediaOverlayServer" now has the option to stay embedded within the main bot window as a new tab, or popup its own window as the previous version. This 'new tab' or 'new popup' option can only be changed when the media overlay server bot is offline.
- When users change their names, as long as it's on the same platform (currently only Twitch), the new name is updated in the database. The "MultiLive" channels (to watch other channels for going live) table will update the username when the channel goes live - which monitors the user's userId.
- Added more user-based statistics to record how many times a user chats, invokes commands, channel points, creates clips, and more. This functionality is reduced for the bot account.
- Much of the same functionality is like prior versions. There may be some updates due to how the new code required slight changes - aka under the hood updates.
- The current focus is some more testing of this new EFC version and fixing any detected issues.
- After scrubbing out most of the issues, the next focus is rewriting how the bots connect to Twitch. In spring/early summer of 2025, Twitch is removing "PubSub" functionality and utilizing "EventSub". In turn, this bot will have to migrate from PubSub to EventSub and this also means different functionality moves around and will remove some bots or change their main purpose.
Specifically, EventSub supports a streamer's channel notification of online/offline (was LiveStream bot), also notification of new follows (was Follow bot), and channel point redemption (was PubSub bot). So LiveStream bot will migrate to give only 'MultiLive' notifications, Follow bot will be removed with the "get all follows" functionality moved to the general code (Helix Api call), and PubSub bot will be removed. The Clip bot and "Twitch Chat" bot will remain intact.
- Additionally, the TwitchLib group is in process of releasing a new code version (how this bot connects through TwitchLib to reach Twitch); and the new version of TwitchChat includes significant updates also requiring a general rewrite.
Known Issue(s):
- Importing 'Followers" where the "Category" is empty can cause a crash and close the bot-addressed in upcoming release
Workaround: Review each follower and ensure a category is entered or use "All" - Media Overlay Server - when auto started in 'window mode' and stopping to change into 'tab mode', the bot crashes upon starting the overlay server. Also, closing the window overlay server doesn't stop the bot in the main window. Addressed in an upcoming release.
Workaround: Uncheck the 'auto start' while using the bot. Next time starting the full bot, check the box to open in 'window mode' and start the bot. Auto-start 'tab mode' overlay server does work to stop and change to 'window mode'.
As always, ensure data is backed up before running this new version and report any new issues you find when using the bot. Would've gotten this version released a while ago, but gaming got in the way!!
Happy streaming!
v.1.3.1.0 - TwineStreamerBot
What's Changed
Update 7-18-2024
Posted an updated .zip release build addressing issues when using a streamer account for the bot account.
/Update
Since v.1.3.0.0 the focus was on fixing crashes and updating the database, such as user Ids in place of usernames for monitoring streams if they're live. Tried to convert to EntityFrameworkCore (EFC), update bot crashes, update database, update TwitchLib all at the same time but as a solo coder, got very messy and broken. Hence, focused on critical bot crashing first, specifically with the auto-refreshing tokens.
The new focus is on EFC, where the code will update the GUI when there's a new record in a database table, but currently not when the data changes <-have to implement a content change notification. Also, this new database is slightly different than the existing datafile, so apart from a data import into a database, future application versions will not support the current xml database file. Several databases support EFC but including all of them in a single distribution will produce a very large binary. Have ideas to produce separate binaries based on the database distribution and probably can batch build each of the different versions, just have to write/configure the scripts to make it all seamless & produce the zip files with the distributables per EFC database type. There are database versions not requiring an existing installed database, such as 'mysql', as well as support for "SQL Server" which is installed separately. The application only requires the connection string and user credentials, per the database. The anticipation date is currently unknown for multiple factors, though the critical EFC database query part to the bot operation is written, the content notification shouldn't take very long, and have a plan to implement each EFC database for separate release builds (just will have limited testing if a certain database behaves differently with EFC and testers don't have that database version).
Also, Twitch announced their "PubSub" API will expire next year, https://discuss.dev.twitch.com/t/legacy-pubsub-deprecation-and-shutdown-timeline/58043, this bot will soon migrate to "EventSub". At a cursory review, "PubSub", "Follower Bot", and "Livestream Bot"-just other channels not bot/user channel, will migrate to 'EventSub' as it supports channel point reward redemptions, new followers, stream online/offline, and stream raid notifications. On top of this update, TwitchLib also updated their library with updates to key features, including async events for the chat bot-which need some changes in this bot to accommodate.
In summary:
- (first focus) Finish implementing EFC
- Add content update notification to refresh the GUI when content changes other than a new data entry
- Add mechanisms to build different EFC distributable binaries for the different EFC supported databases-the full file size for all supported databases would be in the 50-60MB range
- (next focus) Update this bot for the updated TwitchLib library
- Twitch deprecated PubSub, requiring EventSub
- For TwineStreamerBot, features will move to EventSub-including (depending on implementation challenges):
- PubSub - Channel Point Redemptions
- FollowBot - receiving a new follow
- LiveStream Bot - exclude the broadcaster from this bot to detect stream online/offline
- Review TwineStreamerBot connections to Twitch; the architecture can be improved for more streamlined implementation and debugging issues
Updates with no specific timeframe
- Add option to include the "Media Overlay" within the bot tabs instead of a separate window-can still have the separate window if the user wishes
- Add and support new features now open in Twitch API, including "shoutout" users and "announcements"-which separates messages in chat with an announcement adornment; and many more.
- Continue to fix bugs, especially critical bugs
Known issue(s):
- Just found clip bot isn't posting new clips to Discord webhook. Will need to review and if an easy fix, can update in an upcoming release.
Full Changelog: v.1.2.10.0...v.1.3.1.0
TwineStreamerBot - beta
Stability update:
Found issues with Follower & Clip bot when choosing whether to start those bots when the app starts or when the stream is detected online. Added checks to ensure the GUI properly reflects whether the bot is started when it is actually started.
note: Currently testing this version and will update code for any found issues.
TwineStreamerBot - beta
Fixes for crashes and caught exceptions:
- Identified and corrected and issue with Clip Service sometimes failing to start
- Identified and corrected an issue when a new viewer arrives and doesn't have any currency data, and the bot crashes trying to access that data
- Identified and corrected an issue with LiveBotMonitor causing the whole bot to lock up when trying to add a new user to the auto shoutout list
Upcoming:
- General fixes to emerging issues
- Haven't worked on Entity Framework Core-still considering how to deploy database specific versions (have some ideas), and implementing GUI update messages (if there isn't a new item added to the list and instead the content changes for existing items, the listing currently isn't updated)
TwineStreamerBot - alpha
Updates:
- Some minor updates to address the GUI not updating when authorizing both bot account & streamer account tokens.
- Corrected an issue with the Chat Bot client and Follower bot failing after refreshing the access token
This release is considered alpha because of the limited testing when releasing 1.3.0.0; this release helps mitigate some issues while preparing the EF Core implementation.
EF Core - the database model is implemented and default data loads. The current status is to write data migration to import the previous datafile data into the new database structure, and writing a mechanism to update/refresh data between the GUI and the database (the whole interaction changed from the previous method).
As always, file an issue/provide feedback if you encounter any issues.
edit: small fix to Chat Client - found issue when token is refreshed, "events" got inadvertently disconnected.
TwineStreamerBot - alpha
"Update Fix" Release:
This release addresses some prior issues and adds some new features.
Setting this release as 'latest release' as v.1.3.0.0 had limited testing time and some issues.
-
Corrected the token checker sleeping for a long time causing the application to stay open until that thread finishes sleeping
-
Corrected "!uptime" calculation for "#viewerrate" variable not showing the correct calculation
-
The multi-live monitor issue with when streamers change their username, the channel is no longer "available" - still working on it, with other upcoming data changes
-
Updated the output logging for some efficiency, and will save output files every 10 minutes while the bot is running and logging enabled
-
Added more debug logging for detailed information while the application runs. Can create a large debug log file, so these options should be used sparingly or to track down issues to debug. The debug logging is not completely implemented, but slowly added to different areas in the application.
-
Added a "force re-authentication" button within the Twitch-AuthCode authentication mode. Using this feature will be required whenever the application adds a new feature requiring additional access scopes (limited to only what the bot implements).
-
The theme-applied buttons still currently don't all have a different appearance when disabled-still working on it.
-
Added a mechanism when trying to start bots and when they fail; the GUI updates the radio button to appear the bot started yet the bot didn't start. This mechanism resets the button back to "stop bot" so the user can again click to start the bot.
-
Added "!createclip" for users to create a stream clip within the last 30 seconds-untested. Will probably need refining down the road.
-
Added a "GetChatters" call when the stream is online to more reliably find the current viewers when the TwitchChat connects to the channel and doesn't always accurately report the current viewers.
-
Bot window height, width, and position (top & left) now saved in settings to restore the window when closing and re-opening the bot
-
Adjusted how TwitchLib connects into the bots and should result in a lower memory profile and makes it easier to update the access tokens.
-
Updated how to show the status bar label for the new version, should be improved.
-
Small layout change to the startup splash screen.
-
Upcoming features & some known issues (to be fixed)
- Implementing Entity Framework Core (EF Core) for more modern data access technology
- EF Core has support for many different databases. The current implementation update focuses on SQLite database.
- EF Core-the bot will later implement other databases, which will require various connect strings added and saved into the bot.
- EF Core implementation may affect how the user interacts with the GUI-available options can change.
- EF Core implementation will need to perform a data transfer between the current data file and the new database system.
- The current data file system will probably be removed from the bot, as the connections for using EF Core changes some implementation.
- Continue adding more debug log entries within different application areas.
- Possibly some auth code access scope checking to help the user properly authorize the application
- Stream Stats shows a "1/1/0001" stream start data entry due in part to the current data management is difficult to check for date time if the bot is closed during a live stream and tries to re-capture the current stream stats. EF Core should properly address this.
- The followers table has incomplete/unreliable date updates (StatusChangeDate), and EF Core should properly address this-make managing these details much easier to perform.
- Still (and resume) research stylizing the title bar to the current theme.
- The "Twitch Auth Code" token page needs some layout work.
TwineStreamerBot
Release - But More like a Beta-Stable Release
Auto-Refreshing Tokens are Here!
Several Fixes Included
.NET 8 Conversion!
First and foremost, very exciting to release a streamer bot version where the access token(s) will auto-refresh themselves! No more manual refreshing after 2 months.
The bot will ask to install .NET 8, if it's currently unavailable to use. When converting the bot to .NET 8, the web browser DLL, "WebView2Loader.dll", no longer bundles with the application. Hence, the distributable is a .zip file with both the .exe and .dll files.
- This release is deemed a beta-stable, as it's still in testing and several features and fixes are still both being implemented and tested. Having other users perform some testing will also help identify and locate any crashes or general issues found in the bot. You can upgrade now, or, wait a few more version releases as issues are corrected, and more usage documentation added to the GUI along with certain buttons getting disabled or enabled per current conditions.
- The new version presents a second method for using Twitch access tokens. On the "Bots->Twitch" tab, there's a new 'Toggle Button' for "Manual Token" and "Auth Code Token". The "Manual Token" is the page and token entries for the prior process of specifying tokens for the bot to use. The "Auth Code Token" page is where the new auto-refreshing tokens method starts.
- First, even if you have other client Ids registered for the 'manual token' method, the recommendation is to return to https://dev.twitch.tv/console and register another bot, separate them. This time, we need the "client Id" and "client secret" (need to select "New Client Secret") to obtain and refresh access tokens. Also recommended, have a bot account separate from your streamer account; meaning "client Id"/"client secret" codes for both accounts.
- The Dev/Twitch/Console page also asks you for a redirect URL, and you need to register "http://localhost:3000" for each registration.
- Copy these "client Id" and "client secret" codes to the 'Auth Code Token' page in the bot. These boxes are hidden with expander buttons to have privacy if you are showing the bot to someone else. Click the expander to open the boxes and paste the codes. _Be sure when authenticating, to log into the bot account when authenticating the bot account client id & client secret codes.
- Here's the new part:
- The new process uses a web browser to ask the user for permission to let the bot access Twitch on their behalf.
- On the bot page, there's a checkbox to specify "use App web browser for authentication".
- Checking this box, yes, and clicking the "Authorize Bot|Streamer Token" button, will spawn a new window within the bot (using Edge browser, isolated from your current Windows user) and ask you to log into Twitch. It doesn't connect to your existing Edge data, so no auto-fill information will be available until you complete it the first time.
- Unchecking this box, no, and clicking the "Authorize Bot|Streamer Token" button will send the authorization request to your default browser. It will use any current Twitch login to then approve the request. You may have to log out to authenticate the access according to the matching account.
- Important Whether you use the built-in web browser or your default browser, it is important to approve the "bot token" (client id & client secret) request for the 'bot account' and the "streamer token" (client id & client secret) to the 'streamer account' (if applicable, i.e. you are using separate accounts). You may have to select "Log into another account" to force the request form to let you pick the correct account.
- For each authentication, either you're using "Bot & Streamer" token method or "Bot account is your Streamer account"; after approving the access, the webpage will look like it failed. It actually hasn't failed. Within StreamerBot there is a webserver listener ready to receive Twitch's response to "http://localhost:3000" (the redirect URL you also registered to get the client Id and client secret codes) with the authentication code.
- This bot will receive the authentication code for the bot account and, as applicable, the streamer account.
- The bot will take this information to request a 'refresh token' and 'access token' on behalf of each account.
** Here's the cool part **
- The bot then continually will use the 'refresh token' to obtain a new "access token" each time it expires per Twitch; roughly every 4 hours (whether you run the bot or not). No more manual refreshing every 2 months!!
Notes:
- The refresh and access tokens will completely fail if the user
- Changes the account password, or
- Disconnects this application connection within Twitch Channel Settings (Connected Applications).
- The refresh and access tokens will also fail if this application adds new features requiring new access scopes. 'Access Scopes' are sometimes specified alongside the Twitch API documentation when a bot is accessing information the user needs to authorize accessing that information. An example is the "chat:read" access scope is required for a bot to read the chat for a channel. These access scopes are required when applying for an access token; hence, an access scope change means the token no longer captures the required access scopes.
- The bot will (should-still testing) notify the user across the window bottom when the authentication has failed, and asks the user to re-authorize the application.
- If you enable "Log Exceptions" (Logs/Twitch Status page), there will be exceptions specified as "Bad Scope Exception" that comes from when trying to access Twitch and the access token fails. The bot captures detects this exception and refreshes the access token on behalf of the user.
- If you enable (Options/Streamer Bot) "Twitch Token Bot Token Update" option, the application will write a "DebugActionsLog.txt" file with messages detailing each step in the token process; such as 'checking Bot token', 'client Id and client secret are not empty or not null', and 'Twitch gave another access token'. It's informational if you want to look at it, but not pertinent for the bot to operate.
- When you shutdown the bot for over 4 hours after the last token refresh, the access tokens expire and the bot will attempt to refresh them but you may see lots of checks appear in the log files. Within the code is a 5 second buffer to prevent sending lots of requests to Twitch for new tokens in such a short timeframe.
Other Features and Fixes:
- Fixed an issue where the Follower bot started without a valid access token. Now does not start unless the tokens are valid.
- Added checks to the code for using either the manual or auth code token method and GUI buttons should be enabled/disabled if the access tokens are setup and ready for the bots to use.
- If a follower removes their follow, and then re-follows the channel while the record is still part of the "Data/User Data/Followers" table, the follow date should update to the now current follow date. The previous mechanism didn't update the follow date if that becomes different. Some possible issues with how this updates (if it works in real-time or if the user already re-followed and the bot may not later update the follow date), but working through those issues.
- New startup splash screen
- Incorporated the changes from v.1.2.9.1, v.1.2.9.2, and v.1.2.9.3 releases; fixes to features are captured across the versions (i.e. a feature 'fixed' in 1.2.9.1 but still broken and fixed in 1.2.9.3, the 1.2.9.3 fix carried forward).
- The new Toggle Button for the manual vs auth code token selection, added theme versions for dark and light theme.
- Organized some status bar labels into 2 lines to shorten their width, specifically "Token Exp:" (token expiration date, states 'Auth Code Refresh' under "Auth Code Token" mode) and "Current Category".
- Optimized some internal code, especially with converting to .NET 8. Still a work in progress.
- There's a new message variable to use with the "!uptime" command. It's called "#viewrate" and calculates the { current viewer count / current follower count } percentage.
- The "!uptime" command default message is updated with the variable, however, existing implementations need an update to use the variable.
- The current default message is: "#user has been streaming for #uptime, now with #viewers (#deltaviewers). The current viewer to follower rate is #viewrate, note, all viewers may not be followers."
- Reworked the logic behind the "New Release Version" label for forward looking version. However, it may still be an issue.
- Maybe some other minor updates (not recorded in the code posting notes lol)
Notes:
- Currently under the auth code token method, when the option "show bot welcome message" is checked, every time the access token expires during a live stream, the bot welcome message will appear in the chat. This will soon be addressed to prevent over-messaging this notice.
- The multi-live feature will record crashes if the live stream lookup service (multi-live monitor) tries to check a Twitch channel and the streamer changed their channel name. Will be addressed in a future release. Currently, the "log Twitch exceptions" feature will show which channels no longer exist (or bot user reviews each channel), until a fix is coded. -- This is the feature to monitor streamer chosen Twitch channels for when they're live and promote them, such as on Discord.
Known Issue(s)
- Currently, the bot will stay open for a longer time after attempting to close it. This is due to the initial implementation of the bot checking the access token every 30-60 minutes, and the thread isn't closed out/stopped with the application. The bot will close once this thread "wakes u...
TwineStreamerBot - beta
Correcting Issues Release:
As noted, updates focus on stability and correcting behavior, especially after the access token refreshes. Remember to backup your datafile before using the new version. If you encounter issues, please leave a notice/issue with information to reproduce the issue.
Auto-refresh token mode:
- corrected several issues stopping 'chat bot' from receiving commands and sending them into the rest of the bot following access token refresh
- corrected issue which caused 'clip bot' to crash when trying to start it
*As a reminder, the account you use for the bot (other than your streamer account), needs to be a moderator of your channel to properly access some information related to your channel.
Known issue:
- when the access token refreshes, 'chat bot' will repost a connected message to channel chat, based on the "Enable bot welcome message when connected to stream channel." option setting (when option is enabled).
Upcoming:
- Found a possible solution to retrieving and displaying clips from Twitch channels, such as overlay notifications
- Still working on Entity Framework Core database storage system
- the data will show in GUI but currently doesn't refresh when modified (requires additional coding to implement data refreshing upon modification)- considering how to deploy different database support; some of the database connection code files greatly increase the application release file size, on the order of 10-40 MB larger, depending how many database support files are included in the build
- As a solo coder, when life gets busy/run into code problems, releases can get slow.
TwineStreamerBot
V1.2.10.0 Features and Updates!
Some notes are specific to existing users with previously generated settings/content. If this is your first version, some will not apply.
Existing users: found how to include the WebView2Loader.dll library within the 'TwineStreamerBot.exe' file (bundled). It is safe to (and should) delete the 'WebView2Loader.dll' file.
-
New Features:
- BlackJack 21 - text-based chat game!
- Requires a currency (Data/User Data/Currency tab) to play. Be sure to setup: "Table="Currency", key_field="UserName", data_field="Value", and currency_field="{your currency name}"", and specify currency accrual parameters. Also, setup a custom currency retrieval (user-defined) command to show the user their currency.
- Notifies players if they can enter the game with enough currency or don't have enough. Shows players if House has 21 and automatically wins.
- Players type words "hit" (another card) or "stand" (no more cards) to advance their game. Since normal viewers usually can't repeat-type the same word within a certain timeframe, the user just needs to include the word in their chat - can be part of another word, e.g. 'standing'-> stand
- The game starts with "!blackjack {wager}", only one game at a time
- Game 'death' counters!
- Let's viewers interact with stream, "!death", to record game deaths the streamer gets during stream
- It's based on current 'Category' as set within Twitch. Ensure the category is correct for accurate death counters
- Once a death count is added, there's a 30-second cooldown window to prevent several users from adding extra deaths
- Use "!resetdeath" (default 0) or "!resetdeath {value}" (other value); streamer or mods (can change permission level) can reset the death counter to 0 or to a specific value. Depends on the current streamed category. (In the bot, can directly edit the death counter table.)
- Use "!viewdeath" to only view the death counter without any updates.
- Find the death counters in "Stream Data/Categories" tab.
- Quotes!
- Viewers can save quotes for quick retrieval.
- Use "!quote" for the current saved number, "!quote {#}" to retrieve a specific number.
- Use "!addquote {message}" to save a new quote; "!removequote {#}" to remove.
- Follower - Game Category
- Adding a new follower will save the current category to see under which category users followed.
- Isn't retroactive - first startup with a category will set all current followers to the current category. If starting the bot doesn't have the category, click the "Current Category" status bar item to update it, then start (or restart) the follower service or click "Current Followers" status bar button to refresh the follower list.
- Added logic where a follower updating their viewer name should carry forward their initial follower category (based on either the default category or as a new follower now saving the category).
- BlackJack 21 - text-based chat game!
-
Followers:
- Changed how the 'StatusChange' dates are applied when a user changes their name, to better reflect update changes.
- Now shows "Category", to record under which category the user followed!
-
GUI & Themes:
- Updated theme data for Check Boxes and Radio Buttons
- Updated theme data for 'Rectangle' boxes and 'Expander' (click to show content or hide content)
- Updated theme data for lists in the large paragraph areas
- Fixed visibility for some elements when starting, e.g. should be invisible but are visible
- Updated theme data for List Boxes so they have a more uniform look.
- Updated "Edit Window" data popup window to show the message length (in characters) for text box input data.
- Also, "Edit Window" field for 'Platform' now shows only the current available platforms programmed into the bot.
- The status bar version label will now show if a new release version is available for download, when first started. GitHub currently only shows version number-based URLs for stable 'release version' releases and not for unstable pre-releases. The unstable versions could have some issues most regular users don't want to face, so not every version is released as 'stable'. Hence, this label only shows new stable releases, but not intermediate releases.
- A future release will update this 'new version' label feature to routinely check over time if there is a new version while the bot continues to run.
- The 'Bots/Start Bots" tab now has an expander to hide the information data shown at the top
- "Data/Overlays/Events" tab now shows available channel point redemption list with a refresh button to retrieve (without restarting the bot) newly added channel point redemptions. When adding a new Overlay event, the bot sometimes needs an updated channel point list so it's available for adding the new Overlay event.
- Multilive tab - Corrected issue with right-click menu
- Options tab - Added option to completely hide 'Data Management' section
- Stream Data tab:
- Adjusted the 'Categories' counter. Discovered when a streamer keeps the bot running between streams and uses the same game category, the category counter didn't update for each successive stream.
- In 'Categories' tab, added "Death Counter" data.
- Twitch Bots & Log tabs:
- Updated the 'PubSub' portion of the log to remove extra lines for a cleaner look.
- Found and corrected an issue preventing the "PubSub" bot from restarting after an unexpected disconnect.
- Updated the bot to split messages into 500 character segments, including '\me' specification, for sending extra long messages. The bot will send all of the split messages to complete the entire message. Twitch will reject extra-long messages.
- Added new "Start All Bots" and "Stop All Bots" buttons to the "Bots/Twitch" tab. Will either start all bots not already started, or stop all bots not already stopped, respectively.
- Updated language for the token refresh date expires at 53-days, not 60; based on observed behavior where some interactions with Twitch seem to expire 7 days earlier than expected.
-
Commands:
- Existing users, please update "!approve" usage to reflect "approve" - incorrectly added in previous versions.
- Updated command process to look up currency items. *Necessary for 'BlackJack 21' game.
- Updated, now all commands from text chat are forced to lowercase for checking and performing code procedures
- All commands the user adds should be all lowercase letters due to this update
- The "!commands" listing is now sorted, includes both built-in and user-defined
- "!blackjack {wager}" for the BlackJack 21 game
- "!death", "!resetdeath", "!viewdeath" - relevant to death counters per game category
- "!quote", "!quote {#}", "!addquote {msg}", "!removequote {#}" - relevant to quotes
Know Issues:
-
Update When bot is started and recorded a live stream in the stream data table, the bot generates an exception (captured in exception log file) when trying to recapture the started stream details due to a new extra property not found in the stream data details. To resolve issue until next update, disable Discord updates (to prevent another notice) and delete the stream data detail for the specific date to start a new record or just don't restart the bot until after stream concludes. The bot doesn't work well after restarting during a live stream.
-
Update Found an unknown issue with the PubSub bot stopping and not easily restarting to restore service. Researching the specific issue-this is how the first issue presented itself. When PubSub stopped working in one stream, it was fine in the next stream. This one might be hard to discover how it is caused without specific information.
-
The "new version" label currently only shows if there is a new version when the bot starts. It doesn't currently check over time to provide new updates.
-
Please provide any feedback for issues you find; including create GitHub issues.