Сервис выступает прослойкой между REST API колледжа и пользователем. Он запрашивает данные API, агрегирует их в быстрый локальный кэш, высчитывает чётность недели по иркутскому времени и подсвечивает замены. Пользователи могут выбрать удобный вид ответа — лаконичный текст с эмодзи или сгенерированную картинку.
Automated Schedule & Alert Service
Telegram-бот для автоматического получения расписания и замен с поддержкой текстового вывода и генерации графических карточек.
// АРХИТЕКТУРА И МОДУЛИ
Парсер REST API & Локальный кэш
Модуль взаимодействия с API колледжа (http://scheduleapi.iek.irk.ru/API/). Запрашивает расписание групп, чётность недели (parityWeek) и сохраняет атомарный кэш cache/{курс}/{группа}.
Текущая неделя: Нечётная (parityWeek: 1)
Выбранная группа: 3-ИС (в users_group)
Формат выдачи: Моноширинный текст (standart)
Кэш API: < 0.12s (scheduleapi.iek.irk.ru)
Выберите команду в меню ниже: 08:00 AM
Форматирование расписания
Преобразует данные API в выровненный моноширинный текст. Переносит длинные названия предметов (до 19 символов), подставляет расписание звонков по дням недели и выделяет замены.
Авто-перенос длинных слов: split_text(19ch)
1 $ Разработка моб. 08:30-10:00
приложений 2К-309
Луковников О.О.
————————————————————————————————————
2 $ Иностранный язык 10:10-11:40
Павлюковская 1К-413
Н.С.//Семёнова Ж.Ю.
08:18 AM
Графический движок PIL
Генератор графических карточек расписания в формате PNG. Форматирует текст дисциплин, отрисовывает эмодзи и генерирует изображения расписания для удобного просмотра на мобильных устройствах.
Модуль времени & Эмодзи-часов
Временное ядро бота на базе часового пояса Иркутска. Вычисляет даты на «вчера», «сегодня», «завтра», дни недели и динамически сопоставляет время пары с эмодзи часов.
Доброе утро! Расписание на сегодня:
1 пара (08:30) — Моб. приложения (2К-309) 2 пара (10:10) — Иностранный язык (1К-413) 3 пара (12:20) — Разработка БД (2К-212)Первая пара через 1 час! 07:30 AM
Поисковый движок по преподавателям
Модуль глобального поиска пар конкретного преподавателя во всех кэшированных группах колледжа на текущий день с учётом замен.
Найдено 2 пары во всех группах ИЭК:
1 $ 3-ИС // Разработка моб. приложений
08:30-10:00 | Ауд. 2К-309
————————————————————————————————————
2 $ 2-ТИТО // Основы программирования
10:10-11:40 | Ауд. 2К-309
08:24 AM
Управление настройками SQLite
Модуль работы с локальной базой данных SQLite. Хранит индивидуальные привязки групп (users_group) и выбранный формат отклика (users_format) для каждого Telegram user_id.
Запись обновлена в SQLite (users_group). 08:25 AM