Open LibertyPaul opened 7 years ago
@LibertyPaul RSS 2.0 поддерживает HTML внутри description
.
Если телеграм-бот позиционирует себя, как кросс-постер RSS-фида, то приведение контента источников данных в формат поддеживаемый телеграм – это его прямая обязанность, поэтому п.2 я не считаю костыльным.
Технически, удаление недопустимых телеграмом html-тегов и добавление \r
для переносов строк – задача тривиальная и сделать ее можно, как в рамках бота, так и в рамках адаптера, который может отправлять боту сообщения, по аналогии с реализацией публикации событий в слек.
Но в первую очередь я бы постарался привести фид к валидному виду. Сейчас в нем есть ошибки по мнению w3c-валидатора. Часть этих ошибок не является ошибками, например, для Яндекса, который живет своей жизнью, но с точки зрения Яндекса.Новостей фид тоже не валидный :)
@kovalevsky Второй вариант костылен в первую очередь из за того, что он зависит от меня. До этих пор, что бы не произошло со мной/моим сервером, эвенты продолжали бы отправляться в канал (спасибо IFTTT за это). Но теперь я вынужден писать десяток строк кода и размещать их у себя на VPS, и париться о том, чтобы все работало.
Как по мне, если даже и писать такой "workaround", то на стороне сайта. Ибо пока сайт работает, будет работать и канал. Я бы сам сделал Pull-Request, но Ruby не моя тема, поэтому предлагаю вам написать эти 10 строк самостоятельно чтобы все было по уму.
Идея создания кастомного фида для конкретной реализации бота кажется мне сомнительной.
Ничего не имею против существующего бота, но в случае решения проблем на уровне приложения, мне кажется более логичным публиковать сообщения в телеграм напрямую, без дополнительных сервисов, например с помощью https://github.com/atipugin/telegram-bot-ruby Я телеграм особо не пользуюсь, поэтому не знаю, о функционале бота, судя по упоминанию IFTTT он только публикует новые ивенты?
На данный момент схема такая: Есть канал в телеграме и бот, который имеет право туда писать. IFTTT чекает RSS и при появлении нового сообщения шлет в API телеграма (с токеном бота) сообщение в канал. IT61 RSS <-----> IFTTT -----> Telegram API -----> Subscribers
Из схемы можно легко выкинуть IFTTT и RSS, если при публикации новости сайт будет посылать POST запрос к API телеграма с токеном бота, именем канала и описанием: IT61 -----> Telegram API -----> Subscribers ИМХО, для одного HTTP запроса впихивать целую либу это оверкилл, но это уже не мне решать.
Токен я с удовольствием отдам в пользование команде разработчиков сайта, как прежде оговаривалось, в замен на обещание использовать его исключительно для публикации информации об эвентах.
А, ну еще было бы неплохо на главную сайта повесить линк на канал.
В качестве альтернативы еще могу предложить юзать RSS фид и @TheFeedReaderBot
.
Тут либо каждый себе настраивает бота с фидом, либо бот вроде как умеет писать в ченнелы - можно попробовать прикрутить.
Правда я его использую в режиме "title only", поэтому не знаю, есть ли у него такие же проблемы с HTML внутри описания.
@timocov, спасибо за совет, добавил этого бота, посмотрим как он работает.
Привет IT61,
Новая версия RSS ленты содержит в сообщениях HTML разметку, и, поскольку текст из фида напрямую отправляется в Телеграм канал, теперь в апдейтах все выглядит не очень хорошо:
Я писал в #events о вариантах решения проблемы, но ответа так и не получил, поэтому приведу их здесь:
Второй вариант я бы мог реализовать своими силами, но он наиболее костыльный из всех вышеперечисленных, поэтому я хочу, чтобы была рассмотрена возможность реализации 1-го или 3-го.
Regards, Павел