from apscheduler.schedulers.blocking import BlockingScheduler from parser import fetch_schedule from db import init_db, save_schedule from datetime import date def daily_job(): # Ініціалізуємо базу даних (створюємо таблиці, якщо їх нема) init_db() # Отримуємо повний розклад з сайту (Kyiv→Nizhyn) entries = fetch_schedule(use_local=False) # Діагностика: виведемо кількість поїздів та список зупинок print(f"DEBUG: знайдено поїздів: {len(entries)}") for e in entries: print(f"DEBUG: Поїзд {e['train_number']} днів {e['days']}, станцій: {len(e['times'])}") # Зберігаємо розклад у БД (додає поїзди, станції та часи) save_schedule('kyiv_nizhyn', entries) print(f"{date.today().isoformat()}: збережено розклад для {len(entries)} поїздів.") if __name__ == '__main__': # Налаштування планувальника: щодня о 05:00 (Europe/Kyiv) sched = BlockingScheduler(timezone='Europe/Kyiv') sched.add_job(daily_job, 'cron', hour=5, minute=0) # Одноразове оновлення та діагностика при старті daily_job() # Запуск планувальника sched.start()