turdbot/bin/storage.py

32 lines
944 B
Python
Raw Normal View History

2023-12-14 18:47:29 -07:00
class storage:
2024-06-19 19:06:24 -06:00
def __init__(self, server_id, db):
self.server_id = str(server_id)
self.db = db
2024-06-19 22:22:21 -06:00
self.collection = db['turdbot']
2024-06-19 19:06:24 -06:00
2024-06-19 22:22:21 -06:00
async def store(self, module, key=None, value=None):
2024-06-19 19:06:24 -06:00
document = await self.collection.find_one({"server_id": self.server_id})
if not document:
document = {
"server_id": self.server_id,
"modules": {}
}
modules = document.get("modules", {})
if module not in modules:
modules[module] = {}
if key is None:
return modules.get(module)
2024-10-02 15:18:33 -06:00
else:
2024-06-19 19:06:24 -06:00
modules[module][key] = value
await self.collection.update_one(
{"server_id": self.server_id},
{"$set": {"modules": modules}},
upsert=True
)
return modules[module].get(key)