/
zimaaadev
/
Parser
Обзор
Документация
Войти
/
zimaaadev
/
Parser
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
app.py
52 строки
2 KB
zimaaadev
Ищет природные объекты, набнрежные и т.п.
24 дек 2025, 17:18
24 дек 2025, 17:18
2d73bc2
Код
Авторство
О чём код?
# app.py import asyncio import logging import os import sys if hasattr(sys.stdout, "reconfigure"): sys.stdout.reconfigure(encoding='utf-8') # ✅ Отступ! os.environ["PYTHONIOENCODING"] = "utf-8" from pathlib import Path from config import TELEGRAM_BOT_TOKEN from bot.bot import run_bot from parsers.main_async import main_async from bot.utils.database import init_db from utils.cache import AsyncSQLiteCache from telegram.ext import ApplicationBuilder, JobQueue # Настройка логов logging.basicConfig(level=logging.INFO, format="%(asctime)s:%(name)s:%(levelname)s: %(message)s") logger = logging.getLogger(__name__) async def main(): logger.info("🚀 Запуск системы...") logger.info(f"TELEGRAM_BOT_TOKEN: {TELEGRAM_BOT_TOKEN[:10]}...") # === Инициализация кэша === cache = AsyncSQLiteCache("request_cache.sqlite") await cache.init() # ✅ Создаёт таблицу cache, если её нет logger.info("✅ Кэш инициализирован") # === Инициализация БД === await init_db() logger.info("✅ База данных инициализирована") # Создаём директорию для локальных файлов data_dir = Path("data") data_dir.mkdir(exist_ok=True) # Создаём очередь queue = asyncio.Queue() logger.info("✅ Асинхронная очередь инициализирована") # Запускаем бота и парсер параллельно await asyncio.gather( run_bot(), main_async(queue) ) if __name__ == "__main__": try: asyncio.run(main()) except KeyboardInterrupt: logger.info("🛑 Приложение остановлено")