Sunday, August 11, 2019

Телеграм бот для чата @events4friends

Задача

В закрепленном сообщении нашего чата всегда анонс мероприятий. Выглядит это так:



В сообщении есть список мероприятий и есть ссылка на сайт. Пользователи чата попросили для удобства добавить ссылки для всех событий.

Тогда на сайте была реализована кнопка "Скопировать все", которая копирует данные о мероприятиях в таком формате:



Задача заключается в том, чтобы преобразовать длинные ссылки в короткие текстовые ссылки.

Исследование


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

На официальной странице мессенджера Telegram есть пример бота, который мне нужен: Markdown Bot. При его тестировании оказалось, что от обрезает часть текста:



Это классический пример того, как стандартное решение на работает.

Попытки найти, что-нибудь подходящее не увенчались успехом: частные боты либо не работают вовсе, либо делают не то, что надо. Так что можно приступать к программированию.


Создание бота


Около года назад я написал инструкцию, как создать "Hello, world!!!" бота. Вот и сейчас я создал нового бота по своей же инструкции.

Я изменил приветственное сообщение и внес необходимые изменения: бот в отвечает пользователю его же сообщением только в разметке Markdown. Пример:



В конце работы я опубликовал бота, загрузил исходный код на гитхаб, нарисовал логотип для бота и дописал этот пост.

Дополнительно


Исходники бота: https://github.com/VadimCpp/events4friendsbot
Бот: https://t.me/events4friendsbot
Чат: https://t.me/events4friends
Сайт: https://events4friends.ru/