From 8bcde6922425e7a74dd22457b43fd9fd790a108c Mon Sep 17 00:00:00 2001 From: Fluffy-Bean Date: Mon, 11 Sep 2023 23:24:24 +0100 Subject: [PATCH] Clean up config.py and __main__.py --- lynxie/__main__.py | 41 ++++++----------------------------- lynxie/config.py | 53 +++++++++++++--------------------------------- 2 files changed, 21 insertions(+), 73 deletions(-) diff --git a/lynxie/__main__.py b/lynxie/__main__.py index 6f69cec..1b99648 100644 --- a/lynxie/__main__.py +++ b/lynxie/__main__.py @@ -4,9 +4,9 @@ import discord from discord.ext import commands from discord.gateway import DiscordWebSocket -from lynxie.config import DISCORD_TOKEN, LYNXIE_PREFIX, E621_BLACKLIST +from lynxie.config import DISCORD_TOKEN, LYNXIE_PREFIX from lynxie.database import CommandHistory, Database -from lynxie.utils import mobile_status +from lynxie.utils import mobile_status, error_message from lynxie.commands import Help, Ping, Hello, Music, Animals, Img, E621 @@ -23,32 +23,6 @@ lynxie = commands.Bot( async def on_ready(): print(f"Logged in as {lynxie.user} (ID: {lynxie.user.id})") - in_guilds = "In Guilds: " + str(len(lynxie.guilds)) - commands_used = "Commands called: " + str( - db.session.query(CommandHistory.user).count() - ) - unique_users = "Unique Users: " + str( - db.session.query(CommandHistory.user).distinct().count() - ) - blacklisted_words = "Blacklisted Words: " + str(len(E621_BLACKLIST)) - - bar_len = ( - max( - len(in_guilds), - len(commands_used), - len(unique_users), - len(blacklisted_words), - ) - + 4 - ) - - print("---- Stats " + "-" * (bar_len - 11)) - print(f"| {in_guilds}{' ' * (bar_len - len(in_guilds) - 3)}|") - print(f"| {commands_used}{' ' * (bar_len - len(commands_used) - 3)}|") - print(f"| {unique_users}{' ' * (bar_len - len(unique_users) - 3)}|") - print(f"| {blacklisted_words}{' ' * (bar_len - len(blacklisted_words) - 3)}|") - print("-" * bar_len) - @lynxie.event async def on_command(ctx): @@ -68,13 +42,10 @@ async def on_command(ctx): @lynxie.event -async def on_message_edit(before, after): - if ( - before.author == lynxie.user - or before.author.bot - or before.content == after.content - ): - return +async def on_command_error(ctx, error): + print(error) + error = "An internal error occurred while processing your command, oopsie..." + await ctx.reply(embed=error_message(error), delete_after=5) async def run(): diff --git a/lynxie/config.py b/lynxie/config.py index 0b7b9ef..12e98ff 100644 --- a/lynxie/config.py +++ b/lynxie/config.py @@ -1,58 +1,32 @@ import os +import requests import dotenv from discord import Object + +LYNXIE_PREFIX = "?" + DISCORD_TOKEN = ( dotenv.dotenv_values(".env").get("DISCORD_TOKEN") or os.environ.get("DISCORD_TOKEN") or None ) DISCORD_GUILD_ID = Object(id=1040757387033849976) -LYNXIE_PREFIX = "?" + DATA_PATH = os.path.join("lynxie", "data") ASSETS_PATH = os.path.join("lynxie", "assets") + DATABASE_URI = f"sqlite:///" + os.path.join(DATA_PATH, "lynxie.db") + # https://tinyfox.dev/docs/ -# TODO: Get list from API instead of hardcoding -# https://api.tinyfox.dev/img?animal=animal&json -TINYFOX_ANIMALS = [ - "chi", - "bear", - "dog", - "capy", - "caracal", - "chee", - "yote", - "bleat", - "dook", - "fox", - "yeen", - "jaguar", - "leo", - "lynx", - "mane", - "puma", - "poss", - "ott", - "manul", - "marten", - "bun", - "racc", - "wah", - "serval", - "shiba", - "skunk", - "snek", - "snep", - "tig", - "woof", -] +tinyfox_animals = requests.get("https://api.tinyfox.dev/img?animal=animal&json").json() +TINYFOX_ANIMALS = tinyfox_animals["available"] + IMAGE_EXTENSIONS = ["png", "jpg", "jpeg", "webp"] - IMAGE_OVERLAYS = { "bubble": { "path": os.path.join(ASSETS_PATH, "overlays", "bubble.png"), @@ -85,6 +59,7 @@ IMAGE_OVERLAYS = { }, } + E621_API_KEY = ( dotenv.dotenv_values(".env").get("E621_API_KEY") or os.environ.get("E621_API_KEY") @@ -96,5 +71,7 @@ E621_USERNAME = ( or None ) E621_BLACKLIST = set() -with open(os.path.join(ASSETS_PATH, "e621_blacklist.txt"), "r") as f: - [E621_BLACKLIST.add(line.strip()) for line in f.readlines() if line.strip()] +with open(os.path.join(ASSETS_PATH, "e621_blacklist.txt"), "r") as file: + for line in file.readlines(): + if word := line.strip(): + E621_BLACKLIST.add(word)