Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse

NodeBB

  1. Home
  2. ActivityPub
  3. What would cross-posting between instances look like in ActivityPub?

What would cross-posting between instances look like in ActivityPub?

Scheduled Pinned Locked Moved ActivityPub
threadiversecrosspostactivitypub
1 Cross-posts 22 Posts 11 Posters 0 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • erlend_sh@socialhub.activitypub.rocksE erlend_sh@socialhub.activitypub.rocks

    https://github.com/mastodon/mastodon/pull/19059

    jdp23@socialhub.activitypub.rocksJ This user is from outside of this forum
    jdp23@socialhub.activitypub.rocksJ This user is from outside of this forum
    jdp23@socialhub.activitypub.rocks
    wrote on last edited by
    #13

    THanks ... turns out I knew about that: the implementation for the NLNet grant, but never released. My impression is that it's been on hold since then, and there's so much other discussions of group-releated FEPs that I certainly hope they'll incorporate newer thinking if and when it moves forward.

    julian@community.nodebb.orgJ 1 Reply Last reply
    0
    • jdp23@socialhub.activitypub.rocksJ jdp23@socialhub.activitypub.rocks

      THanks ... turns out I knew about that: the implementation for the NLNet grant, but never released. My impression is that it's been on hold since then, and there's so much other discussions of group-releated FEPs that I certainly hope they'll incorporate newer thinking if and when it moves forward.

      julian@community.nodebb.orgJ This user is from outside of this forum
      julian@community.nodebb.orgJ This user is from outside of this forum
      julian@community.nodebb.org
      wrote on last edited by
      #14

      I haven't looked into the differences between their implementation and how groups are implemented using 1b12, but what I have discovered is that the 1b12 community is much larger than I gave it credit for.

      1 Reply Last reply
      0
      • julian@community.nodebb.orgJ This user is from outside of this forum
        julian@community.nodebb.orgJ This user is from outside of this forum
        julian@community.nodebb.org
        wrote on last edited by
        #15

        @projectmoon@forum.agnos.is basically, yes. It would be a little too involved to upend the entire system to support multiple cids per topic β€” a lot of our existing code relies on cid being a single value.

        This would be an add-on logic of sorts, where each topic has a canonical category, but can also be cross-posted to other communities/categories.

        1 Reply Last reply
        0
        • rimu@piefed.socialR rimu@piefed.social

          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 Page which 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.

          julian@community.nodebb.orgJ This user is from outside of this forum
          julian@community.nodebb.orgJ This user is from outside of this forum
          julian@community.nodebb.org
          wrote on last edited by
          #16

          Hey @rimu@piefed.social thanks for responding (and sorry for the late reply!)

          I am not married to the Announce([Article|Note|Page]) approach, so I am definitely open to Create([Article|Note|Page]) with a back-reference. I think I went the former direction because there is a known fallback mechanism β€” the Announce is treated as a share/boost/repost as normal. However, sending the Create also is fine I think.

          1. However, do we need a backreference? In my limited research, it seems that Piefed, et al. picks the first Group actor and associates the post with that community. If I sent over a Create(Article) with two Group actors addressed, could Piefed associate the post with the first, and initiate a cross-post with the remaining Group actors?
          2. Secondly, is how to handle sync. 1b12 relies on communities having reciprocal followers in order for two-way synchronization to be established. On my end since I know it is cross-posted I will now send 1b12 activities to cross-posted communities, but can Piefed, et al. send 1b12 activities back as well, in the absence of followers?

          cc @andrew_s@piefed.social @nutomic@lemmy.ml @melroy@kbin.melroy.org @bentigorlich@gehirneimer.de

          1 Reply Last reply
          0
          • julian@community.nodebb.orgJ julian@community.nodebb.org

            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:

            1. 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.
            2. 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.
            3. 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 Reject handling 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:

            1. Is there desire from PieFed/Lemmy/Mbin for supporting incoming (and possibly outgoing) federation of cross-posting?
            2. What exactly happens currently if a Group actor receives an Announce(Object)? My guess is nothing, currently, but let me know otherwise <img class="not-responsive emoji" src="https://community.nodebb.org/assets/plugins/nodebb-plugin-emoji/emoji/android/1f604.png?v=aafd56e36a3" title="πŸ˜„" />
            3. Would this allow you to accept cross-posts from other AP applications without needing to refactor any existing code?
            4. 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

            silverpill@mitra.socialS This user is from outside of this forum
            silverpill@mitra.socialS This user is from outside of this forum
            silverpill@mitra.social
            wrote last edited by
            #17

            @julian Hi, what's the status of this? Is cross-posting still done by making a copy of a post?

            julian@activitypub.spaceJ 1 Reply Last reply
            0
            • ? Guest crossposted this topic to General Discussion
            • silverpill@mitra.socialS silverpill@mitra.social

              @julian Hi, what's the status of this? Is cross-posting still done by making a copy of a post?

              julian@activitypub.spaceJ This user is from outside of this forum
              julian@activitypub.spaceJ This user is from outside of this forum
              julian@activitypub.space
              wrote last edited by
              #18

              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.

              1 Reply Last reply
              0
              • silverpill@mitra.socialS This user is from outside of this forum
                silverpill@mitra.socialS This user is from outside of this forum
                silverpill@mitra.social
                wrote last edited by
                #19

                If you were to implement federated cross-posting, how it would work? A post addressed to multiple communities (more than 1 item in audience)?

                julian@activitypub.spaceJ 1 Reply Last reply
                0
                • silverpill@mitra.socialS silverpill@mitra.social

                  If you were to implement federated cross-posting, how it would work? A post addressed to multiple communities (more than 1 item in audience)?

                  julian@activitypub.spaceJ This user is from outside of this forum
                  julian@activitypub.spaceJ This user is from outside of this forum
                  julian@activitypub.space
                  wrote last edited by
                  #20

                  That would be simplest but doesn't allow for third parties to cross post. So I think a separate activity would be needed.

                  1 Reply Last reply
                  0
                  • silverpill@mitra.socialS This user is from outside of this forum
                    silverpill@mitra.socialS This user is from outside of this forum
                    silverpill@mitra.social
                    wrote last edited by
                    #21

                    So you send a Create to the primary community, and then CrossPost to 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.

                    julian@activitypub.spaceJ 1 Reply Last reply
                    0
                    • silverpill@mitra.socialS silverpill@mitra.social

                      So you send a Create to the primary community, and then CrossPost to 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.

                      julian@activitypub.spaceJ This user is from outside of this forum
                      julian@activitypub.spaceJ This user is from outside of this forum
                      julian@activitypub.space
                      wrote last edited by
                      #22

                      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 crossposts collection or something. I was toying with the idea of maybe using Offer to signify that action, but I wasn't too invested in making it happen.

                      1 Reply Last reply
                      0

                      Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                      Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                      With your input, this post could be even better πŸ’—

                      Register Login
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      Powered by NodeBB Contributors
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups