Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • 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
Brand Logo

agnos.is Forums

freamon@community.nodebb.orgF

[email protected]

@[email protected]
About
Posts
23
Topics
1
Shares
0
Groups
0
Followers
0
Following
0

View Original

Posts

Recent Best Controversial

  • Does nodebb support following/joining federated communities?
    freamon@community.nodebb.orgF [email protected]

    @eeeee Your reply (what Lemmy would term a comment) would go out to friend@nodebbinstance but it would be up to nodebbinstance to resolve what post the comment was a reply to.

    To illustrate what I mean about Lemmy and User Mentions in posts, see this post as an example. In the body of that post, the user Mentions 2 people - [email protected] and[email protected] but neither of those people would have been notified of that post. You can see for yourself by looking at the activitypub representation of that post (by running curl --header 'accept: application/activity+json' --location https://lemmy.dbzer0.com/post/39126561 | jq .) and noting that there are no Mentions in the 'tag' section. By contrast, another user Mentions [email protected] in this comment, and she would have been notified of that (you can see that this time there is a Mention in activitypub representation of that coment).

    @julian For the other direction - as you've found out, Lemmy will first look at 'audience' for a root post and try to resolve it and bail if that doesn't work. If there's no 'audience', it will look in 'cc' to try to find a community and stops when it finds one. It won't look further, so you can't post in more than one community at a time, and you can't use a root post to post in Lemmy community and also notify a Lemmy user of it. It distinguishes between root posts and other posts because the root post is a Note will 'null' for 'inReplyTo'.

    Fediverse

  • Does nodebb support following/joining federated communities?
    freamon@community.nodebb.orgF [email protected]

    @eeeee If you mean 'post' in the sense that Lemmy means 'post' (i.e. something distinct from a comment), then Lemmy doesn't process User Mentions in those. In a comment, you can Mention your NodeBB user and Lemmy will send it to the relevant instance, but nothing will happen if you Mention your NodeBB user in a post.

    Fediverse

  • Fediverse, one account for everything?
    freamon@community.nodebb.orgF [email protected]

    @julian I tested out a root post that mentioned a PieFed community, and it got there okay - it's viewable at https://pythag.net/c/sci_fi (and federated out okay to another PieFed instance at https://palaver.p3x.de/c/[email protected])

    My guess as to why Lemmy might not like it is that the activity contains:

    "audience": "https://community.nodebb.org/category/-1"
    

    It looks like Lemmy tries to fetch that and can't parse the response.

    Fediverse

  • Sending a private message without cc causes a 500 error
    freamon@community.nodebb.orgF [email protected]

    @rikudou Yeah, sorry, I didn't mean to derail this thread. The GitHub issue was intended to only really be about the 'cc' problem, because it looks like PieFed will have to start sending Create/Note to non-Lemmy platforms anyway, but it'd easier if 'cc' doesn't have to be artificially included to keep NodeBB happy.

    Fediverse

  • Sending a private message without cc causes a 500 error
    freamon@community.nodebb.orgF [email protected]

    @julian Oh, I've just realised I read Nutomic's PR the wrong way around. After 2.0, you'll start getting Notes from them. If 'ChatMessage' processing isn't worth handling by NodeBB, I can change PieFed to send you Notes instead.

    Fediverse

  • Sending a private message without cc causes a 500 error
    freamon@community.nodebb.orgF [email protected]

    @julian I've added support to PieFed to successfully receive Create / Note as a PM from NodeBB.

    From Nutomic's PR, it looks like you'll continue you get Create / ChatMessage from them, as also you will from PieFed. This currently fails, as I guess that it converts them into a Create / Note, but then complains of there being no 'cc'.

    It doesn't make sense for PMs to be 'carbon copied' to anyone, so I'll raise an Issue at your repo.

    Fediverse

  • Sending a private message without cc causes a 500 error
    freamon@community.nodebb.orgF [email protected]

    @freamon Update: no, Lemmy doesn't understand them either. It rejects Create / Note without a community with the usual "did not match any variant of untagged enum AnnouncableActivities"

    Fediverse

  • Sending a private message without cc causes a 500 error
    freamon@community.nodebb.orgF [email protected]

    @julian It currently doesn't. If someone is Mentioned, the assumption is that it was part of post / comment in a community, and it fails because it can't find the community. I know that, for Lemmy, if you Mention someone in a comment, and they don't have a copy of the community (or they do and there's no local subscribers to it), then it will reject it. I don't know what it does if there's no community at all (I'll figure out a way to test it, on a server I can control).

    Fediverse

  • Sending a private message without cc causes a 500 error
    freamon@community.nodebb.orgF [email protected]

    @julian Oh, right. Thanks. But yeah, it's what Lemmy (and PieFed) uses, so I just assumed it was part of AP, and never looked into it any further.

    I was thinking while typing this "I bet that means that chat messages from NodeBB to PieFed will fail", which I just tested, and sure enough they do (I'll make an Issue for it on PieFed's repo).

    Fediverse

  • Sending a private message without cc causes a 500 error
    freamon@community.nodebb.orgF [email protected]

    @rikudou As far as I understand things, a 'private message' in ActivityPub is Create / ChatMessage, not Create / Note. I think NodeBB wouldn't be the only software to complain if 'cc' is missing from either part of Create / Note (although it's not expected in either part of Create / ChatMessage).

    Fediverse

  • 1b12 vs Guppe groups
    freamon@community.nodebb.orgF [email protected]

    Guppe Announces the original post, and the replies to it, but doesn't Announce anything else. For the replies, it also does what PeerTube does and sends out them unsigned, for instances to verify using the LD signature in the activity, or to fetch from the source. If you want to meaningfully vote on something that came from a.gup.pe, you have to send it to the original author, not to a.gup.pe like you would if you were voting from something from Lemmy, because a.gup.pe will just silently drop it.

    Lemmy's communities Announce everything, but Mastodon only comprehends Announce as a Boost, so it just rejects the Announce of anything that's not a Page or a Note. There are other platforms though (e.g. Friendica) who will see the Announce of a Like, and go fetch it from it's source (most non-Lemmy platforms don't trust Lemmy-style Announces, because whilst it's against the spec for Announce contents not to be an exact copy of the original activity, there's nothing stopping a rogue community from misrepresenting users or undoing their intentions).

    Fediverse activitypub 1b12 guppe

  • Test from PieFed!
    freamon@community.nodebb.orgF [email protected]

    @julian Hi. Your reply won't have made it back, because of this issue - NodeBB is putting the wrong actor in the activity.

    It's not a PieFed issue, pretty much all other federated platforms will reject activities if it's wrong. For example, on Lemmy, this post never made it there: https://lemmy.ml/c/[email protected]?dataType=Post&sort=New

    OP's post was Announced by NodeBB as this:

    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "actor": "https://piefed.social/u/GroupNebula563",
      "cc": [
        "https://piefed.social/u/GroupNebula563",
        "https://www.w3.org/ns/activitystreams#Public"
      ],
      "id": "https://community.nodebb.org/post/https%3A%2F%2Fpiefed.social%2Fpost%2F468827#activity/announce/1739242064700",
      "object": {
        "@context": [
          "https://www.w3.org/ns/activitystreams",
          "https://w3id.org/security/v1"
        ],
        "actor": "https://piefed.social/u/GroupNebula563",
        "audience": "https://community.nodebb.org/category/30",
        "cc": [],
        "id": "https://piefed.social/activities/create/ZBBVVw3sp3wAdZ3",
        "object": {
          "attachment": [],
          "attributedTo": "https://piefed.social/u/GroupNebula563",
          "audience": "https://community.nodebb.org/category/30",
          "cc": [],
          "commentsEnabled": true,
          "content": "<p>PieFed is very similar to Lemmy, but with a couple small differences that a couple people prefer. It se                                                                                                                  ems to be retrieving the community okay, we'll see if this post goes through.</p>\n",
          "id": "https://piefed.social/post/468827",
          "language": {
            "identifier": "en",
            "name": "English"
          },
          "mediaType": "text/html",
          "name": "Test from PieFed!",
          "nsfl": false,
          "published": "2025-02-11T02:47:42.609106+00:00",
          "sensitive": false,
          "source": {
            "content": "PieFed is very similar to Lemmy, but with a couple small differences that a couple people prefer. It see                                                                                                                  ms to be retrieving the community okay, we'll see if this post goes through.",
            "mediaType": "text/markdown"
          },
          "stickied": false,
          "tag": [],
          "to": [
            "https://community.nodebb.org/category/30",
            "https://www.w3.org/ns/activitystreams#Public"
          ],
          "type": "Page"
        },
        "to": [
          "https://community.nodebb.org/category/30",
          "https://www.w3.org/ns/activitystreams#Public"
        ],
        "type": "Create"
      },
      "to": [
        "https://community.nodebb.org/category/30/followers"
      ],
      "type": "Announce"
    }
    

    The first 'actor' is wrong - it shouldn't be https://piefed.social/u/GroupNebula563, because you don't have the privkey to Announce anything as that user, and for them to send the activity to https://community.nodebb.org/category/30/followers doesn't make sense. The first 'actor' should be https://community.nodebb.org/category/30, which it was before a recent change.

    Likewise, your reply was sent out as:

    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "actor": "https://community.nodebb.org/uid/2",
      "cc": [
        "https://community.nodebb.org/uid/2",
        "https://www.w3.org/ns/activitystreams#Public"
      ],
      "id": "https://community.nodebb.org/post/103212#activity/announce/1739244715728",
      "object": {
        "actor": "https://community.nodebb.org/uid/2",
        "cc": [
          "https://community.nodebb.org/uid/2/followers",
          "https://piefed.social/u/GroupNebula563"
        ],
        "id": "https://community.nodebb.org/post/103212#activity/create/1739244715677",
        "object": {
          "@context": [
            "https://www.w3.org/ns/activitystreams",
            {
              "Emoji": "toot:Emoji",
              "toot": "http://joinmastodon.org/ns#"
            }
          ],
          "attachment": [],
          "attributedTo": "https://community.nodebb.org/uid/2",
          "audience": "https://community.nodebb.org/category/30",
          "cc": [
            "https://community.nodebb.org/uid/2/followers",
            "https://piefed.social/u/GroupNebula563"
          ],
          "content": "<p><a href="\&quot;https://piefed.social/u/GroupNebula563\&quot;">@[email protected]</a> the message was received! Hello! :smile:</p>\n",
          "context": "https://community.nodebb.org/topic/07a57511-3b8b-4efd-a496-88824f72dbaa",
          "id": "https://community.nodebb.org/post/103212",
          "inReplyTo": "https://piefed.social/post/468827",
          "name": "Re: Test from PieFed!",
          "published": "2025-02-11T03:31:54.966Z",
          "replies": "https://community.nodebb.org/post/103212/replies",
          "source": {
            "content": "&lsqb;&lsqb;@[email protected]](https://community.nodebb.org/user/groupnebula563%40piefed.social)](https://community.nodebb.org/user/groupnebula563%40piefed.social) the message was received! Hello! :smile:",
            "mediaType": "text/markdown"
          },
          "summary": null,
          "tag": [
            {
              "href": "https://piefed.social/u/GroupNebula563",
              "name": "[@[email protected]](https://community.nodebb.org/user/groupnebula563%40piefed.social)",
              "type": "Mention"
            },
            {
              "icon": {
                "mediaType": "image/png",
                "type": "Image",
                "url": "https://community.nodebb.org/assets/plugins/nodebb-plugin-emoji/emoji/android/1f604.png?v=70fb7184b74"
              },
              "id": "https://community.nodebb.org/assets/plugins/nodebb-plugin-emoji/emoji/android/1f604.png?v=70fb7184b74",
              "name": ":smile:",
              "type": "Emoji"
            }
          ],
          "to": [
            "https://www.w3.org/ns/activitystreams#Public",
            "https://piefed.social/u/GroupNebula563"
          ],
          "type": "Note",
          "updated": null,
          "url": "https://community.nodebb.org/post/103212"
        },
        "to": [
          "https://www.w3.org/ns/activitystreams#Public",
          "https://piefed.social/u/GroupNebula563"
        ],
        "type": "Create"
      },
      "to": [
        "https://community.nodebb.org/category/30/followers"
      ],
      "type": "Announce"
    }
    
    • the Announce actor should again be https://community.nodebb.org/category/30, because whilst you do have the privkey for https://community.nodebb.org/uid/2 it's not you that's Announcing this, it's the category. In Mastodon terms, an Announce is a Boost, so this activity is saying that you're Boosting your own post, which also doesn't make sense.
    Fediverse

  • Hey @[email protected] I'm currently experimenting with a NodeBB setup that has ActivityPub enabled.
    freamon@community.nodebb.orgF [email protected]

    @julian I like how PeerTube does it. Looking at https://tilvids.com/c/thelinuxexperiment_channel/videos, for example, there's 2 intersecting squares next to the channel name, and clicking that puts the handle into my clipboard, for pasting into the box that I can then use on my instance to fetch it.

    Fediverse

  • Hey @[email protected] I'm currently experimenting with a NodeBB setup that has ActivityPub enabled.
    freamon@community.nodebb.orgF [email protected]

    @julian I just ran into this. I guessed that the 'shortname' for https://forum.wedistribute.org/category/6/the-decentered-podcast would be 'the-decentered-podcast' but trying to fetch [email protected] didn't work, because it's actually just 'decentered'. I don't think that there's a way for anybody just looking at HTML representation to know this.

    Fediverse

  • @activitypub Hey, thanks for the awesome ActivityPub support!
    freamon@community.nodebb.orgF [email protected]

    @[email protected]

    The AP from NodeBB is missing the 'name' field for images (where alt-text is put). If you inspect that first image in a web browser, the alt-text reads "Pic of a flow battery development kit ...", but for the relevant AP, compare NodeBB with a random image on pixelfed:

    curl -L -H 'accept: application/activity+json' https://fbrc.nodebb.com/post/8 | jq .attachment[0]

    vs.

    curl -L -H 'accept: application/activity+json' https://pixelfed.de/p/tercean/364 | jq .attachment[0]

    Fediverse

  • Any plans to add 'actor' to Create activities from nodebb users?
    freamon@community.nodebb.orgF [email protected]

    @julian Awesome, thanks.

    Hopefully Announce / Update isn't similarly afflicted! (I realise that activity is the source of its own Issue, so I haven't seen any yet).

    Fediverse

  • Images not federating?
    freamon@community.nodebb.orgF [email protected]

    If you're talking about inline images, they are federating out as relative links. For example, the in the AP for https://community.nodebb.org/post/102818, the 'content' look like:

       "content": "<p><img /></p>\n<p> (snip)",
      "source": {
        "content": "![c40d9378-d355-4d5c-80b0-b0b43b509e55-image.png](/assets/uploads/files/1737576484993-c40d9378-d355-4d5c-80b0-b0b43b509e55-image.png) (snip)",
        "mediaType": "text/markdown"
      }
    

    So if you look at the same post on agnos it's trying to fetch an image relative to the wrong base.</p>

    Tech

  • Is ActivityPub too complicated?
    freamon@community.nodebb.orgF [email protected]

    Looks like I was wrong before: whilst it's true that Lemmy isn't always great at sending an 'Accept' back, that's not the issue here. I was thinking about it from the perspective of a Person following a Group, not a Group following a Group.

    It'll be interesting to see how the Lemmy devs respond. It's not really relevant for PieFed, because I'm not sure that there's communities there that have enough activity to warrant syncing to a category, but I thought about what would happen if you tried, and it would fail. The follower would be checked to see if they are a Person, and the request would go no further if not (there's no handy error returned, though).

    I'm not sure it would be possible to enable, with the way the database is currently set up. We have a 'community_member' table, that looks like:

    pyfedi=# \d community_member
                             Table "public.community_member"
          Column      |            Type             | Collation | Nullable | Default
    ------------------+-----------------------------+-----------+----------+---------
     user_id          | integer                     |           | not null |
     community_id     | integer                     |           | not null |
     is_moderator     | boolean                     |           |          |
     is_owner         | boolean                     |           |          |
     is_banned        | boolean                     |           |          |
     notify_new_posts | boolean                     |           |          |
     created_at       | timestamp without time zone |           |          |
    Indexes:
        "community_member_pkey" PRIMARY KEY, btree (user_id, community_id)
        "ix_community_member_is_banned" btree (is_banned)
    Foreign-key constraints:
        "community_member_community_id_fkey" FOREIGN KEY (community_id) REFERENCES community(id)
        "community_member_user_id_fkey" FOREIGN KEY (user_id) REFERENCES "user"(id)
    

    So if the 'user_id' was actually a Group instead of a Person, then it would have a join to the wrong table.

    Fediverse activitypub nodebb 4.0

  • NodeBB v4.0.0 — Federate good times, come on!
    freamon@community.nodebb.orgF [email protected]

    @darkpollo Oh, sorry. It turns out that that link worked because I'm logged in to defcon.social.

    I've crowbarred your comment into my dev instance for PieFed instead: https://pythag.net/post/4695#comment_27962

    Fediverse activitypub nodebbactivityp release forums nodebb

  • NodeBB v4.0.0 — Federate good times, come on!
    freamon@community.nodebb.orgF [email protected]

    @darkpollo I'll have a go at answering some of your questions, until something better comes along.

    1. Yes. Here's your reply on another server: link

    2. Yes. I tested out creating and then deleting stuff from a remote account, and this forum acknowledged both.

    3. Remote users don't get any privileges - their profile on this forum is just a text copy of the one they have on their own platforms. In terms of identifying local vs. remote (visually, at least), you can hover over users and see whether they have an '@' in their name. You could do the same programmatically, but I imagine that there's better ways.

    Fediverse activitypub nodebbactivityp release forums nodebb
  • Login

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