ActivityPub C2S: issues when navigating the inbox and outbox
I noted the following issues when navigating the inbox and outbox using the ActivityPub C2S API.
-
As noted in #751 (closed) , 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.