snarfed / bridgy-fed

🌉 A bridge between decentralized social network protocols
https://fed.brid.gy
Creative Commons Zero v1.0 Universal
541 stars 29 forks source link

ActivityPub: support Gancio calendaring #1004

Open sysadminpower2019 opened 4 months ago

sysadminpower2019 commented 4 months ago

I run an AP instance for a calendar. I tried to find it on bsky using the suggested link pattern but nothing appears. What i understand is that there needs to be some kind of confirmation from the AP instance but my server does not accept messages

snarfed commented 4 months ago

Hi! DMs aren't implemented yet. Have you followed https://fed.brid.gy/docs#fediverse-get-started ?

sysadminpower2019 commented 4 months ago

Hello

So since this AP instance does not have a messaging option but only the option to add a trusted node. I added the @bsky.brid.gy@bsky.brid.gy. account as a trusted node and it does display the info from the account and I followed it. However i can't see the calendar on bsky and i also can't find my bsky account on the trusted nodes option.

It does however work seem to allow me to follow @snarfed.bsky.social@bsky.brid.gy on the calendar.

Also when i click on the trusted nodes link to the bridge node i get this strange url https://fed.brid.gy/,https://bsky.brid.gy/

Sorry for all the trouble I really hope we can get this working

sysadminpower2019 commented 4 months ago

So it seems to take a while but it is now partially working. I can find the calendar on bsky but none of the events / posts are there. I suppose this is the typical issue of a fediverse instance not fetching all the posts. Maybe this could be enabled if requested

snarfed commented 4 months ago

Interesting interop problems. Thanks for reporting! @sysadminpower2019 which software and instance is this? Mobilizon?

sysadminpower2019 commented 4 months ago

The software is gancio. Gancio.org As for the instance itself i'd rather send that privately if possible.

sysadminpower2019 commented 4 months ago

Just added an event on the calendar and yea nothing shows up on bluesky. I guess the data is getting lost somewhere. Possibly in the way gancio sends it events to the fediverse

snarfed commented 4 months ago

Out of curiosity, how is Gancio's interop with more "standard" fediverse projects: Mastodon, Pleroma, etc? Do events show up on those instances? RSVPs, etc? Can they send comments etc back to Gancio?

I guess I'm wondering if Bridgy Fed is any more or less interoperable than other microblogging services.

sysadminpower2019 commented 4 months ago

The events are posted and displayed when following the calendar on mastodon. However as far as i know and for the foreseeable future all interaction is one way. So you can't really interact with the posts from the user side.
However the calendar itself does allow you pull in events and info from the fediverse into an event post.

I think for purposes of Bridgy Fed. Just getting to the event posts to show up on bsky would be a great success and enough. Everything else would probably require more coordination with the gancio devs which i am not

qazmlp commented 4 months ago

The documentation says it sends Events, but they don't have any documentation on their actual object shape. Looking at outbox items, there are quite a few different properties in use that contain essential information not repeated in the "content" or "summary".

sysadminpower2019 commented 4 months ago

Ah i see. Well maybe you could open a ticket. They respond pretty quickly. Unfortunately i don't know the details of their standard. I can also try to relay it if i knew the exact question

qazmlp commented 4 months ago

There isn't really any one good example of documentation in this regard, but

Something that combined this information for outgoing Events would be enough to parse them reliably.

sysadminpower2019 commented 4 months ago

Sadly i don't have an answer from the devs yet but gancio is built very extensibly. So if anyone has time and interest it would probably be possible to develop a bluesky plugin directly for Gancio

qazmlp commented 4 months ago

On a related note, how do Gancio Events currently render in other fediverse software that supports receiving them?

sysadminpower2019 commented 2 months ago

Unfortunately i have not gotten an answer from the developer. Would it be possible to somehow reverse engineer this ? all the source code is available on https://framagit.org/les/gancio

many thanks

snarfed commented 2 months ago

Sure! Definitely possible. I was thinking something simpler though: make an event in Gancio, load it in another fediverse project that supports events, eg Mobilizon, and post a screenshot of how it looks. Bonus points: fetch the Gancio event as AS2 JSON and post that too!

