freamon

joined 2 weeks ago
[–] [email protected] 1 points 3 days ago (1 children)

@[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]

[–] [email protected] 1 points 1 week ago

@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).

[–] [email protected] 1 points 1 week ago (1 children)

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.

[–] [email protected] 3 points 1 week ago

@[email protected] No, I don't there's any overlap between PieFed and Fediverser either. The potential of Fediverser seems like it got cut off at the knees by how widely defederated alien.top is.

[–] [email protected] 1 points 1 week ago

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.

[–] [email protected] 2 points 2 weeks ago

Yeah, as mentioned - Lemmy is often quite bad at sending the 'Accept' back for a Follow. It's particularly the case if the instance hasn't heard of you before, because in the process of fetching your user and instance details, it 'forgets' about the Accept. Within Lemmy, everyone's sort of got into the habit of 'Subscribe / Unsubscribe / Subscribe'. (where the first 'subscribe' lets them get your details, and the second one actually gets an 'Accept' back.)

PieFed is more reliable at sending 'Accept' back, so it's maybe useful to check your logic from this end with a community from there, e.g. https://piefed.social/c/antisocialmedia

[–] [email protected] 1 points 2 weeks ago (1 children)

@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

[–] [email protected] 1 points 2 weeks ago (4 children)

@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.

[–] [email protected] 1 points 2 weeks ago

@[email protected] OP answered here: https://feddit.org/comment/4286281 (the lack of mobile apps, was the answer)

[–] [email protected] 2 points 2 weeks ago (2 children)

@[email protected] Thunder is written using Flutter / Dart - meaning that it's cross-platform. I've compiled the version for PieFed for windows, linux and macos, so as long as I'm able to get it working for Android, it should also work for iOS. I'll need to be someone else who does though, 'cos my mac is too old, and I don't have an iphone.

Bonus screenshot:

 

I subscribed to [email protected] earlier, and got my first post. The activity looked like:

{
  "@context": "https://www.w3.org/ns/activitystreams",
  "actor": "https://community.nodebb.org/category/30",
  "cc": [
    "https://community.nodebb.org/category/30/followers"
  ],
  "id": "https://community.nodebb.org/post/https%3A%2F%2Fcommunity.nodebb.org%2Fpost%2F102768#activity/announce/1737427447686",
  "object": {
    "cc": [
      "https://community.nodebb.org/uid/24276/followers"
    ],
    "id": "https://community.nodebb.org/post/102768#activity/create/1737427442685",
    "object": {
      "@context": [
        "https://www.w3.org/ns/activitystreams",
        {
          "Emoji": "toot:Emoji",
          "toot": "http://joinmastodon.org/ns#"
        }
      ],
      "attachment": [],
      "attributedTo": "https://community.nodebb.org/uid/24276",
      "audience": "https://community.nodebb.org/category/30",
      "cc": [
        "https://community.nodebb.org/uid/24276/followers"
      ],
      "content": "<p>Looking through my logs (snip).</p>\n",
      "context": "https://community.nodebb.org/topic/18546",
      "id": "https://community.nodebb.org/post/102768",
      "inReplyTo": null,
      "name": "User Agent Used for Federation?",
      "published": "2025-01-21T02:43:57.558Z",
      "replies": "https://community.nodebb.org/post/102768/replies",
      "source": {
        "content": "Looking through my logs (snip)",
        "mediaType": "text/markdown"
      },
      "summary": null,
      "tag": [],
      "to": [
        "https://www.w3.org/ns/activitystreams#Public"
      ],
      "type": "Note",
      "updated": null,
      "url": "https://community.nodebb.org/post/102768"
    },
    "to": [
      "https://www.w3.org/ns/activitystreams#Public"
    ],
    "type": "Create"
  },
  "to": [
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "type": "Announce"
}

As you can see, there's an 'actor' in the Announce (for the community), and 'attributedTo' in the Note (for the user), but no 'actor' in the Create part. I've not seen this behaviour on any other platforms - there's always an 'actor', with the same value as the 'attributedTo' field in the Note.

I tried to reply to my account on another platform on post , but it didn't federate out (I don't know if having to wait for moderator approval affects this). Given that Announce normally just wraps the original object, it suggests that there'll also be no 'actor' in 'Create' when it's just 'Create/Note' being sent out, but I haven't been able to check. This is a bit inconvenient (for me at least), because I'm used to using that field to get the details of the user who signed the request, and it'll be a pain to have to dig into the Note's 'attributedTo' field to find it.

view more: next ›