Following up on this question I asked back in late March, I wanted to continue thinking about how one would handle cross-posting between categories/communities, given that there isn’t current consensus on it, and especially given that NodeBB—as of v4.3.0—can now see and browse remote categories.
From that original topic, we can distil the following:
- Both PieFed and Mbin do not natively handle cross-posts, a new entity is made with the crucial bits (link, text, possibly title) copied over and changed if needed, sometimes a “cross-posted from…” helper text is prepended.
- There are legitimate concerns that a cross-post might not succeed depending on privilege settings on the receiving end, so a pre-flight check (or explicit rejection) of some kind might be required.
- Cross-posting can be done by the original author, or another user.
So were an FEP to be written, we’d center it around the following assumptions:
- “A user (which may or may not be the object author) is sharing an object to additional audiences”
- We would use the existing
Announce(Object)model - We would not use
Announce(Activity)because it is not the original object creation that is being announced, but the object itself, to a new audience. - Some form of
Rejecthandling would be required for cases where the cross-post is not allowed - How the receiver handles the activity is out-of-scope of the FEP. It could be that the original object is contained within multiple categories/communities, or a duplicate object could be created — implementor’s choice.
This is very similar to an existing announce/boost/reshare, except that instead of addressing the activity to followers list you are addressing it to a group actor’s inbox.
Some additional questions:
- Is there desire from PieFed/Lemmy/Mbin for supporting incoming (and possibly outgoing) federation of cross-posting?
- What exactly happens currently if a Group actor receives an
Announce(Object)? My guess is nothing, currently, but let me know otherwise :smile: - Would this allow you to accept cross-posts from other AP applications without needing to refactor any existing code?
- Duplicating the object would mean the discussion is split between objects. The ideal implementation would be the same object present in multiple categories/communities. Is there desire for this in the threadiverse?
@rimu@piefed.social @andrew_s@piefed.social @melroy@kbin.melroy.org @bentigorlich@gehirneimer.de @nutomic@lemmy.ml @angusmcleod@mastodon.social
@julian Hi, what’s the status of this? Is cross-posting still done by making a copy of a post?
It was noted that there were some social barriers that would be crossed if federated cross-posting were implemented.
Namely, tribalism exists in all corners of the fediverse (related; see Jaz’ “million fediverses” blog post). It is more pronounced in the threadiverse because there are explicit fences around communities, e.g. sports team, political leanings, etc.
There is the potential for abuse to occur if cross-posting were made available to users. e.g. enabling dogpiling by cross-posting to a community who does not share the values of the original post.
In and of itself that’s not a reason to not move forward with this. I went ahead and implemented cross-posting in NodeBB itself, but only locally. That is, remote posts can be cross-posted to local categories, but not the other way around. It’s worth noting that me doing this already enables the dogpiling behaviour, though NodeBB forums in general aren’t really all that tribalistic so in practice there have been no issues.
As far as I know, Piefed and Lemmy still treat cross-posts as separate entities. However, they both have independent implementations where similar posts (those that have the same
Link, I think) are “linked” in a manner of sorts. Browsing the comments of one post would show comments from similar posts across different communities.NodeBB does not do this because we do not group content together by
Link.If you were to implement federated cross-posting, how it would work? A post addressed to multiple communities (more than 1 item in
audience)?That would be simplest but doesn’t allow for third parties to cross post. So I think a separate activity would be needed.
So you send a
Createto the primary community, and thenCrossPostto secondary communities. All comments are forwarded to the primary community. The primary communities also moderates the thread.I am understanding it correctly?
This sounds similar to a “repost” in blogo-verse.
And the current implementation (with separate entities) is more similar to quote posts.
Well… in most respects, I think you’ve got it. However, in my mind, a cross-post is merely an activity that references the original object. So there’s no forwarding of comments to the primary community, the post belongs to the primary community, it also just happens to also belong to the secondary community.
There’s no backreference for it, though, which I don’t really like. It’d be better if a cross-post was approved and then the object itself updated a
crosspostscollection or something. I was toying with the idea of maybe usingOfferto signify that action, but I wasn’t too invested in making it happen.If there is no forwarding of comments, then each cross post produces an independent
context, right?



