diff --git a/classes/holo_bot.py b/classes/holo_bot.py index aad37a6..fbd4f3d 100644 --- a/classes/holo_bot.py +++ b/classes/holo_bot.py @@ -1,5 +1,6 @@ import logging from logging import Logger +from typing import Literal from libbot.cache.classes import CacheMemcached, CacheRedis from libbot.cache.manager import create_cache_client @@ -16,5 +17,12 @@ class HoloBot(PycordBot): self._set_cache_engine() def _set_cache_engine(self) -> None: - if "cache" in self.config and self.config["cache"]["type"] is not None: - self.cache = create_cache_client(self.config, self.config["cache"]["type"]) + cache_type: Literal["redis", "memcached"] | None = self.config["cache"]["type"] + + if "cache" in self.config and cache_type is not None: + self.cache = create_cache_client( + self.config, + cache_type, + prefix=self.config["cache"][cache_type]["prefix"], + default_ttl_seconds=3600, + ) diff --git a/config_example.json b/config_example.json index 146e50f..8545fb4 100644 --- a/config_example.json +++ b/config_example.json @@ -25,10 +25,12 @@ "cache": { "type": null, "memcached": { - "uri": "127.0.0.1:11211" + "uri": "127.0.0.1:11211", + "prefix": null }, "redis": { - "uri": "redis://127.0.0.1:6379/0" + "uri": "redis://127.0.0.1:6379/0", + "prefix": null } }, "logging": { diff --git a/migrations/202507091444.py b/migrations/202507091444.py new file mode 100644 index 0000000..4a36e17 --- /dev/null +++ b/migrations/202507091444.py @@ -0,0 +1,31 @@ +import logging +from logging import Logger + +from libbot.utils import config_set, config_delete +from mongodb_migrations.base import BaseMigration + +logger: Logger = logging.getLogger(__name__) + + +class Migration(BaseMigration): + def upgrade(self): + try: + config_set("prefix", None, "cache", "memcached") + config_set("prefix", None, "cache", "redis") + except Exception as exc: + logger.error( + "Could not upgrade the config during migration '%s' due to: %s", + __name__, + exc, + ) + + def downgrade(self): + try: + config_delete("prefix", "cache", "redis") + config_delete("prefix", "cache", "memcached") + except Exception as exc: + logger.error( + "Could not downgrade the config during migration '%s' due to: %s", + __name__, + exc, + ) diff --git a/requirements.txt b/requirements.txt index 0cd2539..ad7aeed 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,9 +5,9 @@ requests>=2.32.2 aiofiles~=24.1.0 apscheduler>=3.10.0 async_pymongo==0.1.11 -libbot[speed,pycord,cache]==4.1.0 +libbot[speed,pycord,cache]==4.4.0 mongodb-migrations==1.3.1 pymemcache~=4.0.0 -redis~=5.2.1 +redis~=6.2.0 ujson~=5.10.0 WaifuPicsPython==0.2.0 \ No newline at end of file