Скрипт, позволяющий сгенерировать ics-файл для расписания конкретной группы, или же для занятий указанных групп конкретного преподавателя. Файл подобного формата можно импортировать в большинство онлайн-календарей. Скрипт способен обрабатывать ситуации начала семестра не с понедельника.
Для простоты работы, считается что большая перемена всегда происходит после второй пары. Скрипт генерирует занятие, которое повторяется 5 раз с периодичностью в 4 недели для каждой из недель (1-го числителя, 1-го знаменателя, 2-го числителя, 2-го знаменателя). Иными словами, если занятие проходит каждую неделю, вместо создания одного события, которое повторяется 20 раз каждую неделю, будет создано 4 события на 4 чередующиеся недели, каждое из которых повторяется 5 раз.
Событие повторяется 5 раз, а не 4, чтобы занятия попали и на 17-18ую недели. Можно генерировать и 16-недельное расписание, для этого необходимо изменить значение переменной repeat_number
на 4
.
Для работы скрипта требуется сторонняя библиотека icalendar
, которую можно установить командой:
pip install icalendar
Перед запуском скрипта, необходимо указать режим работы (для студента или для преподавателя), а также группу/группы, преподавателя и дату начала семестра (см. "Область конфигурации" скрипта).
В режиме работы для студента скрипт парсит расписание только одной группы и создает расписание всех её занятий.
В режиме работы для преподавателя скрипт парсит расписание всех указанных групп и создает расписание тех занятий, которые ведет указанный преподаватель у этих групп.
В скрипте можно настроить длину академического часа, а также длинной и короткой перемен.
Кроме того, в скрипте можно указать словарь для замены длинных названий на удобные пользователю аббревиатуры.
При импорте не в дефолтный календарь сервиса Google Calendar, напоминания о событии не добавляются. При импорте в дефолтный календарь все работает как надо, т.е. создаются напоминания за 15 минут до начала занятия. Это проблема Google Calendar, а не скрипта, см. посты тут, тут и тут.