-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
support Pixelfed #39
Comments
Yes. I saw it has atom feeds, so that's great for following - would be cooler if it had microformats indeed. I'm going to open an account and see if I can interact with it already ;-) |
Tried it, bummer ;-) Might be because federation hasn't been fully deployed yet when checking their account (https://mastodon.social/@pixelfed/100925207518316311) |
@snarfed AP support isn't quite ready yet. I am interested in implementing more indieweb stuff like microformats and maybe webmentions! |
Tried another reply as https://mastodon.social/@pixelfed/101301109645686324 says it should work, but didn't get through yet. I'll see if I can trigger it from command line. |
So got a bit further already setting up a pixelfed instance on my local machine. When trying to validate the actor, I was sending 'https://fed.brid.gy/r/http://realize.be' but that didn't resolve, using https://fed.brid.gy/realize.be was fine (I didn't have any problems with that testing with mastodon, and bridgy fed sends a full actor object afaics, so that might actually be a problem too). However, after that, we need some more properties in the actor activity json as pixelfed wants to store following properties on the actor object
Once I faked that, the profile was saved. The username becomes @realize.be@fed.brid.gy - I guess that isn't that much of a problem (I think) The reply doesn't get through, because when the url is verified, it tries to get the application/ld+json representation of it, unless I'm reading the code wrong (going from handleNoteReply() to statusFirstOrFetch()). It's weird though that it wants to bail out here as it has the activity object already, so I'm a bit in the dark here why it does that. Any pointers @dansup ? |
awesome progress, thank you @swentel! i can definitely add those three properties, and look into why conneg for |
ok @swentel, bridgy fed actors now have |
and re:
you mean that pixelfed tries to fetch a bridgy fed wrapped post URL, eg https://fed.brid.gy/r/https://snarfed.org/2018-11-10_30370 , with something like |
Yes, the code for the internal http client uses following headers:
I'm still a bit in the dark why it does that validation again, but I assume that it wouldn't hurt to have this representation anyway. Mastodon does it as well, e.g.
|
for pixelfed, #39. specifically, if the client asks for application/activity+json or application/ld+json (which pixelfed does), fetch and convert to AS2 instead of returning a 302 redirect.
@swentel done! curl -v -H 'Accept: application/ld+json; profile="https://www.w3.org/ns/activitystreams"' \
https://fed.brid.gy/r/https://snarfed.org/2018-11-10_30370 |
Awesome, will test and let you know to see if my local instance accepts it! fingers crossed |
So pixelfed assumes attributedTo is a string and not an object. This is on hold until that's figured out - and fixed in pixelfed imo. |
Ok, I got a reply working for pixelfed. You can see the reply on https://pixelfed.social/p/swentel/16606. This is the object I send.
Pixelfed validates again by fetching the activitystreams representation of the id in the object (https://realize.be/reply/content/1696 - note: with Accept: application/activity+json). The part which took me long to figure out is that the response of this is not the activity, but only the object
I'll come back to confirm that a note with attachment works. |
Posting individual notes (photos) works as well. Notes without attachment won't work (unless it's a reply). Payload example - visible at https://pixelfed.social/i/web/post/_/218345390364299264/219416742496178176 (but you need to be authenticated to view - not exactly sure why that is, that's for another day to figure out)
|
I tried to reply to a post on my pixelfed instance using bridgy fed and it looks like the job is failing due to the keyId being the incorrect format. The error at the pixelfed end is: The format of the keyId in the post is: |
I tried to federate a like of this post on piconic.co, running Pixelfed v0.11.4. It succeeded, BF log here, but I don't see the like on the post yet. 🤷 |
I liked the same post from @snarfed@indieweb.social (Mastodon), and that like now shows up on the post, so interop here still isn't quite working yet. |
Another thing to look at: when I search for @snarfed.org@snarfed.org on a PixelFed instance, it finds me, but it shows my handle as @snarfed.org@fed.brid.gy. 😐 |
After #442, I tried liking and replying to the same piconic.co post above again, https://piconic.co/i/web/post/507466431055899254 , both 200ed but neither showed up. |
Tried this follow just now, also 200ed and didn't show up. If BF users' server shows up in PixelFed as fed.brid.gy, not their domain, ie we're eg {
"published": "2023-10-24T13:01:58-07:00",
"content": "Follows <a class=\"u-follow-of\" href=\"https://piconic.co/i/web/profile/145384761425268736\">https://piconic.co/i/web/profile/145384761425268736</a>.\n<div class=\"e-content\">\npiconic\n</div>",
"url": "https://fed.brid.gy/r/https://snarfed.org/2023-10-24_piconic-2",
"actor": "https://fed.brid.gy/snarfed.org",
"id": "https://fed.brid.gy/r/https://snarfed.org/2023-10-24_piconic-2",
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Follow",
"object": "https://piconic.co/users/snarfed",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"contentMap": {
"en": "Follows <a class=\"u-follow-of\" href=\"https://piconic.co/i/web/profile/145384761425268736\">https://piconic.co/i/web/profile/145384761425268736</a>.\n<div class=\"e-content\">\npiconic\n</div>"
}
} |
Follows still aren't getting accepted ^. Eg for @TomCasavant in #1053, we sent the {
"id": "https://bsky.brid.gy/r/https://bsky.brid.gy/#follow-back-https://pixelfed.social/users/mrpresidenttom-2024-05-08T10:45:02.854174+00:00",
"actor": "https://bsky.brid.gy/bsky.brid.gy",
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Follow",
"object": "https://pixelfed.social/users/mrpresidenttom",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
]
} |
Pinged dansup on Matrix just now 🤞 |
@snarfed that object ID doesn't look like a valid URI? Maybe that's the source of the issue? |
@ThisIsMissEm thanks for looking! And hmm. |
The URI is syntactically fine afaict, but maybe it's trying to actually fetch it? |
Hmm, maybe? ids with fragment are relatively common in the fediverse, and how to fetch them is largely undefined. 🤷 w3c/activitypub#367 |
https://indieweb.social/@dansup@mastodon.social/113486798693428826 :
|
Interestingly bridging out of Pixelfed into Bluesky is working ok, at least somewhat, eg https://bsky.app/profile/freyja-lynx.pixelfed.social.ap.brid.gy . That bridged account doesn't have the latest post from the Pixelfed account though, not sure why. |
it does AP, so it might already work! first thing to do is try testing it.
https://pixelfed.org , https://github.com/pixelfed/pixelfed , cc @swentel @dansup.
alternatively we could just lobby for microformats and webmentions. 😄
The text was updated successfully, but these errors were encountered: