from datetime import datetime from db.models.user import Task from pyrogram import Client, filters from pyrogram.types import Message from utils import filters as myfilters from utils.client import MyClient from utils.db import Depends, User, get_user, inject from utils.i18n import tr as _ from utils.messages import message_handler @Client.on_message(filters.command("status") & myfilters.is_admin) @inject async def bot_status(client: MyClient, msg: Message, user: User = Depends(get_user)) -> None: today = datetime.utcnow().replace(hour=0, minute=0, second=0, microsecond=0) total_tasks = await Task.find(Task.finished == True).count() # noqa: E712 today_tasks = await Task.find( Task.created_at >= today, Task.finished == True, # noqa: E712 ).count() total_users = await User.find().count() today_new_users = await User.find( Task.created_at >= today, ).count() await message_handler( msg.reply, _( "cp.bot_status", total_tasks=f"{total_tasks:,}", today_tasks=f"{today_tasks:,}", total_users=f"{total_users:,}", today_new_users=f"{today_new_users:,}", locale=user.language, ), )