Публикация в Awakari из произвольных источников

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Доброго времени суток. В комментариях к предыдущей статье было одно пожелание, которое оказалось особенно полезным. Спасибо автору @iamoblomovза развернутый отзыв. Как это обычно бывает, один человек не может вообразить себе все варианты возможного использования, поэтому отзывы пользователей всегда приветствуются. В тот раз речь шла о том, чтобы пользователь мог добавлять произвольные источники событий в систему, такие как публичные каналы телеграм или ленты новостей RSS. Теперь это реализовано и в этой статье я расскажу об этом подробнее.

Awakari - это publish/subscribe сервис, который для каждого поступающего события выполняет поиск всех заинтересованных подписчиков, чтобы уведомить их о релевантном событии (push). На данный момент в публичном доступе есть бесплатный облачный сервис и телеграм-бот в качестве интерфейса пользователя к нему. Соответственно, возникает закономерный вопрос - откуда Awakari получает исходные события? Прямо сейчас есть ряд разных способов опубликовать сообщение в систему:

  1. Ленты новостей: RSS, Atom, JSON.

  2. Публичные каналы телеграм.

  3. С помощью бота в телеграм.

  4. С помощью собственной интеграции с gRPC API системы.

В текущем виде система использует уже 73 ленты новостей и 57 каналов телеграм и эти списки постоянно расширяются. Ознакомиться со списками используемых источников можно с помощью бота. Для этого в главном меню бота нужно нажать кнопку "Publishing":

При нажатии бот предлагает выбор между списками - ленты/каналы и все/только свои:

Например, список каналов телеграм может выглядить следующим образом:

Каждый пункт в списке при нажатии раскрывает детальную информацию об источнике:

Если источник был добавлен текущим пользователем, то доступна также возможность удалить его из системы - кнопка "Delete".

После того, как вы ознакомились с текущими источниками и убедились, что достойных вашего внимания среди них нет, вы можете добавить собственный. Для этого надо нажать кнопку "+ Own Source" в Publishing-меню:

При нажатии откроется форма для указания типа источника (лента или канал) и его адрес. Адрес источника в случе ленты новостей - это просто его URL:

Обратите внимание, что для получения событий из лент обновлений используется периодический "опрос" (polling), поэтому необходимо указывать этот период.

Чтобы добавить телеграм-канал, в качестве адреса достаточно указать его уникальное имя, что начинается с символа "@":

Здесь другая особенность - регистрация нового канала полуавтоматическая, требует небольшого ручного вмешательства. Возможно, в будущем удастся полностью автоматизировать это.

Важно отметить, что все источники, добавленные пользователем, будут использовать личную суточную квоту публикации событий. По умолчанию, каждый пользователь может публиковать до 10 событий в сутки. Чтобы узнать о расходе этой квоты, нужно в главном меню бота нажать кнопку "Usage ᵖ":

Так как система пока работает в абсолютно бесплатном для всех режиме, увеличение этой квоты может быть сделано только в индивидуальном порядке по запросу. Например, командой бота /support.

На будущее есть план по добавлению других типов источников событий, таких как Twitter, Facebook, курсы валют. Если пойти ещё дальше, то можно использовать ML для текстового или численного описания видео, аудио, изображений. Stay tuned.

Источник: https://habr.com/ru/articles/771874/


Интересные статьи

Интересные статьи

Доброго времени суток и с Новым Годом хабровчане! В данной статье хочу рассказать как я делал CI/CD на платформе GitLab для кроссплатформенных мобильных приложений написанных на Qt. Пока что только дл...
Всем привет! Сегодня я расскажу как мы реализовали автоматическую публикацию npm пакета в cicd gitlab, с помощью каких инструментов генерируем CHANGELOG файл и обновляем версию package.json. А так же ...
Более 100 лет известен такой механизм, как двигатель внутреннего сгорания. Двигатели данного типа применяются повсеместно, как наиболее распространённый способ преобразования химич...
Радиоизотопы в середине XX века казались почти бесконечным источником дешёвого электричества — вот-вот реакторы придут в самолёты, автомобили и даже дома, думали тогда. Но это случилось тольк...
Академическое знание давно уже обитает в интернете, и как и любая информация, индексируется поисковыми машинами и базами данных. Я говорю о более широкой категории знаний, чем STEM (Science Techn...