sysadminpower2019 commented 2 months ago

Well my understanding is that it doesn't post anything special. I don't think it uses any kind of event interactivity. It just makes a plain post like any other fediverse text post

qazmlp commented 2 months ago

Well my understanding is that it doesn't post anything special. I don't think it uses any kind of event interactivity. It just makes a plain post like any other fediverse text post

This isn't correct, Gancio creates Event object as opposed to Notes, with very different semantics. (Mastodon just reformats these into text posts internally when it receives them, similarly to what it does with Articles. It does discard most of the event information in the process, though.)

I'm not posting an example here since I don't have anything on hand that's not someone else's data, though. @sysadminpower2019, if you link an event as example, I can grab the necessary information using https://activitypub.academy/.

sysadminpower2019 commented 2 months ago

So i found a mobilizon site that feeds from various fediverse projects including gancio. Hopefully this is a start and if you need more info let me know

https://kcal.dpl.tools/

On Wednesday, June 12, 2024, Qazm @.***> wrote:

Well my understanding is that it doesn't post anything special. I don't think it uses any kind of event interactivity. It just makes a plain post like any other fediverse text post

This isn't correct, Gancio creates Event object as opposed to Notes, with very different semantics.

(Mastodon just reformats these into text posts internally when it receives them, similarly to what it does with Articles.)

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.< https://ci3.googleusercontent.com/meips/ADKq_NZoyqaRdqRyltJXuSJVbdKWlUBugKhDmuZAv2fjPQyHFE7o62hzT-ahSvuTgTROWA3bfVDRST3zL_8C9V4LqqsUT0Rd4CGP3wop4Wplo3yD8LakQtKIVvzG5UxLCiOTN5mxyN5otnQXOF1Pkuqyru_LiALSmGDgXUNa-0g7zTyfdREoMyEv-MjRY8W1vpJSpo_tpm5_uSrih-SowsWRwnSSXU6rCD27i9dHRd3smXXKv37dycVw4gA=s0-d-e1-ft#https://github.com/notifications/beacon/AJWXABUD65VRIUM6OB4SH3LZHA55RA5CNFSM6AAAAABHHZ76S6WGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTUA5MWIK.gif>Message ID: @.***>

qazmlp commented 2 months ago

So i found a mobilizon site that feeds from various fediverse projects including gancio. Hopefully this is a start and if you need more info let me know https://kcal.dpl.tools/

Interesting, that's separate software. The events it publishes are actually in a different shape from the Gancio ones, so this would be helpful for "Mobilizon Support" but not as much for "Gancio Support".

It has actual ActivityPub documentation, though: https://docs.joinmobilizon.org/contribute/activity_pub/

Notably, Mobilizon implements reply controls in a way that can be easily bridged into Bluesky, so in my opinion Granary really should translate that. (It's cleanly implemented via namespace.) Seems it also makes use of PeerTube vocabulary for the same purpose for redundancy.

sysadminpower2019 commented 2 months ago

So i got a reply from the dev. I hope this is complete / enough for what you need.

docs about how gancio interacts with AP is here: https://gancio.org/federation

I'm waiting to document this in details as there is still no standard way to describe Event in AP see here

for an example of current AP format I'm using you can check some examples:

actor url https://demo.gancio.org/federation/u/

customized outbox url https://demo.gancio.org/federation/u/

customized/outbox example event https://demo.gancio.org/federation/m/555.json

sysadminpower2019 commented 2 months ago

Hello all just wanted to check up if y'all need anymore info. It'd be really cool if we could get this to work

snarfed commented 2 months ago

Hi @sysadminpower2019! I'm sure there will be more to learn once we start on it, but this is probably enough for now.

I'm not actively working on this, it's not currently a high priority, but PRs are welcome, it could be pretty straightforward if you want to jump in! The main tasks to start with would be 1) convert AS2 Events to AS1 events in granary.as2.to_as1, and 2) convert AS1 events to Bluesky app.bsky.feed.posts (I guess?) in granary.bluesky.from_as1.

snarfed commented 2 months ago

Related: https://event-federation.eu/