An open API service indexing awesome lists of open source software.

https://github.com/tomaarsen/twitchsavemessages

Twitch bot to save API information from chat messages and more in a database.
https://github.com/tomaarsen/twitchsavemessages

bot python twitch twitch-bot twitchbot

Last synced: 5 months ago
JSON representation

Twitch bot to save API information from chat messages and more in a database.

Awesome Lists containing this project

README

          

# TwitchSaveMessages
Twitch bot to save API information from chat messages and more in a database.

---
# Explanation
When the bot has started, it will start listening to chat messages in the channel listed in the settings.txt file. Beyond that, it listens to all other data Twitch sends us, and depending on our settings, stores it into a .db file. This is meant for debugging purposes only. Data is not stored efficiently.

---
# Database structure

| **Column** | **Meaning** |
| -------------------- | ----------- |
| full_message | Raw data from Twitch. |
| tags | All tags. These give information about a user, generally. Potentially empty |
| command | The full command. |
| user | The user connected to the command. Optional. |
| type | The type of command. Important. |
| params | Parameters sent along with the command. Optional. |
| channel | The channel this command is sent in. Optional |
| message | The message sent along. Optional. |
| time | (Unix Epoch) Time at which the message was generated. |
| time_since_last | Time since previous message. |

More information on the database structure [here](https://github.com/CubieDev/TwitchWebsocket), in the Output section.

---

# Settings
This bot is controlled by a settings.txt file, which looks like:
```
{
"Host": "irc.chat.twitch.tv",
"Port": 6667,
"Channel": "#",
"Nickname": "",
"Authentication": "oauth:",
"MessagesOnly": false
}
```

| **Parameter** | **Meaning** | **Example** |
| -------------------- | ----------- | ----------- |
| Host | The URL that will be used. Do not change. | "irc.chat.twitch.tv" |
| Port | The Port that will be used. Do not change. | 6667 |
| Channel | The Channel that will be connected to. | "#CubieDev" |
| Nickname | The Username of the bot account. | "CubieB0T" |
| Authentication | The OAuth token for the bot account. | "oauth:pivogip8ybletucqdz4pkhag6itbax" |
| MessagesOnly | Whether only chat messages should be stored. If false, messages like subscriptions, hosts, joins, parts, etc. will also be stored. | false |

*Note that the example OAuth token is not an actual token, but merely a generated string to give an indication what it might look like.*

I got my real OAuth token from https://twitchapps.com/tmi/.

---

# Requirements
* [Python 3.6+](https://www.python.org/downloads/)
* [Module requirements](requirements.txt)

Install these modules using `pip install -r requirements.txt`

Among these modules is my own [TwitchWebsocket](https://github.com/CubieDev/TwitchWebsocket) wrapper, which makes making a Twitch chat bot a lot easier.
This repository can be seen as an implementation using this wrapper.

---

# Other Twitch Bots

* [TwitchMarkovChain](https://github.com/CubieDev/TwitchMarkovChain)
* [TwitchAIDungeon](https://github.com/CubieDev/TwitchAIDungeon)
* [TwitchGoogleTranslate](https://github.com/CubieDev/TwitchGoogleTranslate)
* [TwitchCubieBotGUI](https://github.com/CubieDev/TwitchCubieBotGUI)
* [TwitchCubieBot](https://github.com/CubieDev/TwitchCubieBot)
* [TwitchRandomRecipe](https://github.com/CubieDev/TwitchRandomRecipe)
* [TwitchUrbanDictionary](https://github.com/CubieDev/TwitchUrbanDictionary)
* [TwitchRhymeBot](https://github.com/CubieDev/TwitchRhymeBot)
* [TwitchWeather](https://github.com/CubieDev/TwitchWeather)
* [TwitchDeathCounter](https://github.com/CubieDev/TwitchDeathCounter)
* [TwitchSuggestDinner](https://github.com/CubieDev/TwitchSuggestDinner)
* [TwitchPickUser](https://github.com/CubieDev/TwitchPickUser)
* [TwitchSaveMessages](https://github.com/CubieDev/TwitchSaveMessages)
* [TwitchMMLevelPickerGUI](https://github.com/CubieDev/TwitchMMLevelPickerGUI) (Mario Maker 2 specific bot)
* [TwitchMMLevelQueueGUI](https://github.com/CubieDev/TwitchMMLevelQueueGUI) (Mario Maker 2 specific bot)
* [TwitchPackCounter](https://github.com/CubieDev/TwitchPackCounter) (Streamer specific bot)
* [TwitchDialCheck](https://github.com/CubieDev/TwitchDialCheck) (Streamer specific bot)
* [TwitchSendMessage](https://github.com/CubieDev/TwitchSendMessage) (Meant for debugging purposes)