from os import sep from app import app, isAnAdmin from pyrogram import filters from pyrogram.errors import bad_request_400 from modules.utils import jsonLoad, jsonSave, logWrite, locale, configGet, should_quote # Message command ============================================================================================================== @app.on_message(~ filters.scheduled & filters.command(["message"], prefixes=["/"])) async def cmd_message(app, msg): if msg.chat.id == configGet("admin_group") or await isAnAdmin(msg.from_user.id): try: try: destination = await app.get_users(int(msg.command[1])) if destination == [] or destination == None: raise TypeError except TypeError: try: destination = await app.get_users(msg.command[1]) except bad_request_400.UsernameNotOccupied: await msg.reply_text(locale("message_no_user", "message"), quote=should_quote(msg)) logWrite(f"Admin {msg.from_user.id} tried to send message '{' '.join(msg.command[2:])}' to '{msg.command[1]}' but 'UsernameNotOccupied'") return except ValueError: try: destination = await app.get_users(msg.command[1]) except bad_request_400.UsernameNotOccupied: await msg.reply_text(locale("message_no_user", "message"), quote=should_quote(msg)) logWrite(f"Admin {msg.from_user.id} tried to send message '{' '.join(msg.command[2:])}' to '{msg.command[1]}' but 'UsernameNotOccupied'") return void = msg.command[2] message = " ".join(msg.command[2:]) try: new_message = await app.send_message(destination.id, message+locale("message_reply_notice", "message")) await msg.reply_text(locale("message_sent", "message"), quote=should_quote(msg)) logWrite(f"Admin {msg.from_user.id} sent message '{' '.join(msg.command[2:])}' to {destination.id}") messages = jsonLoad(f"{configGet('data', 'locations')}{sep}messages.json") messages.append({"origin": {"chat": msg.chat.id, "id": msg.id}, "destination": {"chat": new_message.chat.id, "id": new_message.id}}) jsonSave(messages, f"{configGet('data', 'locations')}{sep}messages.json") except bad_request_400.PeerIdInvalid: await msg.reply_text(locale("message_no_user", "message"), quote=should_quote(msg)) logWrite(f"Admin {msg.from_user.id} tried to send message '{' '.join(msg.command[2:])}' to {destination.id} but 'PeerIdInvalid'") except IndexError: await msg.reply_text(locale("message_invalid_syntax", "message"), quote=should_quote(msg)) logWrite(f"Admin {msg.from_user.id} tried to send message but 'IndexError'") except ValueError: await msg.reply_text(locale("message_invalid_syntax", "message"), quote=should_quote(msg)) logWrite(f"Admin {msg.from_user.id} tried to send message but 'ValueError'") # ==============================================================================================================================