Enhance Telegram bot functionality with message management and new API methods
ci / build-backend (push) Successful in 3m27s
ci / build-frontend (push) Successful in 1m5s
ci / tests (push) Successful in 4m0s
ci / sonar (push) Successful in 8m22s

Updated the ITelegramApi interface to include a method for deleting messages and modified SendMessageAsync to return the message ID. Enhanced the TelegramBotService to manage message visibility by replacing previous messages with new ones, ensuring a cleaner user experience. Introduced properties in TelegramSubscriber to track the latest menu and notice message IDs. Updated related tests to verify the new message management behavior and adjusted documentation to reflect these changes.
This commit is contained in:
Leonid Pershin
2026-07-31 08:24:42 +03:00
parent 8a439f1351
commit d6bc2b15ac
9 changed files with 1835 additions and 24 deletions
+8
View File
@@ -60,6 +60,14 @@ NAT и через прокси, и это единственный вариан
нажатие снимает подписку. `/stop` останавливает рассылку, не стирая подписки: вернувшись, зритель
получит свои каналы, а не пустой список.
**Бот убирает за собой.** В чате живут ровно два его сообщения: меню подписок и последнее
одноразовое — программа передач, подтверждение привязки или отказ. Новое меню снимает предыдущее
(две панели с разными галочками означают, что одна врёт), новая программа — предыдущую программу.
Идентификаторы обоих сообщений хранятся у подписчика. Команды зрителя остаются: в личном чате бот
вправе удалять только собственные сообщения, и права на чужие у него нет и не будет. Не удалившееся
сообщение (зритель убрал его сам, прошло больше 48 часов) уборку не срывает — это не та задача,
ради которой стоит рвать разговор.
Данные кнопок несут действие: `sub:канал:вид` переключает подписку, `epg:канал` показывает
программу. Действие в первом поле, а не «угадаем по числу частей»: кнопок со временем станет
больше, и разбор по длине строки сломался бы на первой же новой.