Caching will now be used from libbot
This commit is contained in:
@@ -1,29 +0,0 @@
|
||||
from typing import Dict, Any, Literal
|
||||
|
||||
from classes.cache.holo_cache_memcached import HoloCacheMemcached
|
||||
from classes.cache.holo_cache_redis import HoloCacheRedis
|
||||
|
||||
|
||||
def create_cache_client(
|
||||
config: Dict[str, Any],
|
||||
engine: Literal["memcached", "redis"] | None = None,
|
||||
) -> HoloCacheMemcached | HoloCacheRedis:
|
||||
if engine not in ["memcached", "redis"] or engine is None:
|
||||
raise KeyError(
|
||||
f"Incorrect cache engine provided. Expected 'memcached' or 'redis', got '{engine}'"
|
||||
)
|
||||
|
||||
if "cache" not in config or engine not in config["cache"]:
|
||||
raise KeyError(
|
||||
f"Cache configuration is invalid. Please check if all keys are set (engine: '{engine}')"
|
||||
)
|
||||
|
||||
match engine:
|
||||
case "memcached":
|
||||
return HoloCacheMemcached.from_config(config["cache"][engine])
|
||||
case "redis":
|
||||
return HoloCacheRedis.from_config(config["cache"][engine])
|
||||
case _:
|
||||
raise KeyError(
|
||||
f"Cache implementation for the engine '{engine}' is not present."
|
||||
)
|
@@ -1,25 +0,0 @@
|
||||
from copy import deepcopy
|
||||
from typing import Any
|
||||
|
||||
from bson import ObjectId
|
||||
from ujson import dumps, loads
|
||||
|
||||
|
||||
def json_to_string(json_object: Any) -> str:
|
||||
json_object_copy: Any = deepcopy(json_object)
|
||||
|
||||
if isinstance(json_object_copy, dict) and "_id" in json_object_copy:
|
||||
json_object_copy["_id"] = str(json_object_copy["_id"])
|
||||
|
||||
return dumps(
|
||||
json_object_copy, ensure_ascii=False, indent=0, escape_forward_slashes=False
|
||||
)
|
||||
|
||||
|
||||
def string_to_json(json_string: str) -> Any:
|
||||
json_object: Any = loads(json_string)
|
||||
|
||||
if "_id" in json_object:
|
||||
json_object["_id"] = ObjectId(json_object["_id"])
|
||||
|
||||
return json_object
|
@@ -2,9 +2,6 @@ from typing import Dict, Any
|
||||
|
||||
from async_pymongo import AsyncClient, AsyncCollection, AsyncDatabase
|
||||
from libbot.utils import config_get
|
||||
from pymongo import MongoClient
|
||||
from pymongo.synchronous.collection import Collection
|
||||
from pymongo.synchronous.database import Database
|
||||
|
||||
db_config: Dict[str, Any] = config_get("database")
|
||||
|
||||
@@ -23,7 +20,6 @@ con_string: str = (
|
||||
)
|
||||
|
||||
db_client: AsyncClient = AsyncClient(con_string)
|
||||
db_client_sync: MongoClient = MongoClient(con_string)
|
||||
|
||||
# Async declarations per default
|
||||
db: AsyncDatabase = db_client.get_database(name=db_config["name"])
|
||||
@@ -31,11 +27,5 @@ db: AsyncDatabase = db_client.get_database(name=db_config["name"])
|
||||
col_users: AsyncCollection = db.get_collection("users")
|
||||
col_analytics: AsyncCollection = db.get_collection("analytics")
|
||||
|
||||
# Sync declarations as a fallback
|
||||
sync_db: Database = db_client_sync.get_database(name=db_config["name"])
|
||||
|
||||
sync_col_users: Collection = sync_db.get_collection("users")
|
||||
sync_col_analytics: Collection = sync_db.get_collection("analytics")
|
||||
|
||||
# Update indexes
|
||||
sync_col_users.create_index(["id"], unique=True)
|
||||
db.dispatch.get_collection("users").create_index("id", unique=True)
|
||||
|
Reference in New Issue
Block a user