Automatic category/community assignment on received object

I'm wondering how content on threadiverse is automatically assigned its community when received by the software (e.g. PieFed, Lemmy, Mbin).

The answer I am expecting is "if the community is addressed (to, cc, audience), then it is slotted into that community".

However that causes issues for compatibility with microblogs... for example, @silverpill@mitra.social recently authored a post that mentioned @swf@socialwebfoundation.org and it got slotted into that community on NodeBB, which isn't correct since that group is private.

Better practice would be to only trust the addressed community if it is Announce'd by the community directly, but would fall short if my instance does not receive the Announce (say, if nobody follows the community), in which case we'd fall back to "uncategorized", which is where all microblog posts currently go. Then it's neither correct nor incorrect, I suppose.

I think this might be an issue where NodeBB tries to be too many things at once (microblog and threadiverse compatible).

2 Likes

I think it's important to get an Announce, because the actor who addressed the community might be blocked by that community, or might not be a member of it (if the community is private).
You can try to retrieve the outbox of the addressed community to verify that a post was actually Announce'd

@activitypub

@silverpill@mitra.social I thought about checking against the outbox, but there's a potential race condition that could occur if I receive the Create(Note) at roughly the same time as the community, but the community hasn't processed the activity yet. In that scenario, the activity would not be in the outbox for checking.

The same thing would happen if there was some out-of-band check for object membership in a collection (not that there is one right now).

1 Like

I still think it would be good to update the synchronization function in admin settings to automatically slot any synced community/category into the local category, even if the sync only goes one way (e.g. with Lemmy not being able to remote follow category actors).

@projectmoon@forum.agnos.is it'll work better once cross-posting is built into NodeBB I think :smile:

1 Like

@julian Does NodeBB support creating new topics by mentioning a group/category?

I wonder how context should be assigned in this case.

@silverpill@mitra.social yes, it should. Mentioning the category means it will be addressed and NodeBB will slot the received content in the first group object it finds.

If I create a topic this way, I will be the owner of the context collection. But if the conversation is to be moderated, it should be owned by the group.

Am I correct?

(there is a parallel discussion happening at https://codeberg.org/streams/streams/issues/229)

I suppose you're right in a way. The context owner is not supposed to be set by someone other than the context owner. It's a fallback mechanism intended for better compatibility with Mastodon.

When a group is addressed and it is one of the local NodeBB categories, it will assume control

If it is another group that it knows about but isn't same origin to the author, then no category is assumed.

1 Like

How it works between forums, e.g. between Discourse and NodeBB?
Can a Discourse user create a topic in NodeBB category?
Who creates/owns the context collection in this case?