from app import app from pyrogram import filters from pyrogram.types import Message from pyrogram.client import Client from pyrogram.enums.chat_members_filter import ChatMembersFilter from modules.utils import configGet, locale, should_quote from modules.database import col_users, col_warnings from modules import custom_filters # Warnings command ============================================================================================================= @app.on_message(~ filters.scheduled & filters.command(["warnings"], prefixes=["/"]) & custom_filters.admin) async def cmd_warnings(app: Client, msg: Message): if len(msg.command) <= 1: await msg.reply_text(locale("syntax_warnings", "message", locale=msg.from_user), quote=should_quote(msg)) return try: user_db = col_users.find_one({"user": int(msg.command[1])}) target_id = user_db["user"] target_name = user_db["tg_name"] except: list_of_users = [] async for m in app.get_chat_members(configGet("destination_group"), filter=ChatMembersFilter.SEARCH, query=msg.command[1]): list_of_users.append(m) if len(list_of_users) != 0: target = list_of_users[0].user target_name = target.first_name target_id = str(target.id) else: await msg.reply_text(locale("no_user_warnings", "message", locale=msg.from_user).format(msg.command[1])) return warns = len(list(col_warnings.find({"user": target_id}))) if warns == 0: await msg.reply_text(locale("no_warnings", "message", locale=msg.from_user).format(target_name, target_id), quote=should_quote(msg)) else: if warns <= 5: await msg.reply_text(locale("warnings_1", "message", locale=msg.from_user).format(target_name, target_id, warns), quote=should_quote(msg)) else: await msg.reply_text(locale("warnings_2", "message", locale=msg.from_user).format(target_name, target_id, warns), quote=should_quote(msg)) # ==============================================================================================================================