Делаем простого бота, который будет проверять появление новых нужных нам миксов на 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 непосредственно файлы, а не просто оставлять ссылки на них.
15.12.2017 Спасибо! Очень интересные ваши статьи, тем более, что мне самому некогда экспериментировать с аналогичными штучками — банальная нехватка времени…
Спасибо! 🙂
Да только вот не учёл я, что логика моя, и логика того, кто треки на сайт выкладывает может серьёзно отличаться, в итоге, скрипт частично работает не корректно. Переработаю и исправлю его, что бы уж точно ничего не пропускал.