import os import sys import traceback from aiogram import types, Router, F from aiogram.filters import Command from app.bot.routers.tonconnect import router as tonconnect_router from app.core._utils.tg_process_template import tg_process_template from app.core.logger import logger main_router = Router() async def t_home_menu(__msg, **extra): memory, user, db_session, chat_wrap = extra['memory'], extra['user'], extra['db_session'], extra['chat_wrap'] if extra.get('state'): await extra['state'].clear() return await tg_process_template( chat_wrap, user.translated('home_menu'), message_id=__msg.message.message_id if isinstance(__msg, types.CallbackQuery) else None ) main_router.message.register(t_home_menu, Command('start')) main_router.callback_query.register(t_home_menu, F.data == 'home') main_router.include_routers(tonconnect_router) closing_router = Router() @closing_router.message() async def t_index(message: types.Message, **extra): return await message.answer(extra['user'].translated('error_unknownCommand'), parse_mode='html') main_router.include_routers(closing_router) @main_router.error() async def t_index_error(err_event: types.ErrorEvent, **extra): try: raise err_event.exception except BaseException as e: exc_type, exc_obj, exc_tb = sys.exc_info() try: filename = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] except: filename = None logger.error(f"""Error: {e} -/ {exc_type} {exc_obj} {filename} {exc_tb.tb_frame.f_lineno}""") traceback.print_tb(exc_tb)