[Перевод] ActivityPub в Awakari

3b4192e6f7303acfb24a7d8e98241182.png

Сегодня всё больше и больше сервисов объявляют о своей поддержке ActivityPub, в том числе даже такие, как Tumblr или Threads. И это ожидаемо, так как ActivityPub позволяет сохранять контроль над собственными данными, в отличие от закрытых сервисов Meta. Кроме того, это позволяет обмениваться данными более независимо (Fediverse). Применение ActivityPub не ограничивается социальными сетями и блогами. Есть сервисы для хостинга изображений, видео, музыки и многое другое.

Если рассматривать все эти активности как события, то это позволит сервису Awakari открыть целое новое измерение в Fediverse. Используя Awakari можно отслеживать любые события, подходящие под произвольные критерия из неограниченного множества источников. И это всё вдобавок к уже имеющимся типам источников Awakari, таких как RSS или каналы Телеграм.

Термины

Awakari — бесплатный сервис, который фильтрует события из общего потока по критериям пользователя (ключевые слова, числовые условия, группы условий). События собираются из множества различнх источников (RSS/Atom, WebSub, Telegram, Fediverse).

В терминах ActivityPub источник событий называется «актор». Поэтому в дальнейшем я буду называть все возможнные «профили» и «аккаунты» Fediverse акторами.

При конвертации исходной активности (JSON) в формат CloudEvents (используется внутри Awakari) все атрибуты по возоможности сохраняются такими, какие они есть. Есть исключения и они задокументированы.

Использование на практике

Можно просто зайти в какой-нибудь сервис, поддерживающий протокол ActivityPub и скопировать адрес необходимого «актора». Например, в Mastodon, в профиле актора всегда есть кнопка «Copy link to profile».

98071651bc95d1de919e303f8dfa8398.png

В разных сервисах это выглядит немного по-разному, но обычно адрес актора легко найти. Есть различные форматы адреса актора:

  1. Прямая ссылка на актора, например: https://mastodon.social/users/Mastodon

  2. Ссылка-ярлык (алиас): https://mastodon.social/@Mastodon

  3. WebFinger адрес:  Mastodon@mastodon.social

Awakari понимает все три варианта и автоматически определяет прямую ссылку на актора из ярлыка или WebFinger адреса. Внутри системы источник всегда регистрируется только по прямой ссылке. После получения адреса актора нужно открыть интерфейс Awakari и на вкладке «Pub» нажать кнопку »+ Source».

0eb8fb90e12966002868ef7d8560829c.png

Если удалось определить актора и подписаться на него, система сообщает прямую ссылку на зарегистрированного актора. Теперь все активности данного актора будут поступать в Awakari. Можно создать какую-нибдуь подписку, чтобы фильтровать нужные события и ждать, пока что-нибудь интересное не произойдет. Тестировать тоже просто — добавьте собственный профиль в качестве источника и опубликуйте в Mastodon пост, содержащий ключевые слова, чтобы срабатывала ваша подписка:

3bfc20cb4af215833135b0a93d132ac5.png

Интеграция с ActivityPub сейчас лучше всего протестирована и работает с серверами на основе Mastodon, Friendica и Hubzilla. Теоретически, должны работать и остальные варианты, но некоторые сервисы пока сопротивляются отказываются.

Отдельное спасибо автору @grishkaaза статью Пишем минимальный ActivityPub-сервер с нуля, которая значительно облегчила всю работу в этом направлении.

© Habrahabr.ru