How are comments federated?

quest@lemmy.world to Fediverse@lemmy.world – 64 points –

I'm trying to figure out how to get the comments of a post given a link to it using ActivityPub.

Based on reading the ActivityPub spec, I thought comments were federated via the replies key of the ActivityPub Object.

This works for Mastodon posts, but not for Lemmy (nor Pleroma). As an example

curl -H "Accept: application/activity+json" https://lemmy.my.id/post/79514 | jq

doesn't contain a replies key. Yet the comments are federated to Mastodon somehow.

What is going on? How can I get the comment?

10

You are viewing a single comment

But in the use case you give, how could you view the replies below the liked comment? If the replies key is absent you can’t. So you can only see those for Mastodon/PeerTube in that case, not Lemmy/Pleroma.

You can see the hierarchy above not below.

You might get a like. It looks like:

like: [
    "id" => "https://lemmy.one/activities/like/7d0ef24f-755f-48dd-9b37-ea42041cb34e",
    "actor" => "https://lemmy.one/u/Matt",
    "object" => "https://lemmy.procrastinati.org/comment/146844",
    "type" => "Like",
    "audience" => "https://lemdro.id/c/android"
]

In the object property you see the comment. If you visit that you'll get among the rest of the json for the comment

"inReplyTo": "https://lemmy.world/comment/1269475",

And again

"inReplyTo": "https://lemdro.id/post/77457",

Now you have the hierarchy from the like's comment to the post. Not the rest of the tree, enough to render the comment in context though.

I understand exactly what you're saying; you can get the parents but not the replies in that situation.

I'm just saying that in your situation (e.g. someone I follow on Mastodon likes a Lemmy post) it would be convenient for me as a user to be able to view the replies to that Lemmy post, but I cannot necessarily do that because Lemmy does not include replies.

I expect it does, from the lemmy API. But from the ActivityPub api, it doesn't make sense to.