def decorator(func): async def wrapper(check): if check.edit_date and check.is_channel and not check.is_group: return if group_only and not check.is_group: return if check.via_bot_id and not insecure and check.out: # Ignore outgoing messages via inline bots for security reasons return try: await func(check) except events.StopPropagation: raise events.StopPropagation except KeyboardInterrupt: pass except BaseException as e: print(e) else: pass if not disable_edited: ubot.add_event_handler(wrapper, events.MessageEdited(**args)) ubot.add_event_handler(wrapper, events.NewMessage(**args)) return wrapper
def decorator(func): async def wrapper(check): if check.edit_date and check.is_channel and not check.is_group: # Messages sent in channels can be edited by other users. # Ignore edits that take place in channels. return if group_only and not check.is_group: await check.respond("`Are you sure this is a group?`") return if check.via_bot_id and not insecure and check.out: # Ignore outgoing messages via inline bots for security reasons return try: await func(check) # # HACK HACK HACK # Raise StopPropagation to Raise StopPropagation # This needed for AFK to working properly # TODO # Rewrite events to not passing all exceptions # 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 as e: LOGS.exception(e) # Log the error in console # Check if we have to disable error logging message. if not disable_errors: date = strftime("%Y-%m-%d %H:%M:%S", gmtime()) text = "**Sorry, I encountered a error!**\n" link = "[https://t.me/lillySupport](Support Chat)" text += "If you wanna you can report it" text += f"- just forward this message to {link}.\n" text += "I won't log anything except the fact of error and date\n" ftext = "\nDisclaimer:\nThis file uploaded ONLY here, " ftext += "we logged only fact of error and date, " ftext += "we respect your privacy, " ftext += "you may not report this error if you've " ftext += "any confidential data here, no one will see your data " ftext += "if you choose not to do so.\n\n" ftext += "--------BEGIN USERBOT TRACEBACK LOG--------" ftext += "\nDate: " + date ftext += "\nGroup 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 USERBOT TRACEBACK LOG--------" command = "git log --pretty=format:\"%an: %s\" -5" ftext += "\n\n\nLast 5 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("error.log", "w+") file.write(ftext) file.close() if BOTLOG: await check.client.send_file( BOTLOG_CHATID, "error.log", caption=text, ) else: return remove("error.log") else: pass if not disable_edited: ubot.add_event_handler(wrapper, events.MessageEdited(**args)) ubot.add_event_handler(wrapper, events.NewMessage(**args)) return wrapper