diff --git a/bot.py b/bot.py index 7ce87aa..6e469c6 100644 --- a/bot.py +++ b/bot.py @@ -1,21 +1,66 @@ import discord import dotenv import os +import asyncio -text_triggers = { - "lessthan": "WHAT ARE YOU WAITING FOR?", - "didn'tnotice": "WHAT ARE YOU WAITING FOR?", - "didntnotice": "WHAT ARE YOU WAITING FOR?", - "didn'tevennotice": "WHAT ARE YOU WAITING FOR?", - "didntevennotice": "WHAT ARE YOU WAITING FOR?", - "oblivion": "WHAT ARE YOU WAITING FOR?", - "pieces": "Put. It. Together." -} +# text_triggers = { +# "lessthan": "WHAT ARE YOU WAITING FOR?", +# "didn'tnotice": "WHAT ARE YOU WAITING FOR?", +# "didntnotice": "WHAT ARE YOU WAITING FOR?", +# "didn'tevennotice": "WHAT ARE YOU WAITING FOR?", +# "didntevennotice": "WHAT ARE YOU WAITING FOR?", +# "oblivion": "WHAT ARE YOU WAITING FOR?", +# "pieces": "Put. It. Together." +# } -lessthan = None +class MessageTrigger: + def handle_message(self, message:discord.Message): + pass -with open(".env") as env: - print(env.readline()) +class TextTrigger(MessageTrigger): + def __init__(self, triggers:list[str], response:str): + self.triggers = triggers + self.response = response + + def handle_message(self, message:discord.Message): + processed_string = process_string(message.content) + if processed_string in self.triggers: + asyncio.create_task(message.reply(self.response)) + +class EmojiTrigger(MessageTrigger): + def __init__(self, triggers:list[str], emoji_names:list[str]): + self.triggers = triggers + self.emoji_names = emoji_names + + def handle_message(self, message:discord.Message): + processed_string = process_string(message.content) + if processed_string in self.triggers: + for emoji in message.guild.emojis: + if emoji.name in self.emoji_names: + asyncio.create_task(message.add_reaction(emoji)) + +triggers:list[MessageTrigger] = [ + TextTrigger([ + "lessthan", + "focus", + "hypnosis", + "didntnotice", + "didntevennotice", + "oblivion" + ], "WHAT ARE YOU WAITING FOR?"), + EmojiTrigger([ + "lessthan", + "focus", + "hypnosis", + "didntnotice", + "didntevennotice", + "oblivion" + ], "lessthan"), + TextTrigger([ + "pieces", + "peices" + ], "Put. It. Together.") +] dotenv.load_dotenv(".env") @@ -33,21 +78,26 @@ async def on_ready(): @client.event async def on_message(message): + if message.author == client.user: + return global lessthan print(f"Message from {message.author}: {message.content}") processed_message = process_string(message.content) - if "lessthan" in processed_message or "focus" in processed_message or "oblivion" in processed_message: - if lessthan == None: - lessthan = await message.guild.fetch_emoji(1287978418314547241) - await message.add_reaction(lessthan) - - for trigger in text_triggers: - if trigger in processed_message: - await message.reply(text_triggers[trigger]) - + # if "lessthan" in processed_message or "focus" in processed_message or "oblivion" in processed_message: + # if lessthan == None: + # lessthan = await message.guild.fetch_emoji(1287978418314547241) + # print(lessthan.name) + # await message.add_reaction(lessthan) + + for trigger in triggers: + trigger.handle_message(message) def process_string(string:str) -> str: - return "".join(string.lower().split()) + characters_to_remove = ",.-_;:'\"" + string = "".join(string.lower().split()) + for char in characters_to_remove: + string = string.replace(char, "") + return string print(api_key)