async def debug_logger( message: types.Message, exception: Exception = None, descriptions: list = 'error', ): dispatcher = Dispatcher.get_current() bot = dispatcher.bot url = '' if hasattr(message, 'chat') and message.chat.type != "private": # ~ url = message.url url = message.link('link', as_html = False) text = list() text.append( u" ".join([ u" ".join([escape_md("#" + d) for d in descriptions]), url, ]) ) text.append('') text.append('```') text.append(json.dumps(message.to_python(), indent=2)) text.append('```') text.append('') text.append('```') text.append(json.dumps(repr(exception), indent=2)) text.append('```') try: await bot.send_message( chat_id = bot.users['special']['debug'], text = '\n'.join(text), disable_notification = True, parse_mode = "MarkdownV2", ) except KeyError: logging.debug(key_error)
def convert(message: types.Message): data = orjson.loads(orjson.dumps(message.to_python())) data = { key: datetime.fromtimestamp(value).isoformat() if key == "date" else value for key, value in data.items() } if data.get("edit_date") is not None: data["edit_date"] = message.edit_date data["date"] = message.date return data
def clean_message(message: types.Message) -> dict: dict_message = message.to_python() for key in list(dict_message.keys()): if key == "forward_from": del dict_message[key]["is_bot"] continue if key == "from": del dict_message[key]["is_bot"] continue if key == "text": continue del dict_message[key] return dict_message