"""Main entry point for the async bot.""" import asyncio import os from bot.bot import create_bot from bot.handlers.scheduler import setup_scheduler from bot.logger import setup_logging, get_logger # Setup logging log_level = os.getenv("LOG_LEVEL", "INFO") setup_logging(log_level) logger = get_logger(__name__) async def main() -> None: """Main function to start the bot and scheduler.""" logger.info("Starting bot...") try: # Create bot bot = await create_bot() logger.info("Bot created successfully") # Setup scheduler scheduler = setup_scheduler(bot) logger.info("Scheduler configured") # Start scheduler scheduler.start() logger.info("Scheduler started") # Start bot polling logger.info("Starting bot polling...") await bot.infinity_polling(none_stop=True) except KeyboardInterrupt: logger.info("Bot stopped by user") except Exception as e: logger.error(f"Fatal error: {e}", exc_info=True) raise if __name__ == "__main__": asyncio.run(main())