""" Точка входа для Telegram бота Бот работает только через API, без прямого доступа к БД """ import asyncio import logging import sys import os # Добавляем текущую директорию в PYTHONPATH sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) from bot_config import config def setup_logging(): """Настройка системы логирования""" logging.basicConfig( level=getattr(logging, config.LOG_LEVEL), format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', handlers=[ logging.StreamHandler(sys.stdout), logging.FileHandler('bot.log') if config.APP_ENV == 'production' else logging.NullHandler() ] ) async def main(): """Основная функция запуска бота""" # Настраиваем логирование setup_logging() logger = logging.getLogger(__name__) try: # Проверяем конфигурацию config.validate() logger.info(f"Конфигурация проверена. Режим: {config.APP_ENV}") logger.info(f"API URL: {config.API_BASE_URL}") # Проверяем доступность API from api_client import api_client async with api_client: api_available = await api_client.health_check() if not api_available: logger.error("API недоступен! Проверьте, что API сервер запущен.") return logger.info("API доступен, запускаем бота...") # Запускаем бота import telegram_bot await telegram_bot.main() except KeyboardInterrupt: logger.info("Получен сигнал остановки") except Exception as e: logger.error(f"Критическая ошибка: {e}") sys.exit(1) if __name__ == "__main__": asyncio.run(main())