def decorator(func): async def wrapper(check): if check.edit_date: return if check.fwd_from: return if check.is_group or check.is_private: pass else: print("i don't work in channels") return if check.is_group: if check.chat.megagroup: pass else: print("i don't work in small chats") return users = gbanned.find({}) for c in users: if check.sender_id == c["user"]: return try: await func(check) try: LOAD_PLUG[file_test].append(func) except Exception: LOAD_PLUG.update({file_test: [func]}) except BaseException: return else: pass telethn.add_event_handler(wrapper, events.NewMessage(**args)) return wrapper
if not await user_is_admin(user_id=event.sender_id, message=event) and event.from_id not in [ 1087968824 ]: await event.reply("Only Admins are allowed to use this command") return if not await can_delete_messages(message=event): await event.reply("Can't seem to delete this?") return message = await event.get_reply_message() if not message: await event.reply("Whadya want to delete?") return chat = await event.get_input_chat() del_message = [message, event.message] await event.client.delete_messages(chat, del_message) PURGE_HANDLER = purge_messages, events.NewMessage(pattern="^[!/]purge$") DEL_HANDLER = delete_messages, events.NewMessage(pattern="^[!/]del$") telethn.add_event_handler(*PURGE_HANDLER) telethn.add_event_handler(*DEL_HANDLER) __mod_name__ = "DETELE" __command_list__ = ["del", "purge"] __handlers__ = [PURGE_HANDLER, DEL_HANDLER]
def decorator(func): telethn.add_event_handler(func, events.CallbackQuery(**args)) return func
def decorator(func): telethn.add_event_handler(func, events.InlineQuery(**args)) return func
def decorator(func): telethn.add_event_handler(func, events.UserUpdate(**args)) return func
def decorator(func): telethn.add_event_handler(func, events.ChatAction(**args)) return func
def decorator(func): telethn.add_event_handler(func, events.NewMessage(**args)) return func
def load(update: Update, context: CallbackContext): message = update.effective_message text = message.text.split(" ", 1)[1] load_messasge = message.reply_text( f"Attempting to load module : <b>{text}</b>", parse_mode=ParseMode.HTML, ) try: imported_module = importlib.import_module(f"ShasaBot.modules.{text}") except: load_messasge.edit_text("Does that module even exist?") return if not hasattr(imported_module, "__mod_name__"): imported_module.__mod_name__ = imported_module.__name__ if imported_module.__mod_name__.lower() not in IMPORTED: IMPORTED[imported_module.__mod_name__.lower()] = imported_module else: load_messasge.edit_text("Module already loaded.") return if "__handlers__" in dir(imported_module): handlers = imported_module.__handlers__ for handler in handlers: if not isinstance(handler, tuple): dispatcher.add_handler(handler) elif isinstance(handler[0], collections.Callable): callback, telethon_event = handler telethn.add_event_handler(callback, telethon_event) else: handler_name, priority = handler dispatcher.add_handler(handler_name, priority) else: IMPORTED.pop(imported_module.__mod_name__.lower()) load_messasge.edit_text("The module cannot be loaded.") return if hasattr(imported_module, "__help__") and imported_module.__help__: HELPABLE[imported_module.__mod_name__.lower()] = imported_module # Chats to migrate on chat_migrated events if hasattr(imported_module, "__migrate__"): MIGRATEABLE.append(imported_module) if hasattr(imported_module, "__stats__"): STATS.append(imported_module) if hasattr(imported_module, "__user_info__"): USER_INFO.append(imported_module) if hasattr(imported_module, "__import_data__"): DATA_IMPORT.append(imported_module) if hasattr(imported_module, "__export_data__"): DATA_EXPORT.append(imported_module) if hasattr(imported_module, "__chat_settings__"): CHAT_SETTINGS[imported_module.__mod_name__.lower()] = imported_module if hasattr(imported_module, "__user_settings__"): USER_SETTINGS[imported_module.__mod_name__.lower()] = imported_module load_messasge.edit_text( f"Successfully loaded module : <b>{text}</b>", parse_mode=ParseMode.HTML, )