File size: 1,463 Bytes
f45efbd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
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 []
|