From d649de8fb8b79097b5bc81b60ca3ac92b59964c4 Mon Sep 17 00:00:00 2001 From: yuki Date: Wed, 8 Oct 2025 01:16:33 -0300 Subject: [PATCH] add catbox uploader and collage generator to bot class --- .gitmodules | 3 +++ bot.py | 19 +++++++++++++++++-- catbox_async_uploader | 1 + config-template.toml | 2 ++ main.py | 3 ++- requirements.txt | 14 +++++++++++--- 6 files changed, 36 insertions(+), 6 deletions(-) create mode 100644 .gitmodules create mode 160000 catbox_async_uploader diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..9c617de --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "catbox_async_uploader"] + path = catbox_async_uploader + url = https://github.com/IlkoChw/catbox_async_uploader diff --git a/bot.py b/bot.py index f1195c1..275d331 100644 --- a/bot.py +++ b/bot.py @@ -1,13 +1,18 @@ import os import importlib -import aiosqlite import nerimity import pylast +import aiosqlite + +from lastfmcollagegenerator.collage_generator import CollageGenerator +from catbox_async_uploader.catbox_async_uploader.core import CatboxAsyncUploader class Bot(nerimity.Client): """Extended client class for extra functionality.""" - def __init__(self, lastfm_api_key: str, lastfm_api_secret: str, owner_id: int = None, db_file: str = "database.db", *args, **kwargs): + def __init__(self, lastfm_api_key: str, lastfm_api_secret: str, catbox_hash: str, + owner_id: int = None, db_file: str = "database.db", + *args, **kwargs): super().__init__(*args, **kwargs) self.owner_id = owner_id @@ -18,6 +23,16 @@ class Bot(nerimity.Client): api_secret = lastfm_api_secret ) + # initialize collage generator + self.collage_generator = CollageGenerator( + lastfm_api_key=lastfm_api_key, + lastfm_api_secret=lastfm_api_secret + ) + + # initialize catbox client + self.catbox_uploader = CatboxAsyncUploader(userhash=catbox_hash) + + # database self.db = None self.db_file = db_file diff --git a/catbox_async_uploader b/catbox_async_uploader new file mode 160000 index 0000000..7c9e9a9 --- /dev/null +++ b/catbox_async_uploader @@ -0,0 +1 @@ +Subproject commit 7c9e9a9efc833a7f4f7a9641bd81f7ea4881396a diff --git a/config-template.toml b/config-template.toml index cdc4798..db288d0 100644 --- a/config-template.toml +++ b/config-template.toml @@ -2,3 +2,5 @@ token = "NerimityTokenHere" owner_id = 1234567890 api_key = "LastFmApiKeyHere" api_secret = "LastFmApiSecretHere" + +catbox_hash = "CatboxUserHashHere" diff --git a/main.py b/main.py index 1bfd09b..d42696f 100644 --- a/main.py +++ b/main.py @@ -11,7 +11,8 @@ bot = bot.Bot( token = config['token'], owner_id = config['owner_id'], lastfm_api_key = config['api_key'], - lastfm_api_secret = config['api_secret'] + lastfm_api_secret = config['api_secret'], + catbox_hash = config['catbox_hash'] ) bot.load_commands("commands") diff --git a/requirements.txt b/requirements.txt index 486f3df..562f80f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,30 +1,38 @@ +aiofiles==24.1.0 aiohappyeyeballs==2.6.1 -aiohttp==3.13.0 +aiohttp==3.10.10 aiosignal==1.4.0 aiosqlite==0.21.0 anyio==4.11.0 astroid==3.3.11 attrs==25.4.0 +beautifulsoup4==4.12.3 certifi==2025.10.5 charset-normalizer==3.4.3 dill==0.4.0 frozenlist==1.8.0 h11==0.16.0 +html5lib==1.1 httpcore==1.0.9 httpx==0.28.1 idna==3.10 isort==6.1.0 +lastfmcollagegenerator==0.4.13 mccabe==0.7.0 multidict==6.7.0 nerimity==1.4.1 +pillow==10.4.0 platformdirs==4.4.0 propcache==0.4.0 -pylast==6.0.0 +pylast==5.3.0 pylint==3.3.9 -requests==2.32.5 +requests==2.32.3 +six==1.17.0 sniffio==1.3.1 +soupsieve==2.8 tomlkit==0.13.3 typing_extensions==4.15.0 urllib3==2.5.0 +webencodings==0.5.1 websockets==15.0.1 yarl==1.22.0