mirror of
https://github.com/yasirarism/MissKatyPyro.git
synced 2025-12-29 17:44:50 +00:00
* 'Refactored by Sourcery' * reformating: code Co-authored-by: Sourcery AI <> Co-authored-by: yasirarism <yasiramunandar@gmail.com>
65 lines
1.9 KiB
Python
65 lines
1.9 KiB
Python
from typing import Dict, Union
|
|
|
|
from database import dbname
|
|
from misskaty.helper.functions import int_to_alpha
|
|
|
|
karmadb = dbname.karma
|
|
|
|
|
|
async def get_karmas_count() -> dict:
|
|
chats_count = 0
|
|
karmas_count = 0
|
|
async for chat in karmadb.find({"chat_id": {"$lt": 0}}):
|
|
for i in chat["karma"]:
|
|
karma_ = chat["karma"][i]["karma"]
|
|
if karma_ > 0:
|
|
karmas_count += karma_
|
|
chats_count += 1
|
|
return {"chats_count": chats_count, "karmas_count": karmas_count}
|
|
|
|
|
|
async def user_global_karma(user_id) -> int:
|
|
total_karma = 0
|
|
async for chat in karmadb.find({"chat_id": {"$lt": 0}}):
|
|
karma = await get_karma(chat["chat_id"], await int_to_alpha(user_id))
|
|
if karma and (int(karma["karma"]) > 0):
|
|
total_karma += int(karma["karma"])
|
|
return total_karma
|
|
|
|
|
|
async def get_karmas(chat_id: int) -> Dict[str, int]:
|
|
karma = await karmadb.find_one({"chat_id": chat_id})
|
|
return karma["karma"] if karma else {}
|
|
|
|
|
|
async def get_karma(chat_id: int, name: str) -> Union[bool, dict]:
|
|
name = name.lower().strip()
|
|
karmas = await get_karmas(chat_id)
|
|
if name in karmas:
|
|
return karmas[name]
|
|
|
|
|
|
async def update_karma(chat_id: int, name: str, karma: dict):
|
|
name = name.lower().strip()
|
|
karmas = await get_karmas(chat_id)
|
|
karmas[name] = karma
|
|
await karmadb.update_one({"chat_id": chat_id}, {"$set": {"karma": karmas}}, upsert=True)
|
|
|
|
|
|
async def is_karma_on(chat_id: int) -> bool:
|
|
chat = await karmadb.find_one({"chat_id_toggle": chat_id})
|
|
return bool(chat)
|
|
|
|
|
|
async def karma_on(chat_id: int):
|
|
is_karma = await is_karma_on(chat_id)
|
|
if is_karma:
|
|
return
|
|
return await karmadb.delete_one({"chat_id_toggle": chat_id})
|
|
|
|
|
|
async def karma_off(chat_id: int):
|
|
is_karma = await is_karma_on(chat_id)
|
|
if not is_karma:
|
|
return
|
|
return await karmadb.insert_one({"chat_id_toggle": chat_id})
|