def admin_cmd(pattern=None, **args): args["func"] = lambda e: e.via_bot_id is None stack = inspect.stack() previous_stack_frame = stack[1] file_test = Path(previous_stack_frame.filename) file_test = file_test.stem.replace(".py", "") allow_sudo = args.get("allow_sudo", False) # get the pattern from the decorator if pattern is not None: if pattern.startswith("\#"): # special fix for snip.py args["pattern"] = re.compile(pattern) else: args["pattern"] = re.compile(Config.COMMAND_HAND_LER + pattern) reg = Config.COMMAND_HAND_LER[1] cmd = (reg + pattern).replace("$", "").replace("\\", "").replace("^", "") try: CMD_LIST[file_test].append(cmd) except: CMD_LIST.update({file_test: [cmd]}) args["outgoing"] = True # should this command be available for other users? if allow_sudo: args["from_users"] = list(Config.SUDO_USERS) # Mutually exclusive with outgoing (can only set one of either). args["incoming"] = True del args["allow_sudo"] # error handling condition check elif "incoming" in args and not args["incoming"]: args["outgoing"] = True # add blacklist chats, UB should not respond in these chats args["blacklist_chats"] = True black_list_chats = list(Config.UB_BLACK_LIST_CHAT) if len(black_list_chats) > 0: args["chats"] = black_list_chats # add blacklist chats, UB should not respond in these chats allow_edited_updates = False if "allow_edited_updates" in args and args["allow_edited_updates"]: allow_edited_updates = args["allow_edited_updates"] del args["allow_edited_updates"] # check if the plugin should listen for outgoing 'messages' is_message_enabled = True return events.NewMessage(**args)
def register(**args): """ Register a new event. """ args["func"] = lambda e: e.via_bot_id is None stack = inspect.stack() previous_stack_frame = stack[1] file_test = Path(previous_stack_frame.filename) file_test = file_test.stem.replace(".py", "") pattern = args.get('pattern', None) disable_edited = args.get('disable_edited', True) if pattern is not None and not pattern.startswith('(?i)'): args['pattern'] = '(?i)' + pattern if "disable_edited" in args: del args['disable_edited'] reg = re.compile('(.*)') if pattern is not None: try: cmd = re.search(reg, pattern) try: cmd = cmd.group(1).replace( "$", "").replace( "\\", "").replace( "^", "") except BaseException: pass try: CMD_LIST[file_test].append(cmd) except BaseException: CMD_LIST.update({file_test: [cmd]}) except BaseException: pass def decorator(func): if not disable_edited: bot.add_event_handler(func, events.MessageEdited(**args)) bot.add_event_handler(func, events.NewMessage(**args)) try: LOAD_PLUG[file_test].append(func) except Exception: LOAD_PLUG.update({file_test: [func]}) return func return decorator
def register(**args): """ Register a new event. """ stack = inspect.stack() previous_stack_frame = stack[1] file_test = Path(previous_stack_frame.filename) file_test = file_test.stem.replace(".py", "") pattern = args.get("pattern", None) disable_edited = args.get("disable_edited", False) if pattern is not None and not pattern.startswith("(?i)"): args["pattern"] = "(?i)" + pattern if "disable_edited" in args: del args["disable_edited"] reg = re.compile("(.*)") if not pattern == None: try: cmd = re.search(reg, pattern) try: cmd = cmd.group(1).replace("$", "").replace("\\", "").replace("^", "") except: pass try: CMD_LIST[file_test].append(cmd) except: CMD_LIST.update({file_test: [cmd]}) except: pass def decorator(func): if not disable_edited: bot.add_event_handler(func, events.MessageEdited(**args)) bot.add_event_handler(func, events.NewMessage(**args)) try: LOAD_PLUG[file_test].append(func) except Exception: LOAD_PLUG.update({file_test: [func]}) return func return decorator
def dev_cmd(pattern=None, **args): stack = inspect.stack() previous_stack_frame = stack[1] file_test = Path(previous_stack_frame.filename) file_test = file_test.stem.replace(".py", "") allow_sudo = args.get("allow_sudo", False) # get the pattern from the decorator if pattern is not None: if pattern.startswith("\#"): # special fix for snip.py args["pattern"] = re.compile(pattern) else: args["pattern"] = re.compile("\." + pattern) cmd = "." + pattern try: CMD_LIST[file_test].append(cmd) except: CMD_LIST.update({file_test: [cmd]}) args["outgoing"] = True # should this command be available for other users? if allow_sudo: args["from_users"] = list(Var.SUDO_USERS) # Mutually exclusive with outgoing (can only set one of either). args["incoming"] = True del args["allow_sudo"] # error handling condition check elif "incoming" in args and not args["incoming"]: args["outgoing"] = True # add blacklist chats, UB should not respond in these chats allow_edited_updates = False if "allow_edited_updates" in args and args["allow_edited_updates"]: allow_edited_updates = args["allow_edited_updates"] del args["allow_edited_updates"] # check if the plugin should listen for outgoing 'messages' is_message_enabled = True return events.NewMessage(**args)
def man_cmd(pattern=None, command=None, **args): args["func"] = lambda e: e.via_bot_id is None stack = inspect.stack() previous_stack_frame = stack[1] file_test = Path(previous_stack_frame.filename) file_test = file_test.stem.replace(".py", "") args.get("allow_sudo", False) if pattern is not None: if pattern.startswith(r"\#"): args["pattern"] = re.compile(pattern) elif pattern.startswith(r"^"): args["pattern"] = re.compile(pattern) cmd = pattern.replace("$", "").replace("^", "").replace("\\", "") try: CMD_LIST[file_test].append(cmd) except BaseException: CMD_LIST.update({file_test: [cmd]}) else: if len(CMD_HANDLER) == 2: catreg = "^" + CMD_HANDLER reg = CMD_HANDLER[1] elif len(CMD_HANDLER) == 1: catreg = "^\\" + CMD_HANDLER reg = CMD_HANDLER args["pattern"] = re.compile(catreg + pattern) if command is not None: cmd = reg + command else: cmd = ((reg + pattern).replace("$", "").replace("\\", "").replace( "^", "")) try: CMD_LIST[file_test].append(cmd) except BaseException: CMD_LIST.update({file_test: [cmd]}) if "allow_edited_updates" in args and args["allow_edited_updates"]: del args["allow_edited_updates"] return events.NewMessage(**args)
def obsq(pattern=None, **args): stack = inspect.stack() previous_stack_frame = stack[1] file_test = Path(previous_stack_frame.filename) file_test = file_test.stem.replace(".py", "") allow_sudo = args.get("allow_sudo", False) if pattern is not None: if pattern.startswith("\#"): args["pattern"] = re.compile(pattern) else: args["pattern"] = re.compile("\." + pattern) cmd = "." + pattern try: CMD_LIST[file_test].append(cmd) except: CMD_LIST.update({file_test: [cmd]}) args["outgoing"] = True if allow_sudo: args["from_users"] = list(Config.SUDO_USERS) args["incoming"] = True del args["allow_sudo"] elif "incoming" in args and not args["incoming"]: args["outgoing"] = True allow_edited_updates = False if "allow_edited_updates" in args and args["allow_edited_updates"]: allow_edited_updates = args["allow_edited_updates"] del args["allow_edited_updates"] is_message_enabled = True return events.NewMessage(**args)
def register(**args): """ Register a new event. """ stack = inspect.stack() previous_stack_frame = stack[1] file_test = Path(previous_stack_frame.filename) file_test = file_test.stem.replace(".py", "") allow_sudo = args.get("allow_sudo", False) pattern = args.get('pattern', None) disable_edited = args.get('disable_edited', False) groups_only = args.get('groups_only', False) trigger_on_fwd = args.get('trigger_on_fwd', False) disable_errors = args.get('disable_errors', False) # get the pattern from the decorator if pattern is not None: if pattern.startswith("\#"): # special fix for snip.py args["pattern"] = re.compile(pattern) else: args["pattern"] = re.compile("\." + pattern) cmd = "." + pattern try: CMD_LIST[file_test].append(cmd) except: CMD_LIST.update({file_test: [cmd]}) args["outgoing"] = True # should this command be available for other users? if allow_sudo: args["from_users"] = list(Var.SUDO_USERS) # Mutually exclusive with outgoing (can only set one of either). args["incoming"] = True del args["allow_sudo"] # error handling condition check elif "incoming" in args and not args["incoming"]: args["outgoing"] = True # add blacklist chats, UB should not respond in these chats allow_edited_updates = False if "allow_edited_updates" in args and args["allow_edited_updates"]: allow_edited_updates = args["allow_edited_updates"] del args["allow_edited_updates"] if pattern is not None and not pattern.startswith('(?i)'): args['pattern'] = '(?i)' + pattern if "disable_edited" in args: del args['disable_edited'] if "groups_only" in args: del args['groups_only'] if "disable_errors" in args: del args['disable_errors'] if "trigger_on_fwd" in args: del args['trigger_on_fwd'] def decorator(func): async def wrapper(check): if BOTLOG_CHATID: send_to = BOTLOG_CHATID if not trigger_on_fwd and check.fwd_from: return if groups_only and not check.is_group: await check.respond("`I don't think this is a group.`") return try: await func(check) # Thanks to @kandnub for this HACK. # Raise StopPropagation to Raise StopPropagation # This needed for AFK to working properly except events.StopPropagation: raise events.StopPropagation # This is a gay exception and must be passed out. So that it doesnt spam chats except KeyboardInterrupt: pass except BaseException: # Check if we have to disable it. # If not silence the log spam on the console, # with a dumb except. if not disable_errors: date = strftime("%Y-%m-%d %H:%M:%S", gmtime()) text = "**USERBOT-100101110 ERROR REPORT**\n" text += "Mostra il file a @100101110 se non sai risolvere\n" ftext = "========== DISCLAIMER ==========" ftext += "\nFile uploaded in logchat," ftext += "\nMostra il file dell'errore all'admin se non sai risolvere" ftext += "\n---------------------------------\n" ftext += "================================\n\n" ftext += "--------INIZIO LOG--------\n" ftext += "\nData: " + date ftext += "\nChat ID: " + str(check.chat_id) ftext += "\nSender ID: " + str(check.sender_id) ftext += "\n\nEvent Trigger:\n" ftext += str(check.text) ftext += "\n\nTraceback info:\n" ftext += str(format_exc()) ftext += "\n\nError text:\n" ftext += str(sys.exc_info()[1]) ftext += "\n\n--------FINE LOG--------" command = "git log --pretty=format:\"%an: %s\" -5" ftext += "\n\n\nUltimi 5 commit:\n" process = await asyncsubshell(command, stdout=asyncsub.PIPE, stderr=asyncsub.PIPE) stdout, stderr = await process.communicate() result = str(stdout.decode().strip()) \ + str(stderr.decode().strip()) ftext += result file = open("userbot-100101110_error.log", "w+") file.write(ftext) file.close() await check.client.send_file(send_to, "userbot-100101110_error.log", caption=text) remove("userbot-100101110_error.log") else: pass if not disable_edited: bot.add_event_handler(wrapper, events.MessageEdited(**args)) bot.add_event_handler(wrapper, events.NewMessage(**args)) return wrapper return decorator
def command(**args): stack = inspect.stack() previous_stack_frame = stack[1] file_test = Path(previous_stack_frame.filename) file_test = file_test.stem.replace(".py", "") if 1 == 0: return print("processing......") else: pattern = args.get("pattern", None) allow_sudo = args.get("allow_sudo", None) allow_edited_updates = args.get('allow_edited_updates', False) args["incoming"] = args.get("incoming", False) args["outgoing"] = True if bool(args["incoming"]): args["outgoing"] = False try: if pattern is not None and not pattern.startswith('(?i)'): args['pattern'] = '(?i)' + pattern except: pass reg = re.compile('(.*)') if not pattern == None: try: cmd = re.search(reg, pattern) try: cmd = cmd.group(1).replace("$", "").replace("\\", "").replace( "^", "") except: pass try: CMD_LIST[file_test].append(cmd) except: CMD_LIST.update({file_test: [cmd]}) except: pass if allow_sudo: args["from_users"] = list(Var.SUDO_USERS) # Mutually exclusive with outgoing (can only set one of either). args["incoming"] = True del allow_sudo try: del args["allow_sudo"] except: pass if "allow_edited_updates" in args: del args['allow_edited_updates'] def decorator(func): if allow_edited_updates: bot.add_event_handler(func, events.MessageEdited(**args)) bot.add_event_handler(func, events.NewMessage(**args)) try: LOAD_PLUG[file_test].append(func) except: LOAD_PLUG.update({file_test: [func]}) return func return decorator
def command(**args): args["func"] = lambda e: e.via_bot_id is None stack = inspect.stack() previous_stack_frame = stack[1] file_test = Path(previous_stack_frame.filename) file_test = file_test.stem.replace(".py", "") pattern = args.get("pattern", None) allow_sudo = args.get("allow_sudo", None) allow_edited_updates = args.get("allow_edited_updates", False) args["incoming"] = args.get("incoming", False) args["outgoing"] = True if bool(args["incoming"]): args["outgoing"] = False try: if pattern is not None and not pattern.startswith("(?i)"): args["pattern"] = "(?i)" + pattern except BaseException: pass reg = re.compile("(.*)") if pattern is not None: try: cmd = re.search(reg, pattern) try: cmd = cmd.group(1).replace("$", "").replace("\\", "").replace("^", "") except BaseException: pass try: CMD_LIST[file_test].append(cmd) except BaseException: CMD_LIST.update({file_test: [cmd]}) except BaseException: pass if allow_sudo: args["from_users"] = list(Config.SUDO_USERS) # Mutually exclusive with outgoing (can only set one of either). args["incoming"] = True del allow_sudo try: del args["allow_sudo"] except BaseException: pass args["blacklist_chats"] = True black_list_chats = list(Config.UB_BLACK_LIST_CHAT) if len(black_list_chats) > 0: args["chats"] = black_list_chats if "allow_edited_updates" in args: del args["allow_edited_updates"] def decorator(func): if allow_edited_updates: bot.add_event_handler(func, events.MessageEdited(**args)) bot.add_event_handler(func, events.NewMessage(**args)) try: LOAD_PLUG[file_test].append(func) except BaseException: LOAD_PLUG.update({file_test: [func]}) return func return decorator
def register(**args): args["func"] = lambda e: e.via_bot_id is None """ Register a new event. """ stack = inspect.stack() previous_stack_frame = stack[1] file_test = Path(previous_stack_frame.filename) file_test = file_test.stem.replace(".py", "") pattern = args.get('pattern', None) disable_edited = args.get('disable_edited', True) allow_sudo = args.get("allow_sudo", False) if pattern is not None and not pattern.startswith('(?i)'): args['pattern'] = '(?i)' + pattern if "disable_edited" in args: del args['disable_edited'] reg = re.compile('(.*)') if not pattern == None: try: cmd = re.search(reg, pattern) try: cmd = cmd.group(1).replace("$", "").replace("\\", "").replace("^", "") except: pass try: CMD_LIST[file_test].append(cmd) except: CMD_LIST.update({file_test: [cmd]}) except: pass if allow_sudo: args["from_users"] = list(Config.SUDO_USERS) # Mutually exclusive with outgoing (can only set one of either). args["incoming"] = True del args["allow_sudo"] # error handling condition check elif "incoming" in args and not args["incoming"]: args["outgoing"] = True # add blacklist chats, UB should not respond in these chats args["blacklist_chats"] = True black_list_chats = list(Config.UB_BLACK_LIST_CHAT) if len(black_list_chats) > 0: args["chats"] = black_list_chats def decorator(func): if not disable_edited: bot.add_event_handler(func, events.MessageEdited(**args)) bot.add_event_handler(func, events.NewMessage(**args)) try: LOAD_PLUG[file_test].append(func) except Exception as e: LOAD_PLUG.update({file_test: [func]}) return func return decorator
def petercordbot(pattern=None, command=None, **args): args["func"] = lambda e: e.via_bot_id is None stack = inspect.stack() previous_stack_frame = stack[1] file_test = Path(previous_stack_frame.filename) file_test = file_test.stem.replace(".py", "") allow_sudo = args.get("allow_sudo", False) # get the pattern from the decorator if pattern is not None: if pattern.startswith(r"\#"): # special fix for snip.py args["pattern"] = re.compile(pattern) elif pattern.startswith(r"^"): args["pattern"] = re.compile(pattern) cmd = pattern.replace("$", "").replace("^", "").replace("\\", "") try: CMD_LIST[file_test].append(cmd) except BaseException: CMD_LIST.update({file_test: [cmd]}) else: if len(CUSTOM_HELP) == 2: PETERCORDreg = "^" + CUSTOM_HELP reg = CUSTOM_HELP[1] elif len(CUSTOM_HELP) == 1: PETERCORDreg = "^\\" + CUSTOM_HELP reg = CUSTOM_HELP args["pattern"] = re.compile(PETERCORDreg + pattern) if command is not None: cmd = reg + command else: cmd = ( (reg + pattern).replace( "$", "").replace( "\\", "").replace( "^", "")) try: CMD_LIST[file_test].append(cmd) except BaseException: CMD_LIST.update({file_test: [cmd]}) args["outgoing"] = True # should this command be available for other users? if allow_sudo: args["from_users"] = list(SUDO_USERS) # Mutually exclusive with outgoing (can only set one of either). args["incoming"] = True del args["allow_sudo"] # error handling condition check elif "incoming" in args and not args["incoming"]: args["outgoing"] = True # add blacklist chats, UB should not respond in these chats args["blacklist_chats"] = True black_list_chats = list(UB_BLACK_LIST_CHAT) if black_list_chats: args["chats"] = black_list_chats # add blacklist chats, UB should not respond in these chats if "allow_edited_updates" in args and args["allow_edited_updates"]: del args["allow_edited_updates"] # check if the plugin should listen for outgoing 'messages' return events.NewMessage(**args)
def command(**args): args["func"] = lambda e: e.via_bot_id is None stack = inspect.stack() previous_stack_frame = stack[1] file_test = Path(previous_stack_frame.filename) file_test = file_test.stem.replace(".py", "") if 1 == 0: return print("stupidity at its best") else: pattern = args.get("pattern", None) allow_sudo = args.get("allow_sudo", None) allow_edited_updates = args.get('allow_edited_updates', False) args["incoming"] = args.get("incoming", False) args["outgoing"] = True if bool(args["incoming"]): args["outgoing"] = False try: if pattern is not None and not pattern.startswith('(?i)'): args['pattern'] = '(?i)' + pattern except: pass reg = re.compile('(.*)') if not pattern == None: try: cmd = re.search(reg, pattern) try: cmd = cmd.group(1).replace("$", "").replace("\\", "").replace( "^", "") except: pass try: CMD_LIST[file_test].append(cmd) except: CMD_LIST.update({file_test: [cmd]}) except: pass if allow_sudo: args["from_users"] = list(Config.SUDO_USERS) args["incoming"] = True del args["allow_sudo"] # error handling condition check elif "incoming" in args and not args["incoming"]: args["outgoing"] = True # add blacklist chats, UB should not respond in these chats args["blacklist_chats"] = True black_list_chats = list(Config.UB_BLACK_LIST_CHAT) if len(black_list_chats) > 0: args["chats"] = black_list_chats if "allow_edited_updates" in args: del args['allow_edited_updates'] def decorator(func): if allow_edited_updates: bot.add_event_handler(func, events.MessageEdited(**args)) bot.add_event_handler(func, events.NewMessage(**args)) try: LOAD_PLUG[file_test].append(func) except: LOAD_PLUG.update({file_test: [func]}) return func return decorator
def javes05(**args): """ Register a new event. """ stack = inspect.stack() previous_stack_frame = stack[1] file_test = Path(previous_stack_frame.filename) file_test = file_test.stem.replace(".py", "") allow_sudo = args.get("allow_sudo", False) pattern = args.get('pattern', None) disable_edited = args.get('disable_edited', True) groups_only = args.get('groups_only', False) trigger_on_fwd = args.get('trigger_on_fwd', False) disable_errors = args.get('disable_errors', False) if pattern is not None: if pattern.startswith("\#"): args["pattern"] = re.compile(pattern) else: args["pattern"] = re.compile("\." + pattern) cmd = "." + pattern try: CMD_LIST[file_test].append(cmd) except: CMD_LIST.update({file_test: [cmd]}) args["outgoing"] = True if allow_sudo: args["from_users"] = list(Config.SUDO_USERS) args["incoming"] = True del args["allow_sudo"] elif "incoming" in args and not args["incoming"]: args["outgoing"] = True allow_edited_updates = False if "allow_edited_updates" in args and args["allow_edited_updates"]: allow_edited_updates = args["allow_edited_updates"] del args["allow_edited_updates"] if pattern is not None and not pattern.startswith('(?i)'): args['pattern'] = '(?i)' + pattern if "disable_edited" in args: del args['disable_edited'] if "groups_only" in args: del args['groups_only'] if "disable_errors" in args: del args['disable_errors'] if "trigger_on_fwd" in args: del args['trigger_on_fwd'] def decorator(func): async def wrapper(check): if LOGSPAMMER: send_to = BOTLOG_CHATID if not trigger_on_fwd and check.fwd_from: return if groups_only and not check.is_group: await check.respond("`I don't think this is a group.`") return try: await func(check) except events.StopPropagation: raise events.StopPropagation except KeyboardInterrupt: pass except BaseException: if not disable_errors: date = strftime("%Y-%m-%d %H:%M:%S", gmtime()) text = "**JAVES ERROR REPORT**\n" text += "Send this to @rekcah05 if you cant find issue\n" ftext = "========== DISCLAIMER ==========" ftext += "\nThis file uploaded only logchat," ftext += "\nreport to admin this error if you cant find any issue" ftext += "\n---------------------------------\n" ftext += "================================\n\n" ftext += "--------BEGIN LOG--------\n" ftext += "\nDate: " + date ftext += "\nChat ID: " + str(check.chat_id) ftext += "\nSender ID: " + str(check.sender_id) ftext += "\n\nEvent Trigger:\n" ftext += str(check.text) ftext += "\n\nTraceback info:\n" ftext += str(format_exc()) ftext += "\n\nError text:\n" ftext += str(sys.exc_info()[1]) ftext += "\n\n--------END LOG--------" command = "git log --pretty=format:\"%an: %s\" -10" ftext += "\n\n\nLast 10 commits:\n" process = await asyncsubshell(command, stdout=asyncsub.PIPE, stderr=asyncsub.PIPE) stdout, stderr = await process.communicate() result = str(stdout.decode().strip()) \ + str(stderr.decode().strip()) ftext += result file = open("javes_error.log", "w+") file.write(ftext) file.close() await check.client.send_file(send_to, "javes_error.log", caption=text) remove("javes_error.log") else: pass if not disable_edited: bot.add_event_handler(wrapper, events.MessageEdited(**args)) bot.add_event_handler(wrapper, events.NewMessage(**args)) return wrapper return decorator
def register(**args): """ Creare nuovo evento. """ stack = inspect.stack() previous_stack_frame = stack[1] file_test = Path(previous_stack_frame.filename) file_test = file_test.stem.replace(".py", "") allow_sudo = args.get("allow_sudo", False) pattern = args.get('pattern', None) disable_edited = args.get('disable_edited', False) groups_only = args.get('groups_only', False) trigger_on_fwd = args.get('trigger_on_fwd', False) disable_errors = args.get('disable_errors', False) if pattern is not None: if pattern.startswith("\#"): args["pattern"] = re.compile(pattern) else: args["pattern"] = re.compile("\." + pattern) cmd = "." + pattern try: CMD_LIST[file_test].append(cmd) except: CMD_LIST.update({file_test: [cmd]}) args["outgoing"] = True if allow_sudo: args["from_users"] = list(Var.SUDO_USERS) args["incoming"] = True del args["allow_sudo"] elif "incoming" in args and not args["incoming"]: args["outgoing"] = True allow_edited_updates = False if "allow_edited_updates" in args and args["allow_edited_updates"]: allow_edited_updates = args["allow_edited_updates"] del args["allow_edited_updates"] if pattern is not None and not pattern.startswith('(?i)'): args['pattern'] = '(?i)' + pattern if "disable_edited" in args: del args['disable_edited'] if "groups_only" in args: del args['groups_only'] if "disable_errors" in args: del args['disable_errors'] if "trigger_on_fwd" in args: del args['trigger_on_fwd'] def decorator(func): async def wrapper(check): if BOTLOG_CHATID: send_to = BOTLOG_CHATID if not trigger_on_fwd and check.fwd_from: return if groups_only and not check.is_group: await check.respond("`Ma ti sembra un gruppo?`") return try: await func(check) except events.StopPropagation: raise events.StopPropagation except KeyboardInterrupt: pass except BaseException: if not disable_errors: date = strftime("%Y-%m-%d %H:%M:%S", gmtime()) text = "**AbraderUserbot ERROR REPORT**\n" text += "Mostra il file a @Abradere se non sai risolvere\n" ftext = "========== ATTENZIONE ==========" ftext += "\nFile inoltrato nella LOG CHAT," ftext += "\nMostra il file dell'errore all'admin se non sai risolvere." ftext += "\n---------------------------------\n" ftext += "================================\n\n" ftext += "--------INIZIO LOG--------\n" ftext += "\nData: " + date ftext += "\nChat ID: " + str(check.chat_id) ftext += "\nSender ID: " + str(check.sender_id) ftext += "\n\nEvent Trigger:\n" ftext += str(check.text) ftext += "\n\nTraceback info:\n" ftext += str(format_exc()) ftext += "\n\nError text:\n" ftext += str(sys.exc_info()[1]) ftext += "\n\n--------FINE LOG--------" command = "git log --pretty=format:\"%an: %s\" -5" ftext += "\n\n\nUltimi 5 commit:\n" process = await asyncsubshell(command, stdout=asyncsub.PIPE, stderr=asyncsub.PIPE) stdout, stderr = await process.communicate() result = str(stdout.decode().strip()) \ + str(stderr.decode().strip()) ftext += result file = open("AbradereUserbot_error.log", "w+") file.write(ftext) file.close() await check.client.send_file(send_to, "AbradereUserbot_error.log", caption=text) remove("AbradereUserbot_error.log") else: pass if not disable_edited: bot.add_event_handler(wrapper, events.MessageEdited(**args)) bot.add_event_handler(wrapper, events.NewMessage(**args)) return wrapper return decorator
def man_cmd( pattern: str = None, allow_sudo: bool = True, group_only: bool = False, admins_only: bool = False, private_only: bool = False, disable_edited: bool = False, forword=False, command: str = None, **args, ): args["func"] = lambda e: e.via_bot_id is None stack = inspect.stack() previous_stack_frame = stack[1] file_test = Path(previous_stack_frame.filename) file_test = file_test.stem.replace(".py", "") if "disable_edited" in args: del args["disable_edited"] args["blacklist_chats"] = True black_list_chats = list(BL_CHAT) if len(black_list_chats) > 0: args["chats"] = black_list_chats if pattern is not None: global man_reg global sudo_reg if (pattern.startswith(r"\#") or not pattern.startswith(r"\#") and pattern.startswith(r"^")): man_reg = sudo_reg = re.compile(pattern) else: man_ = "\\" + CMD_HANDLER sudo_ = "\\" + SUDO_HANDLER man_reg = re.compile(man_ + pattern) sudo_reg = re.compile(sudo_ + pattern) if command is not None: cmd1 = man_ + command cmd2 = sudo_ + command else: cmd1 = ((man_ + pattern).replace("$", "").replace("\\", "").replace( "^", "")) cmd2 = ((sudo_ + pattern).replace("$", "").replace( "\\", "").replace("^", "")) try: CMD_LIST[file_test].append(cmd1) except BaseException: CMD_LIST.update({file_test: [cmd1]}) def decorator(func): async def wrapper(event): chat = event.chat if admins_only: if event.is_private: return await edit_delete( event, "**Perintah ini hanya bisa digunakan di grup.**", 10) if not (chat.admin_rights or chat.creator): return await edit_delete( event, f"**Maaf anda bukan admin di {chat.title}**", 10) if group_only and not event.is_group: return await edit_delete( event, "**Perintah ini hanya bisa digunakan di grup.**", 10) if private_only and not event.is_private: return await edit_delete( event, "**Perintah ini hanya bisa digunakan di private chat.**", 10) try: await func(event) # Credits: @mrismanaziz # FROM Man-Userbot <https://github.com/mrismanaziz/Man-Userbot> # t.me/SharingUserbot & t.me/Lunatic0de except MessageNotModifiedError as er: LOGS.error(er) except MessageIdInvalidError as er: LOGS.error(er) except BotInlineDisabledError: await edit_delete( event, "**Silahkan aktifkan mode Inline untuk bot**", 10) except ChatSendStickersForbiddenError: await edit_delete( event, "**Tidak dapat mengirim stiker di obrolan ini**", 10) except BotResponseTimeoutError: await edit_delete( event, "**The bot didnt answer to your query in time**") except ChatSendMediaForbiddenError: await edit_delete( event, "**Tidak dapat mengirim media dalam obrolan ini**", 10) except AlreadyInConversationError: await edit_delete( event, "**Percakapan sudah terjadi dengan obrolan yang diberikan. coba lagi setelah beberapa waktu.**", ) except ChatSendInlineForbiddenError: await edit_delete( event, "**Tidak dapat mengirim pesan inline dalam obrolan ini.**", 10, ) except FloodWaitError as e: LOGS.error( f"Telah Terjadi flood wait error tunggu {e.seconds} detik dan coba lagi" ) await event.delete() await asyncio.sleep(e.seconds + 5) except events.StopPropagation: raise events.StopPropagation except KeyboardInterrupt: pass except BaseException as e: LOGS.exception(e) if bot: if not disable_edited: bot.add_event_handler( wrapper, events.MessageEdited(**args, outgoing=True, pattern=man_reg), ) bot.add_event_handler( wrapper, events.NewMessage(**args, outgoing=True, pattern=man_reg)) if bot: if allow_sudo: if not disable_edited: bot.add_event_handler( wrapper, events.MessageEdited(**args, from_users=list(SUDO_USERS), pattern=sudo_reg), ) bot.add_event_handler( wrapper, events.NewMessage(**args, from_users=list(SUDO_USERS), pattern=sudo_reg), ) if MAN2: if not disable_edited: MAN2.add_event_handler( wrapper, events.MessageEdited(**args, outgoing=True, pattern=man_reg), ) MAN2.add_event_handler( wrapper, events.NewMessage(**args, outgoing=True, pattern=man_reg)) if MAN3: if not disable_edited: MAN3.add_event_handler( wrapper, events.MessageEdited(**args, outgoing=True, pattern=man_reg), ) MAN3.add_event_handler( wrapper, events.NewMessage(**args, outgoing=True, pattern=man_reg)) if MAN4: if not disable_edited: MAN4.add_event_handler( wrapper, events.MessageEdited(**args, outgoing=True, pattern=man_reg), ) MAN4.add_event_handler( wrapper, events.NewMessage(**args, outgoing=True, pattern=man_reg)) if MAN5: if not disable_edited: MAN5.add_event_handler( wrapper, events.MessageEdited(**args, outgoing=True, pattern=man_reg), ) MAN5.add_event_handler( wrapper, events.NewMessage(**args, outgoing=True, pattern=man_reg)) try: LOAD_PLUG[file_test].append(wrapper) except Exception: LOAD_PLUG.update({file_test: [wrapper]}) return wrapper return decorator