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
3 Comments
silverpill@mitra.social · 1 pts · 90d
@julian Hi, what's the status of this? Is cross-posting still done by making a copy of a post?
rimu@piefed.social · 0 pts · 1y
IMO The simplest way would be to garnish a bit of extra data onto the normal FEP 1b12 process.
Create a new post (Create -> Page to the instance that hosts the community, which in turn does Announce -> Create -> Page to followers) and add an extra field to the
Pagewhich is the URL of the original post. That will establish the association.To reject the cross-post, return HTTP 400 (403?) to the POST to the inbox on the initial Create -> Page ? Or send a Reject activity, either way is fine but the 400 seems easiest. Lemmy returns 400 for a lot of things so we have some prior art in that direction.
projectmoon@forum.agnos.is · 0 pts · 1y
How would this work on the NodeBB side? Multiple categories associated with one topic?