В разделе «Отображение более широкой федерации» я показал, как в плагин Mastodon была добавлена новая таблица —mastodon_domain_block— включает запросы, определяющие, какие серверы модерируют какие другие серверы. Например, вот серверы в списке нарушителей nerdculture.de.
select server, domain, severity from mastodon_domain_block where server="https://nerdculture.de" +------------------------+--------------------------------+----------+ | server | domain | severity | +------------------------+--------------------------------+----------+ | https://nerdculture.de | roysbeer.place | silence | | https://nerdculture.de | *.10minutepleroma.com | suspend | | https://nerdculture.de | *.activitypub-troll.cf | suspend | ...snip... | https://nerdculture.de | shitposter.club | suspend | | https://nerdculture.de | wolfgirl.bar | suspend | | https://nerdculture.de | www2.gabbers.me | suspend | +------------------------+--------------------------------+----------+
Я использовал новый шаблон запроса для создания панели мониторинга для каждого сервера на домашней временной шкале:
- Список блокировка серверов.
- Количество заблокированные серверы для каждого блокирующего сервера.
- Список блокирующих серверов для каждого заблокированного сервера и количество этих блокирующих серверов.
Это было хорошее начало, но у меня было предчувствие, что графики взаимосвязей выявят неочевидные связи между этими серверами. И действительно! Вот вид новой графической панели инструментов.
На левой панели отображается заблокированные серверы избегает блокирующий сервер выбраны из тех, что на домашней временной шкале. Правая панель имеет инверсный вид: блокировка серверов который избегает избранного заблокированный сервер. Это были две категории, которые я определил для первой итерации этих графиков.
category "blocking_server" { color = "darkgreen" icon = "server" } category "blocked_server" { color = "darkred" icon = "server" }
Вот код одного из графиков.
graph { node { base = node.blocking_server } node { base = node.blocked_server } node { base = node.blocked_and_blocking_server } edge { args = [ self.input.blocking_server.value ] base = edge.match_blocked_server } edge { args = [ self.input.blocking_server.value ] base = edge.match_blocking_server } }
Вот определение node.blocking_serverчто относится к категория.blocking_server.
node "blocking_server" { category = category.blocking_server sql = <<EOQ with servers as ( select distinct blocking_server, blocked_server from blocking_servers(${local.limit}) ) select blocking_server as id, blocking_server as title from servers order by blocking_server EOQ }
Предложение FROM вызывает блокирующие_серверы()функция, возвращающая множество, определенная следующим образом:
create or replace function public.blocking_servers(max int) returns table ( blocking_server text, blocked_server text ) as $$ with servers as ( select distinct server as domain, 'https://' || server as server_url from mastodon_toot where timeline="home" limit max ), blocking_and_blocked as ( select s.domain as blocking_domain, d.domain as blocked_domain from servers s join mastodon_domain_block d on s.server_url = d.server ) select blocking_domain, blocked_domain from blocking_and_blocked order by blocking_domain, blocked_domain $$ language sql
Я думал, что этих ингредиентов будет достаточно. Но когда я начал ковыряться в графиках, сделанных с этими определениями, информационная биржа вел себя странно. Иногда это появлялось как блокирующий серверв других случаях как заблокированный сервер. Я пропустил категорию!
category "blocked_and_blocking_server" { color = "orange" icon = "server" }
Как вы можете видеть на графике, информационная биржа блокирует не только 73 сервера, но и два сервера: религия.masto.host и Weatherishappening.net. Почему?
Weatherishappening.net звонки информационная биржа a «РАЗМЕЩЕНИЕ ФАШИСТСКОЙ СПИРАЛЬНОЙ ОРГАНИЗАЦИИ СМЕРТИ» и блокирует ее с «Ограниченной» серьезностью.
Религия.masto.host блоки информационная биржа на уровне «Приостановлено», но не объясняет почему («Причина недоступна»).
Хотя эти серверы, в свою очередь, могут быть заблокированы другими, такие блоки не отображаются в списках блокировки моего ближайшего окружения серверов.
> select count(*) from blocking_servers(100) where blocked_server="weatherishappening.net" +-------+ | count | +-------+ | 0 | +-------+ > select count(*) from blocking_servers(100) where blocked_server="religion.masto.host" +-------+ | count | +-------+ | 0 | +-------+
Однако в моем районе есть еще один стрелочник. c.im заблокирован me.dm и octodon.social.
Почему?
я.дм (Средний) имеет статус «Приостановлено» c.im за «язык ненависти».
октодон.социал имеет «Приостановлено» c.im «Причина неизвестна».
Когда мнения и политика вашего сервера отличаются от моих, мы видим разные реальности через соответствующие линзы. Могла ли такая раздробленность вернуть федиверсально-любопытных обратно в объятия Большой Социалки? Я уверен, что это произойдет — и действительно происходит — в какой-то степени.
Но я надеюсь, что некоторые из нас, по крайней мере, научатся процветать в разнообразных сетях онлайн-сообществ, зная о калейдоскопическом взаимодействии фильтров, но не перегруженные им. Этот навык хорошо послужит нам и в реальной жизни. Чтобы получить его, нам нужно визуализировать работу наших фильтров. Отличный способ сделать это: SQL-запросы, которые управляют графиками взаимосвязей.
Эта серия:
- Автономность, размер пакета, трение, разветвление и скорость
- Mastodon, Steampipe и RSS
- Просмотр федиверса
- Терминал Bloomberg для Mastodon
- Создайте свой собственный Mastodon UX
- Списки и люди на Mastodon
- Сколько людей в моей ленте Mastodon также написали сегодня в Твиттере?
- URL-адреса Mastodon с указанием экземпляра
- Графики взаимоотношений мастодонтов
- Работа со списками мастодонтов
- Изображения считаются вредными (иногда)
- Картирование более широкой федеральной сети
- Протоколы, API и соглашения
- Новости в федерации
- Сопоставление людей и тегов в Mastodon
- Визуализация модерации сервера Mastodon
- Сроки Mastodon для команд
- Плагин Mastodon теперь доступен на Steampipe Hub.