Files

51 lines
1.3 KiB
Python

import os
import asyncio
import logging
from config import Config
from modules.stars_bot import TelegramStarsBot
logger = logging.getLogger(__name__)
def setup_logging():
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s | %(levelname)s | %(name)s | %(message)s",
handlers=[
logging.FileHandler("logs/bot.log", encoding="utf-8"),
logging.StreamHandler(),
],
)
async def main():
try:
config = Config()
stars_bot = TelegramStarsBot(config)
await stars_bot.start()
except (ValueError, TypeError) as e:
logger.critical(f"Ошибка в конфигурации или при запуске: {e}")
raise
except Exception as e:
logger.critical(f"Фатальная ошибка при запуске бота: {e}")
raise
if __name__ == "__main__":
os.makedirs("logs", exist_ok=True)
setup_logging()
try:
asyncio.run(main())
except KeyboardInterrupt:
logger.info("Получен сигнал остановки, бот завершает работу")
except Exception:
logger.exception("Бот завершился из-за необработанной ошибки")
raise