from Database.mongodb.db import dbname usersdb = dbname.users cleandb = dbname.cleanmode cleanmode = {} async def is_cleanmode_on(chat_id: int) -> bool: mode = cleanmode.get(chat_id) if not mode: user = await cleandb.find_one({"chat_id": chat_id}) if not user: cleanmode[chat_id] = True return True cleanmode[chat_id] = False return False return mode async def cleanmode_on(chat_id: int): cleanmode[chat_id] = True user = await cleandb.find_one({"chat_id": chat_id}) if user: return await cleandb.delete_one({"chat_id": chat_id}) async def cleanmode_off(chat_id: int): cleanmode[chat_id] = False user = await cleandb.find_one({"chat_id": chat_id}) if not user: return await cleandb.insert_one({"chat_id": chat_id}) async def is_afk(user_id: int) -> bool: user = await usersdb.find_one({"user_id": user_id}) return (True, user["reason"]) if user else (False, {}) async def add_afk(user_id: int, mode): await usersdb.update_one( {"user_id": user_id}, {"$set": {"reason": mode}}, upsert=True ) async def remove_afk(user_id: int): user = await usersdb.find_one({"user_id": user_id}) if user: return await usersdb.delete_one({"user_id": user_id}) async def get_afk_users() -> list: users = usersdb.find({"user_id": {"$gt": 0}}) return list(await users.to_list(length=1000000000)) if users else []