Spaces:
Runtime error
Runtime error
import os | |
import asyncio | |
import logging | |
from aiogram import Bot, Dispatcher | |
from app.database.models import async_main | |
from app.handlers.user.router import user_router | |
from app.handlers.admin.router import admin_router | |
BOT_TOKEN = os.environ.get("BOT_TOKEN") | |
logging.basicConfig( | |
level=logging.INFO, | |
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' | |
) | |
logger = logging.getLogger(__name__) | |
async def shutdown(bot: Bot): | |
"""Выключение""" | |
logger.info("Выключение бота...") | |
await bot.close() | |
logger.info("Бот успешно выключен") | |
async def main(): | |
try: | |
await async_main() | |
bot = Bot(token=BOT_TOKEN) | |
dp = Dispatcher() | |
dp.include_router(user_router) | |
dp.include_router(admin_router) | |
logger.info("Бот запускается...") | |
await dp.start_polling(bot) | |
except Exception as e: | |
logger.error(f"Error in main function: {e}") | |
await shutdown(bot) | |
raise | |
if __name__ == '__main__': | |
try: | |
asyncio.run(main()) | |
except (KeyboardInterrupt, RuntimeError) as e: | |
logger.warning(f"Бот выключен: {type(e).__name__}") | |
except Exception as e: | |
logger.error(f"Внезапная ошибка: {e}") | |