RU:
Для получения расписания бот использует АПИ mishapoiuytrewq/uksivt-schedule-backend.
В данный момент работаю над удалением прямой зависимости от данного репозитория.
Основной функционал:
- Просмотр расписания для конкретной группы
- Отправка расписания в определённое время с несколькими режима
- Выбор группы по умолчанию для чата
Сценарий работы:
- Добавляете бота в чат или активируете его в ЛС
- Выбираете группу через
/select_group
- Вызываете показ расписания на сегодня
/lessons
- Смотрите расписания для другой группы через
/lessons [группа]
- Создаете программу отправки через
/create
- Редактируете созданную программу через
/edit
Программы отправки расписания
Далее будет использоваться название крон/таск/задача.
Ограничение на чат - 5 крон. Это ограничение прописано константой в internal/config.MaxCrons
У каждой задачи имеется название. Оно нужно для дальнейшей идентификации пользователем. Ограничено в 200 символов
Через интерфейс бота можно выбрать время любого часа, но на 30 или 00 минуте.
Технически это скорее ограничивается конфигурацией (настройка cron-scheduler.cron
)
Есть несколько режимов отправки:
- Отправлять для следующего дня (совместима с другими режимами)
- Отправлять полное расписание.
- Отправлять только если есть замены.
- Отправлять если есть замены, если их нет то отправится уведомление об их отсутствии.
- Отправлять полное расписание только если есть замены.
Планы
Объединить поля ID
и TelegramID
у объекта чата, используя везде TelegramID
.
Это будет удобно в рамках тг.
Вместо бота сделать GRPC/REST API сервер.
Это позволит создать общий интерфейс, используя это можно создать любой клиент (тг/вк бот, приложение и т.д)
Хочу переделать слой телеграм бота на другой ЯП. На условном aiogram'е это будет выглядеть приятнее.
Команды
/select_group
- Выбрать группу для чата.
/group
- Посмотреть текущую группу в чате.
/lessons
[группа]
- Просмотреть расписание.
Если после команды указать группы отправит для нее.
По умолчанию используют группу, заданную через /select_group
.
/create
- Создать программу отправки расписания (крон задача).
/crons
- Список задач для текущего чата.
/edit
- Панель изменения программ.