Fediverse соединен протоколами, такими как ActivityPub и WebFinger, о которых я пока очень мало знаю. Это потому, что подключаемый модуль Steampipe, который поддерживает панели мониторинга, которые я создавал и описывал в этой серии, не требует от меня понимания или использования этих протоколов.
Однако это требует от меня понимания и использования Mastodon API. В основном я использую этот API через Go SDK для Mastodon (спасибо, mattn!), иногда я делаю вызовы REST напрямую. В любом случае, мои информационные панели только для чтения используют довольно небольшое подмножество API Mastodon. Полный API довольно широк и глубок; он позволяет клиентам API читать и записывать на серверы Mastodon всеми возможными способами. Вот главы книги Mastodon API: приложения, учетные записи, администратор, инстанс, поиск, статусы, временные шкалы, уведомления, oembed. В этих главах определяется, что является общим для всех клиентов Mastodon, включая веб-приложения, телефонные приложения, собственные приложения для ОС и информационные панели Steampipe.
До сих пор я игнорировал взаимодействие с поддержкой протокола, чтобы сосредоточиться на взаимодействии с поддержкой API. Я знаю, что федиверс включает в себя гораздо больше, чем просто мастодонт. В свое время я намерен изучить BookWrym, Friendica, Funkwhale, Lemmy, takahe, PeerTube, Pixelfed, PeerTube и другие. Но прямо сейчас экосистемы Mastodon достаточно, чтобы попытаться обернуть вокруг меня голову.
Например, появился новый веб-клиент для Mastodon: elk.zone. С недавним добавлением поддержки списков это стало моим любимым способом взаимодействия в пространстве Mastodon. Поэтому, естественно, я хотел иметь возможность переключаться с панели инструментов Steampipe на Elk и использовать его в качестве альтернативы веб-приложению Mastodon с батареями.
Оказалось, что включить эту интеграцию несложно. Не благодаря ActivityPub и даже не благодаря API. Это работает благодаря третьему уровню взаимодействия: общие шаблоны для URL-адресов учетных записей и URL-адресов инструментов.
Вот URL-адрес учетной записи Уорда Каннингема, который вешает свою черепицу на мастодонт.радио: https://mastodon.radio/@k9ox. Но, как мы видели в URL-адресах Mastodon с указанием экземпляра, если вы посещаете этот URL-адрес напрямую — и если это не ваш домашний сервер — вы не можете следовать там за Уордом или добавить его в список. Вам нужно будет скопировать этот URL-адрес, вставить его в поле поиска вашего домашнего сервера, запустить поиск и получить URL-адрес с указанием экземпляра, по которому вы можете подписаться на него или добавить его в список: https://mastodon.social/ @k9ox@mastodon.radio. Если вы находитесь дома на fosstodon.org, это будет https://fosstodon.org/@k9ox@mastodon.radio.
Точно так же вот один из инструментов Уорда в мастодонт.радио: https://mastodon.radio/@k9ox/109802968820955379. Если вы хотите ответить, повысить или добавить в избранное, вы не можете сделать это там. URL-адрес, который вам нужен, снова проходит через ваш домашний сервер: https://mastodon.social/@k9ox@mastodon.radio/109802969999396562. Обратите внимание, что идентификаторы одного и того же инструмента различаются! Эта разница удивила меня и некоторых других, и это тема для другого эпизода. Здесь я просто отмечу, что эти два шаблона определяют, как мы взаимодействуем при пересечении границ сервера в пространстве Mastodon с помощью стандартного веб-клиента.
Когда я начал использовать Elk, появился еще один слой паттерна. Вот те же URL-адреса в Elk:
https://elk.zone/mastodon.social/@k9ox@mastodon.radio
https://elk.zone/mastodon.social/@k9ox@mastodon.radio/109802969999396562
Как оказалось, мне просто нужно было добавить две функции преобразования плагина Steampipe перед лосиная зона к URL-адресам с указанием экземпляра, а затем сделайте такой префикс параметром конфигурации. Теперь, когда я перехожу по ссылкам Mastodon с информационных панелей, чтобы ответить, повысить, подписаться или зачислить, я получаю опыт лося, который я предпочитаю.
ActivityPub и WebFinger являются формальными стандартами. Я бы назвал Mastodon API стандартом де-факто. Но этот маневр с префиксом — всего лишь условность. Нет гарантии, что он будет работать с другим веб-клиентом, и даже не гарантируется, что он будет работать со всеми URL-адресами, представленными стандартным клиентом Mastodon. Это нормально для меня. Соглашения невероятно полезны. В конце концов, хэштег Twitter — это просто соглашение, вдохновленное, в свою очередь, соглашением IRC.
Мы переживаем один из тех интернет-моментов быстрых инноваций, когда новые условности могут открыть новые модели поведения. Мне даже не приходило в голову, что приборные панели Steampipe могут поддерживать Elk. Через несколько часов после того, как я подумал, что они могли бы, они сделали. Я уже видел подобное раньше, особенно когда блогосфера приняла <link rel="alternate" type="application/rss+xml" href="https://www.infoworld.com/article/3687637/{feedUrl}">
чтобы браузеры могли автоматически обнаруживать RSS-каналы. Это произошло около 20 лет назад, и совершенно неожиданно, когда горстка ведущих инструментов для ведения блогов приняла конвенцию за считанные дни. Было очень весело пережить ту эпоху. Если вы пропустили это, наслаждайтесь продолжением, которое разворачивается сейчас!
Эта серия:
- Автономность, размер пакета, трение, разветвление и скорость
- Mastodon, Steampipe и RSS
- Просмотр федиверса
- Терминал Bloomberg для Mastodon
- Создайте свой собственный Mastodon UX
- Списки и люди на Mastodon
- Сколько людей в моей ленте Mastodon также написали сегодня в Твиттере?
- URL-адреса Mastodon с указанием экземпляра
- Графики взаимоотношений мастодонтов
- Работа со списками мастодонтов
- Изображения считаются вредными (иногда)
- Картирование более широкой федеральной сети
- Протоколы, API и соглашения
- Новости в федерации
- Сопоставление людей и тегов в Mastodon
- Визуализация модерации сервера Mastodon
- Сроки Mastodon для команд
- Плагин Mastodon теперь доступен на Steampipe Hub.