Знакомство с телеграм-ботами вышло сумбурно — на работе нужно было опередить команду коллег, и, неплохо зная внутренний API, был написан бот за несколько дней (впоследствии доработанный и получивший ru telegram verify badge)

По итогам было написано два бота (основной и рассылочный), на чем руководство успокоилось, а я занялся самиздатом.

В очередной раз поигравшись в прототип, я хотел придумать, что ещё интересного можно быстро написать в телеграм-стеке. Выбор пал на комментарии.

Бот @CommentsUserBot для комментариев в телеграм-канале

В телеграмме есть каналы, но их нельзя комментировать, и есть чаты, где нельзя писать новости — вы будете получать либо весь спам сообщений, либо ничего, если уйдёте в mute.
Хотя, если делать в чате pin с оповещением, то можно эмулировать публикацию aka в #channel.
image

Поразмыслив, я пошел почитать документацию к telegra.ph. Мне уже приходилось писать парсер для новостей к корпоративному сайту для IV, и я примерно представлял, какие виджеты существуют на платформе (однако, некоторые так и не завелись). Также, в сообществе бот-разработчиков, я почерпнул несколько непубличных API, которые пригодились позднее.

Всё выглядело понятно, и за выходные я набросал прототип бота комментариев к телеграм-каналу — к посту цеплялась кнопка, с переходом в бот для написания текста, а дальше генерация страницы комментариев в телеграфе. В самом же канале кнопка должна показывать количество комментов.

image
Технически, сервер работает только в момент публикации коммента. Всё остальное — текст и графику — хранит и кеширует сам телеграф.

После вброса разрабочикам на тестирование, я собрал фидбек, набросал план и начал потихонечку запиливать изменения. Так, изначально автоматический режим обновления канала сменился настройками (ручной или авто, замещение оригинального поста или публикация коммент-постика). Сами комментарии пополнились виджетами, графикой и видео (спасибо Олегу О. за тестинг уязвимостей. Кстати, у него тоже есть неплохой коммент-бот @CommentsBot).
В то время я установил telegram-x, и одно из важных апдейтов в нём было то, что, единожды зарегистрировшись в боте, не нужно каждый раз нажимать start при заходе с дип-линка.
Комментарии, раз плоский чат уже существует, решено было делать древовидными. Я не писал такое хранение раньше, но после пары загугленых статей база данных смогла их переваривать. Текущее ограничение глубины веток в 10 уровней. Количество комментариев на страницу 20, с пред-показом ответов в ветках, количеством комментариев и пагинацией.

Да, телеграф не позволяет развернуться с дизайном страницы, но именно это и было нужно — бот в экосистеме телеграмма — нет никаких дополнительных авторизаций и выходов на сайты. Не слетят шрифты, а сами страницы комментариев отрабатывают через Instant View. Сам пользователь при этом набивает комментарий в привычном формате, в телеграмме — со смайликами, стикерами, ссылками и прочим.

Редактирование заменено на дополнение текущего коммента. В целом этого пока хватает, ведь собственный коммент можно удалить (прямо со страницы комментов).

image

Потом, когда ботом захотели пользоваться большие каналы (>100к подписчиков), встал вопрос администрирования. Было добавлено удаление неугодного комментария и бан пользователя. Также, ввиду личной неприязни к спаму, оповещения об ответах по-умолчанию выключены для пользователя, но настройки позволяют подписаться как на все комменты, так и на комменты канала/поста, плюс выбор уровня комментов. Всё это приходит из отдельного бота-спамера, так что заблокировав его по незнайке телеграм-интерфейса, можно всё равно писать комменты в других каналах.

Задизайненая в гимпе иконка разкрашена для всех сущностей проекта — бот, оповещение-бот, новости проекта и чат поддержки.

Про языковые интерфейсы: страницы в телеграфе в en, а боты в en/ru (работает авто-детект).
Комменты очень зашли в Южной Америке. Сейчас добрые самаритянины переводят файлы на гитхабе для более локализации.
Весной (летом?), когда РКН начал блокировать доступы, мне стало немного неудобно разрабатывать (в поезде, в дороге на/c работы — двойной ssh на сервер переодически отваливается), так что темп разработки (и без того невысокий), понизился. Сейчас я собираю отзывы, составляю план улучшений и пишу время от времени другой бот, наработки которого мне потребуются в текущем проекте.

Бот @CommentsUserBot для комментариев в телеграм-канале.

Подключайтесь, пишите, обсудим )

Комментарии (8)


  1. Arris
    04.11.2018 02:29

    Подъезжая к станции с меня слетела шляпа.


  1. AlexTest
    04.11.2018 13:50

    Правильно ли понимаю, что для просмотра комментариев надо покинуть клиент телеграма, запустить браузер и перейти на конкретную страничку сайта телеграф?

    Приведите пожалуйста ссылки на телеграм каналы, где для комментирования постов используется ваш бот.


    1. Mobile1
      04.11.2018 16:54
      -1

      Получается что из-за бедности функционала люди начинают изобретать свой велосипед вэб :)
      А потом внезапно поймут что он давно существует и все там уже давно есть.
      Наконец люди начинают понимать что идея делать каналы без комментариев ущербна в корне, как впрочем и вообще такие вещи делать в мессенджере.
      Об этом я и говорил в этой статье.


    1. denisx Автор
      04.11.2018 17:45

    1. denisx Автор
      04.11.2018 19:21

      Правильно ли понимаю, что для просмотра комментариев надо покинуть клиент телеграма, запустить браузер и перейти на конкретную страничку сайта телеграф?

      Технически это внешний сайт, но открывается он в экосистеме телеграмма через Instant View.


      1. AlexTest
        05.11.2018 04:34

        Instant View работает только в некоторых клиентах. Например в родном клиенте telegram для линукса и в Plus Messenger при нажатии на кнопку просмотра комментариев — ссылка открывается во внешнем браузере.


        1. Mobile1
          05.11.2018 07:43
          +1

          Когда Фейсбук открывает свой как бы внутренний браузер по внешней ссылке, то сейчас он ничем неотличим от того же хрома на мобильных девайсах. Раньше у них было по другому, был свой, а сейчас у них внутренний — хром с обвязкой.
          Все сдулись, начали понимать что выдумывать ничего не надо, вернулись к корням вебу.

          Вэб всех сожрет (с).


          1. AlexTest
            05.11.2018 14:59

            Фейсбук открывает свой как бы внутренний браузер по внешней ссылке…
            начали понимать что выдумывать ничего не надо, вернулись к вебу.
            Да какой это возврат к вебу — так чистой воды оверхед, разбазаривание ресурсов. Если каждая апликуха будет свой браузер ставить и запускать — памяти в телефоне на всю эту хрень не напасешься как оперативки так и постоянной.