Enhance TelegramBotService with schedule handling and subscription toggling
ci / build-backend (push) Successful in 2m38s
ci / build-frontend (push) Successful in 58s
ci / tests (push) Successful in 4m27s
ci / sonar (push) Successful in 9m26s

Updated the TelegramBotService to support new actions for managing subscriptions and retrieving channel schedules. Introduced constants for action types and improved the callback data structure for better clarity. Added a method to send channel schedules, consolidating upcoming program information into a user-friendly format. Updated related tests to ensure proper functionality of the new features and adjusted documentation to reflect changes in button actions.
This commit is contained in:
Leonid Pershin
2026-07-31 08:16:37 +03:00
parent 99821d3c76
commit 8a439f1351
5 changed files with 215 additions and 19 deletions
+9 -1
View File
@@ -51,11 +51,19 @@ NAT и через прокси, и это единственный вариан
## Меню в чате
`/start` с кодом привязывает чат и открывает меню; `/start` без кода — открывает меню уже
привязанному. Меню живёт **одним сообщением**: нажатие кнопки переписывает его на месте, иначе
привязанному. Заголовок канала в меню — это кнопка «программа передач»: ближайшие восемь блоков
в часовом поясе канала, идущее сейчас помечено. Подряд идущие серии одного шоу схлопываются
в один блок — зритель спрашивает «что дальше», а не «в каком порядке лежат файлы». Программа
приходит отдельным сообщением, меню остаётся на месте: иначе после просмотра пришлось бы звать
`/start`, чтобы вернуть кнопки. Меню живёт **одним сообщением**: нажатие кнопки переписывает его на месте, иначе
чат заполняется одинаковыми «ваши подписки» после каждого клика. Кнопка — тумблер: повторное
нажатие снимает подписку. `/stop` останавливает рассылку, не стирая подписки: вернувшись, зритель
получит свои каналы, а не пустой список.
Данные кнопок несут действие: `sub:канал:вид` переключает подписку, `epg:канал` показывает
программу. Действие в первом поле, а не «угадаем по числу частей»: кнопок со временем станет
больше, и разбор по длине строки сломался бы на первой же новой.
## Границы
- Бот не отвечает на произвольные вопросы и не показывает программу передач — только подписки.