Об этом проекте

WATcalendars — это проект, который ежедневно посещает сайты восьми факультетов Военного университета технологий, разбирает опубликованные расписания занятий и сохраняет их в формате iCalendar (.ics). Это позволяет студентам подписаться на расписание в Apple Calendar, Google, Outlook или Thunderbird и всегда иметь его в актуальном состоянии. Для студентов: достаточно зайти на watcalendars.byst.re, ввести код группы и нажать «Добавить в календарь». Сайт также предлагает просмотр групп по факультетам. Для разработчиков: проект написан на Python (требуется 3.9+). Установка через pip и Playwright (Firefox/Chromium) для факультетов за файрволом. Команда `watcal` поддерживает вывод списка, запуск для выбранных факультетов, определение групп, генерацию календаря, список сотрудников и перестройку индекса. Доступны параметры отладки, принудительное указание семестра и логирование в файл. Архитектура основана на общем конвейере (получение, разбор, сохранение) с модулями для каждого факультета. Добавление нового факультета требует только одного файла спецификации и регистрации. Данные получаются из различных источников: HTTP для WCY и WIM, браузер для остальных (Plansoft за Imperva), а WIG использует файлы .docx. Проект использует публичный API USOS, но расписания там пусты, поэтому необходим скрейпинг. Сайт размещён на GitHub Pages, а файлы .ics доступны по тому же адресу. Автоматизация через GitHub Actions ежедневно в полночь по UTC. Тесты (79) проверяют корректность спецификаций. Лицензия MIT.