uksivt-schedule-bot

module
v0.0.0-...-cc467f2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 1, 2023 License: MIT

README

RU:

Для получения расписания бот использует АПИ mishapoiuytrewq/uksivt-schedule-backend. В данный момент работаю над удалением прямой зависимости от данного репозитория.

Основной функционал:

  • Просмотр расписания для конкретной группы
  • Отправка расписания в определённое время с несколькими режима
  • Выбор группы по умолчанию для чата

Сценарий работы:

  • Добавляете бота в чат или активируете его в ЛС
  • Выбираете группу через /select_group
  • Вызываете показ расписания на сегодня /lessons
  • Смотрите расписания для другой группы через /lessons [группа]
  • Создаете программу отправки через /create
  • Редактируете созданную программу через /edit

Программы отправки расписания

Далее будет использоваться название крон/таск/задача.

Ограничение на чат - 5 крон. Это ограничение прописано константой в internal/config.MaxCrons

У каждой задачи имеется название. Оно нужно для дальнейшей идентификации пользователем. Ограничено в 200 символов

Через интерфейс бота можно выбрать время любого часа, но на 30 или 00 минуте. Технически это скорее ограничивается конфигурацией (настройка cron-scheduler.cron)

Есть несколько режимов отправки:

  1. Отправлять для следующего дня (совместима с другими режимами)
  2. Отправлять полное расписание.
  3. Отправлять только если есть замены.
  4. Отправлять если есть замены, если их нет то отправится уведомление об их отсутствии.
  5. Отправлять полное расписание только если есть замены.

Планы

Объединить поля ID и TelegramID у объекта чата, используя везде TelegramID. Это будет удобно в рамках тг.

Вместо бота сделать GRPC/REST API сервер. Это позволит создать общий интерфейс, используя это можно создать любой клиент (тг/вк бот, приложение и т.д)

Хочу переделать слой телеграм бота на другой ЯП. На условном aiogram'е это будет выглядеть приятнее.

Команды

/select_group - Выбрать группу для чата.
/group - Посмотреть текущую группу в чате.
/lessons [группа] - Просмотреть расписание. Если после команды указать группы отправит для нее. По умолчанию используют группу, заданную через /select_group.
/create - Создать программу отправки расписания (крон задача).
/crons - Список задач для текущего чата.
/edit - Панель изменения программ.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL