Бот в Telegram и Record Megamix.

Делаем простого бота, который будет проверять появление новых нужных нам миксов на Radio Record и оповещать нас об этом в Telegram. Можно использовать для себя, а можно настроить такого для работы в музыкальном чате, например.

Итак, имеем — страницу с мегамиксам на Radio Record, установленный Telegram, bash, и желание оптимизировать своё собственное время, перестав ходить на сайт и проверять треки.

1. Создаём у @BotFather нового бота командой /newbot, даём ему имя, юзернейм, получаем его токен вида «503225242:AAHTIQQxDGlyL6_Iju6ORuDOBj0stGbNyLo». При необходимости, настраиваем аватар бота и его описание.

2. Далее определяемся — бот будет уведомлять только наш контакт, или же будет работать в каком-то канале? В обоих случаях, нам нужно будет получить ID чата, в который будут отправляться сообщения:

  • Если это будет канал, то созданного бота добавляем в него администратором, и пишем любое сообщение в канал.
  • Если это будет чат напрямую с ботом, то просто добавляем его себе, жмём START и пишем любое сообщение ему.

Затем проверяем самого бота прямо и браузера вот таким запрсом:

https://api.telegram.org/bot503225242:AAHTIQQxDGlyL6_Iju6ORuDOBj0stGbNyLo/getUpdates

И находим там строку вида:

{"id":67505239

Это и будет наш ID, которому мы будем посылать сообщения.

3. Наш скрипт будет ежедневно запускаться по крону, проверяя, не появилось ли новых треков, и если такие появятся, то через бота скрипт будет уведомлять об этом. Проверять наличие файла будем с помощью curl:

# curl --output /dev/null --silent --head --fail http://site.com/dir/file.mp3

Токен бота, адрес api telegram, ID того кто будет получать сообщения, дату, IP и URL по которому могут быть доступны треки — все эти параметры мы задаём отдельными переменными. Для форматирования будем использовать html. Уведомление пользователю так же будет отсылать curl’ом делая запрос вида:

curl --output /dev/null --silent "$tlgUrl/sendMessage?chat_id=$tlgId&parse_mode=HTML&text=? Вышел новый Megamix. <a href=\"$rrmUrl\">Скачать mp3.</a>";

Получившийся скрипт можно скачать по ссылке.

4. Остаётся только добавить скрипт в автозапуск по крону, например, один раз в сутки, и заниматься своими делами, а бот будет сам уведомлять нас о том, что вышли новые треки.

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

В случае, когда работать нужно с небольшими размерами файлов, куда лучше использовать доступные в api функции sendAudio или sendDocument, которые позволят загружать в telegram непосредственно файлы, а не просто оставлять ссылки на них.

@SysadminNotes | https://sysadmin.pm

2 thoughts on “Бот в Telegram и Record Megamix.

  1. 15.12.2017 Спасибо! Очень интересные ваши статьи, тем более, что мне самому некогда экспериментировать с аналогичными штучками — банальная нехватка времени…

    1. Спасибо! 🙂

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *