From 359eabe4c8c3059ba32432877296618bbdbb69ee Mon Sep 17 00:00:00 2001 From: benjamyn Date: Tue, 24 Dec 2019 03:48:13 +1100 Subject: [PATCH] Initial commit --- .gitignore | 2 ++ tbot.py | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 .gitignore create mode 100644 tbot.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..151485d --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +env/ +.vscode/ diff --git a/tbot.py b/tbot.py new file mode 100644 index 0000000..a1803ca --- /dev/null +++ b/tbot.py @@ -0,0 +1,59 @@ +import twitch +import datetime + +UserID = "oauth:9yymca9k3o4okc40lgc67q9u9x3dqe" +PREFIX = '!' +BOTID = '[BOT]' + +#User limits +TIMEOUT = 10 +MSG_LIMIT = 10 + +userstats = {} + +def handle_message(message: twitch.chat.Message) -> None: + print(message.text) + if message.text.startswith(PREFIX + 'views'): + message.chat.send(f'{BOTID} @{message.user.display_name}, you have {message.user.view_count} views.') + + if message.text.startswith(PREFIX + "hello"): + message.chat.send(f"{BOTID} Hello @{message.user.display_name}, how are you?") + + if message.text.startswith(PREFIX + "author"): + message.chat.send(f"{BOTID} I am written by an idiot who knows enough to cause trouble ;)") + + if message.text.startswith(PREFIX + "setgame"): + # Do logic for setting the game + message.chat.send(f"{BOTID} Changing game to {message.text.strip(PREFIX + 'setgame')}") + + # User limits + if message.user.display_name not in userstats: + timeOut = int(datetime.datetime.now().timestamp()) + userstats[message.user.display_name] = [0, timeOut, timeOut + TIMEOUT] + userstats[message.user.display_name][0] += 1 + else: + userstats[message.user.display_name][0] += 1 + currTime = int(datetime.datetime.now().timestamp()) + if currTime >= userstats[message.user.display_name][1]: + userstats[message.user.display_name][1] = currTime + userstats[message.user.display_name][1] = currTime + TIMEOUT + userstats[message.user.display_name][0] = 0 + if currTime < userstats[message.user.display_name][2] and userstats[message.user.display_name][0] > MSG_LIMIT: + message.chat.send(f"{BOTID} Timing out {message.user.display_name} for 15 seconds, please no spam :(") + message.chat.send(f"/timeout {message.user.display_name} 15") + print(f"{userstats[message.user.display_name][2]}:{currTime}") + + print(userstats) + +def main(): + chat = twitch.Chat(channel='#aztecdude1', + nickname='AzBot', + oauth=UserID, + helix=twitch.Helix(client_id='brxmkiwb7y8f2zec55m5oom5xu0tgo', use_cache=True)) + + chat.subscribe(handle_message) + chat.send(f"{BOTID} I am online now") + + +if __name__ == '__main__': + main() \ No newline at end of file