Знакомство с телеграм-ботами вышло сумбурно — на работе нужно было опередить команду коллег, и, неплохо зная внутренний API, был написан бот за несколько дней (впоследствии доработанный и получивший ru telegram verify badge)
По итогам было написано два бота (основной и рассылочный), на чем руководство успокоилось, а я занялся самиздатом.
В очередной раз поигравшись в прототип, я хотел придумать, что ещё интересного можно быстро написать в телеграм-стеке. Выбор пал на комментарии.
Поразмыслив, я пошел почитать документацию к telegra.ph. Мне уже приходилось писать парсер для новостей к корпоративному сайту для IV, и я примерно представлял, какие виджеты существуют на платформе (однако, некоторые так и не завелись). Также, в сообществе бот-разработчиков, я почерпнул несколько непубличных API, которые пригодились позднее.
Всё выглядело понятно, и за выходные я набросал прототип бота комментариев к телеграм-каналу — к посту цеплялась кнопка, с переходом в бот для написания текста, а дальше генерация страницы комментариев в телеграфе. В самом же канале кнопка должна показывать количество комментов.
Комментарии, раз плоский чат уже существует, решено было делать древовидными. Я не писал такое хранение раньше, но после пары загугленых статей база данных смогла их переваривать. Текущее ограничение глубины веток в 10 уровней. Количество комментариев на страницу 20, с пред-показом ответов в ветках, количеством комментариев и пагинацией.
Да, телеграф не позволяет развернуться с дизайном страницы, но именно это и было нужно — бот в экосистеме телеграмма — нет никаких дополнительных авторизаций и выходов на сайты. Не слетят шрифты, а сами страницы комментариев отрабатывают через Instant View. Сам пользователь при этом набивает комментарий в привычном формате, в телеграмме — со смайликами, стикерами, ссылками и прочим.
Редактирование заменено на дополнение текущего коммента. В целом этого пока хватает, ведь собственный коммент можно удалить (прямо со страницы комментов).
Потом, когда ботом захотели пользоваться большие каналы (>100к подписчиков), встал вопрос администрирования. Было добавлено удаление неугодного комментария и бан пользователя. Также, ввиду личной неприязни к спаму, оповещения об ответах по-умолчанию выключены для пользователя, но настройки позволяют подписаться как на все комменты, так и на комменты канала/поста, плюс выбор уровня комментов. Всё это приходит из отдельного бота-спамера, так что заблокировав его по незнайке телеграм-интерфейса, можно всё равно писать комменты в других каналах.
Задизайненая в гимпе иконка разкрашена для всех сущностей проекта — бот, оповещение-бот, новости проекта и чат поддержки.
Про языковые интерфейсы: страницы в телеграфе в en, а боты в en/ru (работает авто-детект).
Весной (летом?), когда РКН начал блокировать доступы, мне стало немного неудобно разрабатывать (в поезде, в дороге на/c работы — двойной ssh на сервер переодически отваливается), так что темп разработки (и без того невысокий), понизился. Сейчас я собираю отзывы, составляю план улучшений и пишу время от времени другой бот, наработки которого мне потребуются в текущем проекте.