diff --git a/main.py b/main.py new file mode 100644 index 0000000..544d331 --- /dev/null +++ b/main.py @@ -0,0 +1,41 @@ +import asyncio +import logging + +from config import Config +from telegram import TelegramStarsBot + +logger = logging.getLogger(__name__) + + +async def main(): + try: + config = Config() + bot = TelegramStarsBot(config) + await bot.start() + + except (ValueError, TypeError) as e: + logger.critical(f"Ошибка в конфигурации или при запуске: {e}") + + except Exception as e: + logger.critical(f"Фатальная ошибка при запуске бота: {e}") + + +if __name__ == "__main__": + logging.basicConfig( + level=logging.INFO, + format="%(asctime)s | %(levelname)s | %(name)s | %(message)s", + handlers=[ + logging.FileHandler("bot.log", encoding="utf-8"), + logging.StreamHandler(), + ], + ) + + try: + asyncio.run(main()) + + except KeyboardInterrupt: + logger.info("Получен сигнал остановки, бот завершает работу") + + except Exception: + logger.exception("Бот завершился из-за необработанной ошибки") + raise