diff --git a/CHANGELOG.md b/CHANGELOG.md index 009fe0d..dee22fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,49 +2,49 @@ All notable changes to this project will be documented in this file. If there is a `Changed` section please read carefully, as this often means that you will need to adapt your `config.yml`, otherwise the bot might fail to start. -## [1.2.1] - unreleased +## [1.2.1] - 2022-08-13 -### Changed +### Changed 1.2.1 - * Reworked internal code structure +* Reworked internal code structure -### Fixed +### Fixed 1.2.1 - * Publish vote info in chat when reloading config was not working when TTS was disabled - * Casting votes was allowed for broadcaster and mods only +* Publish vote info in chat when reloading config was not working when TTS was disabled +* Casting votes was allowed for broadcaster and mods only ## [1.2.0] - 2022-08-13 ### Added - * `!random` feature (see README.md for details) +* `!random` feature (see README.md for details) -### Changed +### Changed 1.2.0 - * The vote result will be read out +* The vote result will be read out -### Fixed +### Fixed 1.2.0 - * Improved handling of missing config values. +* Improved handling of missing config values. ## [1.1.0] - 2022-08-12 -### Added +### Added 1.1.0 - * `!quickvote` feature (see README.md for details) - * `!ping` command added - * Configoption to start TTS in disabled mode - * OAuth-Token generator - * Webbrowser autostart +* `!quickvote` feature (see README.md for details) +* `!ping` command added +* Configoption to start TTS in disabled mode +* OAuth-Token generator +* Webbrowser autostart -### Changed +### Changed 1.1.0 - * You need to review your `config.yml` as there a new config values added. - * The bot replies with a chat message when `!ton` or `!toff` is used +* You need to review your `config.yml` as there a new config values added. +* The bot replies with a chat message when `!ton` or `!toff` is used -### Fixed +### Fixed 1.1.0 - * Improved error handling +* Improved error handling ## [1.0.0] - 2022-08-11 diff --git a/README.md b/README.md index 57725af..d8ebce7 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ By using Javascript for the actual TTS part it's not only very easy to access th Adapt `config.yml` to your needs. Example: -``` +``` lang=yaml irc: channel: "#gpkvt" username: "ttsbot" @@ -82,11 +82,11 @@ whitelist: ##### irc - * `channel`: Channel you want to monitor (e.g. #gpkvt) - * `username`: The bots username (e.g. gpkvt) - * `oauth_token`: The bots OAUTH-Token (e.g. oauth:ohkoace0wooghue8she9xaN0nooSau) - * `server`: Twitch IRC server to be used (default should be fine) - * `clearmsg_timeout`: Time to wait for an moderator to delete a message, before it's added to the TTS queue +* `channel`: Channel you want to monitor (e.g. #gpkvt) +* `username`: The bots username (e.g. gpkvt) +* `oauth_token`: The bots OAUTH-Token (e.g. oauth:ohkoace0wooghue8she9xaN0nooSau) +* `server`: Twitch IRC server to be used (default should be fine) +* `clearmsg_timeout`: Time to wait for an moderator to delete a message, before it's added to the TTS queue You can generate your `oauth_token` by leaving the value empty when starting `tts.exe/tts.py`. The integrated webserver will then provide an OAuth-Generator. Due to limitations to the `redirect_url` parameter used by twitch, this is only possible if you use Port `8080` or `80` as `http:bind`. If you use a different port, you will need to use another [Twitch OAuth Generator](https://html.duckduckgo.com/html/?q=twitch+oauth+token+generator). The bot will need `chat:edit` and `chat:read` permissions. @@ -94,36 +94,36 @@ Please note that the `oauth_token` is valid for approximately 60 days. If it bec ##### http - * `port`: Internal Webserver Port to listen to (e.g. 8080) - * `bind`: Interface/IP to bind server to (e.g. localhost) +* `port`: Internal Webserver Port to listen to (e.g. 8080) +* `bind`: Interface/IP to bind server to (e.g. localhost) ##### bot - * `start_enabled`: Enable the bot on start? If `False` you need to use `!ton` first to make TTS work. - * `subonly`: If `True` only Subs can use TTS - * `modonly`: If `True` only Mods can use TTS - * `message_length`: Maximum allowed message length for TTS +* `start_enabled`: Enable the bot on start? If `False` you need to use `!ton` first to make TTS work. +* `subonly`: If `True` only Subs can use TTS +* `modonly`: If `True` only Mods can use TTS +* `message_length`: Maximum allowed message length for TTS ##### messages - * `toff`: The bots reply when `!toff` is used. - * `ton`: The bots reply when `!ton` is used. - * `too_long`: The bots reply if message exceeds `message_length` - * `disabled`: The bots reply if TTS is disabled - * `denied`: The bots reply if the user is not allowed to use TTS - * `subonly`: The bots reply if `subonly` is active and the user isn't one. - * `whitelist`: The bots reply if `whitelist` is set and user isn't on the list. - * `ready`: The bots init message - * `says`: Prefix to add between username and message - * `votestart`: Message when a quickvote is started. - * `voteend`: Message if a quickvote ends. - * `votenobody`: Message if quickvote ends, but nobody has voted. - * `voteresult`: Prefix for the result (will be read out) - * `votes`: Suffix to vote count. +* `toff`: The bots reply when `!toff` is used. +* `ton`: The bots reply when `!ton` is used. +* `too_long`: The bots reply if message exceeds `message_length` +* `disabled`: The bots reply if TTS is disabled +* `denied`: The bots reply if the user is not allowed to use TTS +* `subonly`: The bots reply if `subonly` is active and the user isn't one. +* `whitelist`: The bots reply if `whitelist` is set and user isn't on the list. +* `ready`: The bots init message +* `says`: Prefix to add between username and message +* `votestart`: Message when a quickvote is started. +* `voteend`: Message if a quickvote ends. +* `votenobody`: Message if quickvote ends, but nobody has voted. +* `voteresult`: Prefix for the result (will be read out) +* `votes`: Suffix to vote count. ##### log - * `level`: The loglevel, valid values are: `DEBUG`, `INFO`, `WARNING`, `ERROR`, `CRITICAL` +* `level`: The loglevel, valid values are: `DEBUG`, `INFO`, `WARNING`, `ERROR`, `CRITICAL` Do not use `DEBUG` in a production environment. @@ -139,7 +139,7 @@ You can add a whitelist section to `config.yml`, a whitelist will override any o A whitelist looks as follows: -``` +``` lang=yaml whitelist: - gpkvt - foo @@ -152,7 +152,7 @@ Please note: Usernames MUST be lowercase. ### Executing program -Execute `tts.exe` (or `tts.py` if you have Python installed), open the TTS webpage in your browser (the URL depends on your `bind` and `port` configuration, usually it's just http://localhost). Click the `Init` button at the button of the TTS webpage (you should hear `Init complete`). +Execute `tts.exe` (or `tts.py` if you have Python installed), open the TTS webpage in your browser (the URL depends on your `bind` and `port` configuration, usually it's just `http://localhost`). Click the `Init` button at the button of the TTS webpage (you should hear `Init complete`). Connect to the configured Twitch channel and send a message starting with `!tts`. After a few seconds (depending on your `clearmsg_timeout` config), the message should be read. @@ -160,11 +160,11 @@ Connect to the configured Twitch channel and send a message starting with `!tts` Additional commands (broadcaster and mods only) are: - * `!ping`: Check if bot is alive (the bot should reply: `Pong!`) - * `!toff`: Turn TTS off (will also empty the current TTS queue) - * `!ton`: Turn TTS back on - * `!dtts `: Disable TTS for the given user - * `!ptts `: Allow TTS for the given user +* `!ping`: Check if bot is alive (the bot should reply: `Pong!`) +* `!toff`: Turn TTS off (will also empty the current TTS queue) +* `!ton`: Turn TTS back on +* `!dtts `: Disable TTS for the given user +* `!ptts `: Allow TTS for the given user ### Additional features @@ -180,10 +180,10 @@ The `!random` command will read a random line from a file called `random.txt`. Y If you prefer to build your own `tts.exe` instead of using the shipped one, you can do as follows: - * Install Python 3 - * Install pyinstaller: `pip install pyinstaller` - * Install the required dependencies: `pip install -r requirements.txt -v` - * Create the executeable: `pyinstaller --onefile tts.py` +* Install Python 3 +* Install pyinstaller: `pip install pyinstaller` +* Install the required dependencies: `pip install -r requirements.txt -v` +* Create the executeable: `pyinstaller --onefile tts.py` ## Voices @@ -211,9 +211,9 @@ This project is licensed under the GPLv3 License - see [LICENSE](https://gitlab. ### Ideas and Testing -* [GERBrowny and community](https://www.twitch.tv/gerbrowny/) ![](https://static-cdn.jtvnw.net/emoticons/v2/303172270/static/light/1.0) -* [DerZugger and community](https://www.twitch.tv/derzugger/) ![](https://static-cdn.jtvnw.net/emoticons/v2/302400142/static/light/1.0) -* [Timmeh74 and community](https://www.twitch.tv/timmeh74/) ![](https://static-cdn.jtvnw.net/emoticons/v2/300192675/static/light/1.0) +* [GERBrowny and community](https://www.twitch.tv/gerbrowny/) ![Emote](https://static-cdn.jtvnw.net/emoticons/v2/303172270/static/light/1.0) +* [DerZugger and community](https://www.twitch.tv/derzugger/) ![Emote](https://static-cdn.jtvnw.net/emoticons/v2/302400142/static/light/1.0) +* [Timmeh74 and community](https://www.twitch.tv/timmeh74/) ![Emote](https://static-cdn.jtvnw.net/emoticons/v2/300192675/static/light/1.0) ### Libraries