@rf а кто знает где почитать как устроено взаимодействие серверов в федерации? Что бы не протокол, а простыми словами, вот пост, вот так распространяется, вот эти видят и т.д. Подозреваю сервера плеромы и мастодона еще и по разному реализуют взаимодействие.
@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 спасибо, пойду копаться
@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 начал смотреть и кажется клиентский апи мастодона не соответсвует спеке. Буду копаться дальше. Спасибо.
@top @admin @rf @ru @russian_mastodon
Вот конкретно
https://mtdn.anyqn.com/inbox
https://mtdn.anyqn.com/users/3draven/inbox
Этих эндпоинтов нет. А именно они нужны что бы прочитать все ответы во всех тредах, что накопились с момента последней проверки. Что бы не читать миллион раз по каждому треду по отдельности.
Я так понимаю у мастодона вместо
https://mtdn.anyqn.com/inbox -> /api/v1/timelines/public
А вместо второго вообще неясно, что использовать пока. Бида.
@top @admin @rf @ru @russian_mastodon
Вот за хидер спасибо, полезный. С него зашел в
https://mtdn.anyqn.com/users/3draven
там эндпоинты в ответе описаны
"inbox": "https://mtdn.anyqn.com/users/3draven/inbox",
"sharedInbox": "https://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
В мастодоне есть еще апи
https://mtdn.anyqn.com/api/v1/statuses/109632512947864473/context
если вызвать с айдишником корня беседы, то он высдаст всех потомков корня. Но это надо по каждой беседе ходить, а у меня их уже 1к или около того, а через год будет 100к. В общем пока непонятно. Подозреваю в итоге придется просто мониторить.
/api/v1/timelines/public
Если этот фид содержит все сообщения сервака.
Если тебя не помянули в комменте и никто с твоего инстанса не подписан на того автора, то копия сообщения на твой инстанс не будет послана, поэтому твой инстанс с большой вероятностью этот коммент не увидит. На мало популярных серверах это распространённое явление.
@admin @rf @ru @russian_mastodon @3draven