diff options
| author | seth <[email protected]> | 2023-02-04 23:12:58 -0500 |
|---|---|---|
| committer | seth <[email protected]> | 2023-03-14 20:40:13 -0400 |
| commit | 52e58d2da91d2980823612d6c55e41ed6af0382e (patch) | |
| tree | 41cedd7715dca1e15e51fbba0351f2d69dd54dd4 /teawie_bot/utils.py | |
| parent | d7c0dd5ac7ce11ca24f4d05c35820182957fa075 (diff) | |
feat: bit of a refactor
- moved teawie_bot to root directory
- added nix flake
Diffstat (limited to 'teawie_bot/utils.py')
| -rw-r--r-- | teawie_bot/utils.py | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/teawie_bot/utils.py b/teawie_bot/utils.py new file mode 100644 index 0000000..c75135b --- /dev/null +++ b/teawie_bot/utils.py @@ -0,0 +1,70 @@ +import importlib.resources +import random +from math import ceil + +import discord +from discord.ext import commands + +from teawie_bot import copypastas + +CHAR_LIMIT: int = 2000 + + +# pylint: disable-next=too-few-public-methods +class Teawies: + """ + wrapper class around list[discord.Emoji] + """ + + def __init__(self, bot: commands.Bot): + names = [ + "teawiecry", "teawiederp", "teawiedizzy", + "teawienerdcroppedanddownsized", "teawieneutral", "teawiepet", + "teawiepetfast", "teawiepop", "teawiesmile", "teawiesmug", + "teawiestarstruck", "tei", "wavy", "wie", "manythoughtsheadfull" + ] + + self.emojis: list[str] = [ + str(discord.utils.get(bot.emojis, name=name)) for name in names + ] + + def random(self) -> str: + return random.choice(self.emojis) + + +def get_random_response(bot: commands.Bot) -> str: + responses = [ + "soon", + "maybe", + "perhaps", + "elaborate", + str(discord.utils.get(bot.emojis, name="moyai")), + ] + responses = responses + bot.teawies.emojis + return random.choice(responses) + + +def split_msg(msg: str) -> list[str]: + """ + splits a message into multiple parts so that it + can fit into the discord character limit + """ + split = ceil(len(msg) / ceil(len(msg) / CHAR_LIMIT)) + return [msg[i:i + split] for i in range(0, len(msg), split)] + + +def get_copypasta(name: str) -> list[str]: + try: + res = importlib.resources.read_text(copypastas, name + ".txt") + except OSError: + return ["something went wrong :("] + + if res == "": + return [f"couldn't send copypasta: {name} :("] + + if len(res) >= CHAR_LIMIT: + res = split_msg(res) + else: + res = [res] + + return res |
