mirror of
https://github.com/yasirarism/MissKatyPyro.git
synced 2025-12-29 17:44:50 +00:00
51 lines
1.3 KiB
Python
51 lines
1.3 KiB
Python
from typing import Dict, Union
|
|
|
|
from database import dbname
|
|
|
|
warnsdb = dbname["warn"]
|
|
|
|
|
|
async def get_warns_count() -> dict:
|
|
chats_count = 0
|
|
warns_count = 0
|
|
async for chat in warnsdb.find({"chat_id": {"$lt": 0}}):
|
|
for user in chat["warns"]:
|
|
warns_count += chat["warns"][user]["warns"]
|
|
chats_count += 1
|
|
return {"chats_count": chats_count, "warns_count": warns_count}
|
|
|
|
|
|
async def get_warns(chat_id: int) -> Dict[str, int]:
|
|
warns = await warnsdb.find_one({"chat_id": chat_id})
|
|
return warns["warns"] if warns else {}
|
|
|
|
|
|
async def get_warn(chat_id: int, name: str) -> Union[bool, dict]:
|
|
name = name.lower().strip()
|
|
warns = await get_warns(chat_id)
|
|
if name in warns:
|
|
return warns[name]
|
|
|
|
|
|
async def add_warn(chat_id: int, name: str, warn: dict):
|
|
name = name.lower().strip()
|
|
warns = await get_warns(chat_id)
|
|
warns[name] = warn
|
|
|
|
await warnsdb.update_one(
|
|
{"chat_id": chat_id}, {"$set": {"warns": warns}}, upsert=True
|
|
)
|
|
|
|
|
|
async def remove_warns(chat_id: int, name: str) -> bool:
|
|
warnsd = await get_warns(chat_id)
|
|
name = name.lower().strip()
|
|
if name in warnsd:
|
|
del warnsd[name]
|
|
await warnsdb.update_one(
|
|
{"chat_id": chat_id},
|
|
{"$set": {"warns": warnsd}},
|
|
upsert=True,
|
|
)
|
|
return True
|
|
return False
|