[Idea] muting subthreads on BE, how it may be done #452
Labels
No labels
approved, awaiting change
bug
configuration
documentation
duplicate
enhancement
extremely low priority
feature request
Fix it yourself
help wanted
invalid
mastodon_api
needs docs
needs tests
not a bug
planned
pleroma_api
privacy
question
static_fe
triage
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: AkkomaGang/akkoma#452
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
I'm pretty sure I've seen people ask for this in the past, but I don't find issues here nor on the pleroma issue tracker. I think the general answer was always that muting subthreads isn't something which can be easily done, but I think I have a way. I want to share it somewhere so that we can more easily find it if someday demand for it comes. See also https://ilja.space/notice/AS1tvCFT399HbdT05Y
The idea is the following:
Currently we have a
context
. Every post of the same thread gets assigned the same context. That way you can easily fetch the thread by simply fetching the context. Awesome!The problem now is that we want to somehow mute only a part of the thread. One way I can think of is to introduce a new field who holds an array of identifiers. In this example, I call it
subcontext
, feel free to propose a better name ;) In this example I use id's in the form "001", but in practice, these should maybe be iri's or something[1]So then we could fetch a thread by saying "Give me everything with context A", but filter out subthreads with "Give me everything with context A, which doesn't have subcontext 003".
Or if a notification is generated, we could say "don't generate for activities with subcontext 003". Or it could be done client side by saying "filter out notifications for activities with subcontext 003".
And if the array is ordered, we could even ask subthreads with something like "Give me everything from subcontext ["001", "002", "003"]", which would translate in "everything with 003 in it's subcontext array, and also post with subcontext ["001"] or subcontext ["001", "002"]".
The reason why it's a new field is so that we can keep using context the way we already do, while instances that don't understand this subcontext can safely ignore it. (It's their loss that they can't easily filter subthreads 😏).
[1]
I'm unsure what these subcontext id's should be. First I was thinking a new id pointing to a collection, with "001" being the same id as the original context. But maybe the id of the Objects inReplyTo makes more sense? That would make this
subcontext
an ordered list ofinReplyTo
recursively. (MaybeinReplyToArray
would be a more proper name, but again, feel free to make better proposals 😬).That would make it something like
[Idea] muting subthreads on BE, how it could maybe be doneto [Idea] muting subthreads on BE, how it may be done