alright, after like a year of halfheartedly trying on and off, #FetchAllReplies is pretty much finished - the problem of not being able to see all replies to a post is one of the largest complaints that people have with mastodon in particular but also the fedi in general. It is an especially potent problem for smaller servers, making them feel lonely, and making the whole fedi seem quiet. It is also a large contributor to the 'reply guy' problem where a moderately popular post will get the same replies over and over again and people won't even know they're doing it.
This patch recursively fetches replies using activitypub collections. it does it respectfully, only when someone is explicitly looking at a post (rather than fetching all replies for everything all the time) with some debounce, and spaces out the recursive calls to the other servers in deep threads.
the only thing left is to make the posts get inserted into the web client as they are received, currently you need to refresh to see them.
trying it locally now and it is a game changer.
i'm not "good at ruby" so if you ever wanna see this upstream, kindly spare a code review?
https://github.com/NeuromatchAcademy/mastodon/pull/44
#FediDev #MastoDev #UnFuckTheFedi #PubSubIsCoolButPresentsPrettySeriousUsabilityProblems #JustSmallInstanceThings
Fetch All Replies v2 - Service Edition by sneakers-the-rat · Pull Request #44 · NeuromatchAcademy/mastodon
Fix: #43 More discussion/description at #43 Current status: the core of the feature is complete, but we need to restructure it a bit for the frontend and to mitigate one abuse scenario 24-09-29: ...GitHub
Code of Amor 💘
•jonny (good kind)
•Uses activitypub collections, so can get posts from any AP instance instead of the 4 fedifetcher can do
Can get complete contexts (that the servers will give you) instead of the 40 post cap with logged out contexts requests against masto
Not messy - doesnt download the entire fediverse
Not slow - fedifetcher uses the search api which does a ton of other stuff when it fetches a post (like fetch the entire profile and resolve all their links and so on)