Публикация в Awakari из произвольных источников
Доброго времени суток. В комментариях к предыдущей статье было одно пожелание, которое оказалось особенно полезным. Спасибо автору @iamoblomovза развернутый отзыв. Как это обычно бывает, один человек не может вообразить себе все варианты возможного использования, поэтому отзывы пользователей всегда приветствуются. В тот раз речь шла о том, чтобы пользователь мог добавлять произвольные источники событий в систему, такие как публичные каналы телеграм или ленты новостей RSS. Теперь это реализовано и в этой статье я расскажу об этом подробнее.
Awakari — это publish/subscribe сервис, который для каждого поступающего события выполняет поиск всех заинтересованных подписчиков, чтобы уведомить их о релевантном событии (push). На данный момент в публичном доступе есть бесплатный облачный сервис и телеграм-бот в качестве интерфейса пользователя к нему. Соответственно, возникает закономерный вопрос — откуда Awakari получает исходные события? Прямо сейчас есть ряд разных способов опубликовать сообщение в систему:
Ленты новостей: RSS, Atom, JSON.
Публичные каналы телеграм.
С помощью бота в телеграм.
С помощью собственной интеграции с gRPC API системы.
В текущем виде система использует уже 73 ленты новостей и 57 каналов телеграм и эти списки постоянно расширяются. Ознакомиться со списками используемых источников можно с помощью бота. Для этого в главном меню бота нужно нажать кнопку «Publishing»:
При нажатии бот предлагает выбор между списками — ленты/каналы и все/только свои:
Например, список каналов телеграм может выглядить следующим образом:
Каждый пункт в списке при нажатии раскрывает детальную информацию об источнике:
Если источник был добавлен текущим пользователем, то доступна также возможность удалить его из системы — кнопка «Delete».
После того, как вы ознакомились с текущими источниками и убедились, что достойных вашего внимания среди них нет, вы можете добавить собственный. Для этого надо нажать кнопку »+ Own Source» в Publishing-меню:
При нажатии откроется форма для указания типа источника (лента или канал) и его адрес. Адрес источника в случе ленты новостей — это просто его URL:
Обратите внимание, что для получения событий из лент обновлений используется периодический «опрос» (polling), поэтому необходимо указывать этот период.
Чтобы добавить телеграм-канал, в качестве адреса достаточно указать его уникальное имя, что начинается с символа »@»:
Здесь другая особенность — регистрация нового канала полуавтоматическая, требует небольшого ручного вмешательства. Возможно, в будущем удастся полностью автоматизировать это.
Важно отметить, что все источники, добавленные пользователем, будут использовать личную суточную квоту публикации событий. По умолчанию, каждый пользователь может публиковать до 10 событий в сутки. Чтобы узнать о расходе этой квоты, нужно в главном меню бота нажать кнопку «Usage ᵖ»:
Так как система пока работает в абсолютно бесплатном для всех режиме, увеличение этой квоты может быть сделано только в индивидуальном порядке по запросу. Например, командой бота /support
.
На будущее есть план по добавлению других типов источников событий, таких как Twitter, Facebook, курсы валют. Если пойти ещё дальше, то можно использовать ML для текстового или численного описания видео, аудио, изображений. Stay tuned.