@rf а кто знает где почитать как устроено взаимодействие серверов в федерации? Что бы не протокол, а простыми словами, вот пост, вот так распространяется, вот эти видят и т.д. Подозреваю сервера плеромы и мастодона еще и по разному реализуют взаимодействие.

Ну в целом всё так как @admin описал. Ты в своём комменте упоминаешь ники пользователей, твой инстанс рассылает сообщение на каждый инстанс упомянутого пользователя плюс на каждый инстанс тех пользователей, которые на тебя подписаны. Но при этом на каждый инстанс шлётся только один раз в один общий "shared inbox".

Плерома и Мастодон работают более менее одинаково и даже с Френдика более менее норм. А вот например Pixelfed, Hubzilla и т.д. что-то делают очень по своему, у меня с ними федерирование не работает.

@rf @3draven @ru @russian_mastodon #fediverse #mastodon

@top @admin @rf @ru @russian_mastodon тут возникла ситуация, что в треде я не видел ответов. То есть. Есть корневой пост. Я отвечаю. Мне говорят, что уже отвечено. А в треде я вижу только три поста, корень, свой и ответ мне. Я не в бане насколько я понимаю. Как такое может быть?

Если тебя не помянули в комменте и никто с твоего инстанса не подписан на того автора, то копия сообщения на твой инстанс не будет послана, поэтому твой инстанс с большой вероятностью этот коммент не увидит. На мало популярных серверах это распространённое явление.

@admin @rf @ru @russian_mastodon @3draven

@top @admin @rf @ru @russian_mastodon да, инстанс у меня личный, под себя любимого поднял. Есть правда ретранслятор, который пересылает. Но понятно, спасибо. Выглядит это так себе для федеративного обмена.

@top @admin @rf @ru @russian_mastodon раз уж такое дело, может кто знает. /api/v1/timelines/public

Это апи для получения публичного инбокса на серваке? Хочется считать тред какой то целиком и дочитывать его по мере поступления ответов.

Это апи для фронтенда, для межсерверных взаимодействий не используется.

@admin @rf @ru @russian_mastodon @3draven

@top @admin @rf @ru @russian_mastodon а есть где то апи для того что бы считать и дочитывать тред? И где межсерверное описано?

@top @admin @rf @ru @russian_mastodon ну и фронт тоже читает треды, он это делает этим эндпоинтом?

> ну и фронт тоже читает треды, он это делает этим эндпоинтом?

Фронт обращается только к своему серверу, к чужим не обращается.

> а есть где то апи для того что бы считать и дочитывать тред?

У мастодона есть межсерверное апи, через которое можно запросить ответы (у плеромы нет, например), но используется ли оно на практике я не видел.

> И где межсерверное описано?

API можно исследовать самостоятельно курлом, например:

curl -H 'Accept: application/activity+json' 'https://mtdn.anyqn.com/users/3draven/statuses/109653670409451907' | python3 -m json.tool

Смотри директиву "replies" в ответе, там ссылка на соответствующий api для получения ответов на пост.

@admin @rf @ru @russian_mastodon @3draven

@top @admin @rf @ru @russian_mastodon а, это все же активити паб. Придется читать таки.

Ну да, всё межсерверное взаимодействие происходит по протоколу AP.

А да, не очевидный момент, о котором мало где упоминают, ко многим урлам что ты видишь в адресной строке браузера на AP инстансах, можно обратиться передав хедер Accept: application/activity+json и тогда сервер вернёт ответ в формате jsonld, а не html.

@admin @rf @ru @russian_mastodon @3draven

@top @admin @rf @ru @russian_mastodon начал смотреть и кажется клиентский апи мастодона не соответсвует спеке. Буду копаться дальше. Спасибо.

Follow

@top @admin @rf @ru @russian_mastodon

Вот конкретно
mtdn.anyqn.com/inbox
mtdn.anyqn.com/users/3draven/i

Этих эндпоинтов нет. А именно они нужны что бы прочитать все ответы во всех тредах, что накопились с момента последней проверки. Что бы не читать миллион раз по каждому треду по отдельности.

Я так понимаю у мастодона вместо
mtdn.anyqn.com/inbox -> /api/v1/timelines/public
А вместо второго вообще неясно, что использовать пока. Бида.

· · Web · 1 · 0 · 0

@top @admin @rf @ru @russian_mastodon

Вот за хидер спасибо, полезный. С него зашел в
mtdn.anyqn.com/users/3draven

там эндпоинты в ответе описаны
"inbox": "mtdn.anyqn.com/users/3draven/i",
"sharedInbox": "mtdn.anyqn.com/inbox"

Но на серваке их реально нет.

inbox для входящих post запросов, а то что ты ищешь это outbox.

@admin @rf @ru @russian_mastodon @3draven

@top @admin @rf @ru @russian_mastodon

Видать я плохо читал. Мне показалось, что outbox это эндпоинт что бы получить, что написал юзер, а inbox это то, что написали ему. То есть если я хочу получить все ответы на все треды юзера мне надо именно inbox, нет? Причем мне надо получить ответы и самого юзера на его треды и других людей, на все треды юзера. То есть инкрементное развитие всех тредов с определенного момента в прошлом до текущего. Что бы периодически считывать развитие бесед.

Не, по идее в outbox только то что юзер отправил в паблик. Эндпоинт inbox принимает только post запросы (хотя может с авторизацией и отдаст то что ему предназначено, хз, это не исследовал). Можно ли как-то прямым путём получить сообщения, предназначенные другому пользователю, хоть и публичные, это хз.

@admin @rf @ru @russian_mastodon @3draven

@top @admin @rf @ru @russian_mastodon

Спасибо. Пойду копаться дальше.

@top @admin @rf @ru @russian_mastodon

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

@top @admin @rf @ru @russian_mastodon

В мастодоне есть еще апи
mtdn.anyqn.com/api/v1/statuses

если вызвать с айдишником корня беседы, то он высдаст всех потомков корня. Но это надо по каждой беседе ходить, а у меня их уже 1к или около того, а через год будет 100к. В общем пока непонятно. Подозреваю в итоге придется просто мониторить.
/api/v1/timelines/public

Если этот фид содержит все сообщения сервака.

Sign in to participate in the conversation
MustUdon

I like Twitter, but, Mastodon it is so excited! Feel free to register it is server just for fun! Usefull links https://instances.social https://www.reddit.com/r/Mastodon/comments/yugh2o/some_useful_mastodon_lists/?utm_source=share&utm_medium=web2x&context=3