from app import app from pyrogram import filters from pyrogram.types import Message from pyrogram.client import Client from modules.utils import configGet, locale, should_quote, find_user from classes.errors.holo_user import LabelTooLongError, LabelSettingError from classes.holo_user import HoloUser from modules import custom_filters @app.on_message( custom_filters.enabled_applications & ~filters.scheduled & filters.command(["label"], prefixes=["/"]) & custom_filters.admin ) async def cmd_label(app: Client, msg: Message): if len(msg.command) < 3: await msg.reply_text("Invalid syntax:\n`/label USER LABEL`") return target = await find_user(app, msg.command[1]) if target is not None: target = HoloUser(target) label = " ".join(msg.command[2:]) if label.lower() == "reset": await target.label_reset(msg.chat) await msg.reply_text( f"Resetting **{target.id}**'s label...", quote=should_quote(msg) ) else: try: await target.label_set(msg.chat, label) except LabelTooLongError: await msg.reply_text(locale("label_too_long", "message")) return except LabelSettingError as exp: await app.send_message( configGet("admin", "groups"), exp.__str__(), disable_notification=True, ) return await msg.reply_text( f"Setting **{target.id}**'s label to **{label}**...", quote=should_quote(msg), ) else: await msg.reply_text(f"User not found")