ActivityPub C2S: issues when navigating the inbox and outbox #866

Closed
opened 2019-05-05 22:05:04 +00:00 by feufochmar · 1 comment
Member

I noted the following issues when navigating the inbox and outbox using the ActivityPub C2S API.

  • As noted in #751 , the previous page is never present, only the next page (no 'prev' field in any OrderedCollectionPage, only 'next' field).

  • In the inbox, the items of a page are ordered in a chronogical order (the first item is the oldest, the last is the newest). In the outbox, the items are ordered in a reverse chronogical order (the first is the newest, the last is the oldest). To be coherent, and since fetching the next page in the inbox and outbox fetches older items, the items of the inbox pages should be ordered in a reverse chronogical order (like the outbox).

  • Going to the 'next' page does not return the next page of a timeline, but the current page of the timeline shifted by one element. It's very annoying for the user when not using an "infinite scrolling" approach. It's also very ineffective to present the collection that way, as it needs almost as many requests as there are items in the collection to fully fetch the collection.

  • When reaching the last page, there is still a 'next' field in the OrderedCollectionPage.
    Getting the next page of the last page of the outbox returns an empty page, and it contains a 'next' field.
    Getting the next page of the last page of the inbox returns an error 500.

I noted the following issues when navigating the inbox and outbox using the ActivityPub C2S API. * As noted in #751 , the previous page is never present, only the next page (no 'prev' field in any OrderedCollectionPage, only 'next' field). * In the inbox, the items of a page are ordered in a chronogical order (the first item is the oldest, the last is the newest). In the outbox, the items are ordered in a reverse chronogical order (the first is the newest, the last is the oldest). To be coherent, and since fetching the next page in the inbox and outbox fetches older items, the items of the inbox pages should be ordered in a reverse chronogical order (like the outbox). * Going to the 'next' page does not return the next page of a timeline, but the current page of the timeline shifted by one element. It's very annoying for the user when not using an "infinite scrolling" approach. It's also very ineffective to present the collection that way, as it needs almost as many requests as there are items in the collection to fully fetch the collection. * When reaching the last page, there is still a 'next' field in the OrderedCollectionPage. Getting the next page of the last page of the outbox returns an empty page, and it contains a 'next' field. Getting the next page of the last page of the inbox returns an error 500.
Owner

Inbox ordering seems to have been fixed.

And #5869 fixes next/prev by reusing the same code as with the MastodonAPI so off-by-one and last page should be fixed.

Inbox ordering seems to have been fixed. And https://git.pleroma.social/pleroma/pleroma/pulls/5869 fixes next/prev by reusing the same code as with the MastodonAPI so off-by-one and last page should be fixed.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
pleroma/pleroma#866
No description provided.