По итогам было написано два бота (основной и рассылочный), на чем руководство успокоилось, а я занялся самиздатом.
В очередной раз поигравшись в прототип, я хотел придумать, что ещё интересного можно быстро написать в телеграм-стеке. Выбор пал на комментарии.
Бот @CommentsUserBot для комментариев в телеграм-канале
В телеграмме есть каналы, но их нельзя комментировать, и есть чаты, где нельзя писать новости — вы будете получать либо весь спам сообщений, либо ничего, если уйдёте в mute.
Хотя, если делать в чате pin с оповещением, то можно эмулировать публикацию aka в #channel.
Поразмыслив, я пошел почитать документацию к telegra.ph. Мне уже приходилось писать парсер для новостей к корпоративному сайту для IV, и я примерно представлял, какие виджеты существуют на платформе (однако, некоторые так и не завелись). Также, в сообществе бот-разработчиков, я почерпнул несколько непубличных API, которые пригодились позднее.
Всё выглядело понятно, и за выходные я набросал прототип бота комментариев к телеграм-каналу — к посту цеплялась кнопка, с переходом в бот для написания текста, а дальше генерация страницы комментариев в телеграфе. В самом же канале кнопка должна показывать количество комментов.
Технически, сервер работает только в момент публикации коммента. Всё остальное — текст и графику — хранит и кеширует сам телеграф.
После вброса разрабочикам на тестирование, я собрал фидбек, набросал план и начал потихонечку запиливать изменения. Так, изначально автоматический режим обновления канала сменился настройками (ручной или авто, замещение оригинального поста или публикация коммент-постика). Сами комментарии пополнились виджетами, графикой и видео (спасибо Олегу О. за тестинг уязвимостей. Кстати, у него тоже есть неплохой коммент-бот @CommentsBot).
В то время я установил telegram-x, и одно из важных апдейтов в нём было то, что, единожды зарегистрировшись в боте, не нужно каждый раз нажимать start при заходе с дип-линка.Комментарии, раз плоский чат уже существует, решено было делать древовидными. Я не писал такое хранение раньше, но после пары загугленых статей база данных смогла их переваривать. Текущее ограничение глубины веток в 10 уровней. Количество комментариев на страницу 20, с пред-показом ответов в ветках, количеством комментариев и пагинацией.
Да, телеграф не позволяет развернуться с дизайном страницы, но именно это и было нужно — бот в экосистеме телеграмма — нет никаких дополнительных авторизаций и выходов на сайты. Не слетят шрифты, а сами страницы комментариев отрабатывают через Instant View. Сам пользователь при этом набивает комментарий в привычном формате, в телеграмме — со смайликами, стикерами, ссылками и прочим.
Редактирование заменено на дополнение текущего коммента. В целом этого пока хватает, ведь собственный коммент можно удалить (прямо со страницы комментов).
Потом, когда ботом захотели пользоваться большие каналы (>100к подписчиков), встал вопрос администрирования. Было добавлено удаление неугодного комментария и бан пользователя. Также, ввиду личной неприязни к спаму, оповещения об ответах по-умолчанию выключены для пользователя, но настройки позволяют подписаться как на все комменты, так и на комменты канала/поста, плюс выбор уровня комментов. Всё это приходит из отдельного бота-спамера, так что заблокировав его по незнайке телеграм-интерфейса, можно всё равно писать комменты в других каналах.
Задизайненая в гимпе иконка разкрашена для всех сущностей проекта — бот, оповещение-бот, новости проекта и чат поддержки.
Про языковые интерфейсы: страницы в телеграфе в en, а боты в en/ru (работает авто-детект).
Комменты очень зашли в Южной Америке. Сейчас добрые самаритянины переводят файлы на гитхабе для более локализации.Весной (летом?), когда РКН начал блокировать доступы, мне стало немного неудобно разрабатывать (в поезде, в дороге на/c работы — двойной ssh на сервер переодически отваливается), так что темп разработки (и без того невысокий), понизился. Сейчас я собираю отзывы, составляю план улучшений и пишу время от времени другой бот, наработки которого мне потребуются в текущем проекте.
Бот @CommentsUserBot для комментариев в телеграм-канале.
Подключайтесь, пишите, обсудим )
Комментарии (8)
AlexTest
04.11.2018 13:50Правильно ли понимаю, что для просмотра комментариев надо покинуть клиент телеграма, запустить браузер и перейти на конкретную страничку сайта телеграф?
Приведите пожалуйста ссылки на телеграм каналы, где для комментирования постов используется ваш бот.Mobile1
04.11.2018 16:54-1Получается что из-за бедности функционала люди начинают изобретать свой
велосипедвэб :)
А потом внезапно поймут что он давно существует и все там уже давно есть.
Наконец люди начинают понимать что идея делать каналы без комментариев ущербна в корне, как впрочем и вообще такие вещи делать в мессенджере.
Об этом я и говорил в этой статье.
denisx Автор
04.11.2018 19:21Правильно ли понимаю, что для просмотра комментариев надо покинуть клиент телеграма, запустить браузер и перейти на конкретную страничку сайта телеграф?
Технически это внешний сайт, но открывается он в экосистеме телеграмма через Instant View.AlexTest
05.11.2018 04:34Instant View работает только в некоторых клиентах. Например в родном клиенте telegram для линукса и в Plus Messenger при нажатии на кнопку просмотра комментариев — ссылка открывается во внешнем браузере.
Mobile1
05.11.2018 07:43+1Когда Фейсбук открывает свой как бы внутренний браузер по внешней ссылке, то сейчас он ничем неотличим от того же хрома на мобильных девайсах. Раньше у них было по другому, был свой, а сейчас у них внутренний — хром с обвязкой.
Всесдулись, начали понимать что выдумывать ничего не надо, вернулись ккорнямвебу.
Вэб всех сожрет (с).AlexTest
05.11.2018 14:59Фейсбук открывает свой как бы внутренний браузер по внешней ссылке…
Да какой это возврат к вебу — так чистой воды оверхед, разбазаривание ресурсов. Если каждая апликуха будет свой браузер ставить и запускать — памяти в телефоне на всю эту хрень не напасешься как оперативки так и постоянной.
начали понимать что выдумывать ничего не надо, вернулись к вебу.
Arris
Подъезжая к станции с меня слетела шляпа.