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("user_info") & myfilters.is_admin) @inject async def get_user_info(client: MyClient, msg: Message, user: User = Depends(get_user)) -> None: if len(msg.command) == 1: await message_handler(msg.reply, _("cp.invalid_info_command", locale=user.language)) return user_id = msg.command[1] if not user_id.isdigit(): await message_handler(msg.reply, _("cp.invalid_info_command", locale=user.language)) return user_id = int(user_id) u = await User.find_one(User.user_id == user_id) if not u: await message_handler(msg.reply, _("cp.cannot_find_user", locale=user.language)) return await message_handler( msg.reply, _( "cp.user_info", user_id=user_id, points=u.points, subscription=_(f"settings.{u.subscription}", locale=user.language), is_banned=("✅" if u.is_banned else "❌"), remaining_tasks=await u.remaining_tasks(), locale=user.language, ), )