Overhauled configuration system

This commit is contained in:
2025-11-24 14:14:07 -05:00
parent 874acb7af3
commit 94dd565ecf

94
bot.py
View File

@@ -1,21 +1,66 @@
import discord import discord
import dotenv import dotenv
import os import os
import asyncio
text_triggers = { # text_triggers = {
"lessthan": "WHAT ARE YOU WAITING FOR?", # "lessthan": "WHAT ARE YOU WAITING FOR?",
"didn'tnotice": "WHAT ARE YOU WAITING FOR?", # "didn'tnotice": "WHAT ARE YOU WAITING FOR?",
"didntnotice": "WHAT ARE YOU WAITING FOR?", # "didntnotice": "WHAT ARE YOU WAITING FOR?",
"didn'tevennotice": "WHAT ARE YOU WAITING FOR?", # "didn'tevennotice": "WHAT ARE YOU WAITING FOR?",
"didntevennotice": "WHAT ARE YOU WAITING FOR?", # "didntevennotice": "WHAT ARE YOU WAITING FOR?",
"oblivion": "WHAT ARE YOU WAITING FOR?", # "oblivion": "WHAT ARE YOU WAITING FOR?",
"pieces": "Put. It. Together." # "pieces": "Put. It. Together."
} # }
lessthan = None class MessageTrigger:
def handle_message(self, message:discord.Message):
pass
with open(".env") as env: class TextTrigger(MessageTrigger):
print(env.readline()) 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") dotenv.load_dotenv(".env")
@@ -33,21 +78,26 @@ async def on_ready():
@client.event @client.event
async def on_message(message): async def on_message(message):
if message.author == client.user:
return
global lessthan global lessthan
print(f"Message from {message.author}: {message.content}") print(f"Message from {message.author}: {message.content}")
processed_message = process_string(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" in processed_message or "focus" in processed_message or "oblivion" in processed_message:
if lessthan == None: # if lessthan == None:
lessthan = await message.guild.fetch_emoji(1287978418314547241) # lessthan = await message.guild.fetch_emoji(1287978418314547241)
await message.add_reaction(lessthan) # print(lessthan.name)
# await message.add_reaction(lessthan)
for trigger in text_triggers:
if trigger in processed_message: for trigger in triggers:
await message.reply(text_triggers[trigger]) trigger.handle_message(message)
def process_string(string:str) -> str: 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) print(api_key)