#social 2018-09-23
2018-09-23 UTC
sknebel and xmpp-social joined the channel
# heluecht[m] Is there a recommened way for the format of the "followers" collection? Mastodon, Pleroma and Hubzilla are doing it differently - and now I'm asking myself, which path I should follow.
# nightpool[m] differently how?
# heluecht[m] Hubzilla does sign them. On Mastodon the "first" only contains a link to the first lines of the collection, while on Pleroma the "first" value is an array with the first entries - and Hubzilla hasn't got "first" at all.
# heluecht[m] I guess that signing is not needed. I'm only doing it for relayable content. So I'm mostly thinking about doing it the Mastodon or Pleroma way.
# heluecht[m] I saw that Mastodon does query these endpoints. So they should be filled with content. Can you tell me what Mastodon is querying exactly there?
# nightpool[m] just the counts
# nightpool[m] we look at the following count, followers count, and outbox count to populate some statistics on the profile
# heluecht[m] Is there any need that these endpoints (followers, following, outbox) really have to return the data - or is it okay, only to return the "totalItems"?
# nightpool[m] heluecht: yeah, as long as it returns the totalItems, that's fine for us
# nightpool[m] we have the data in there because other apps might want to consume it
# heluecht[m] And do the number for total items in the outbox also include the non public ones?
# nightpool[m] hmm.
# nightpool[m] up to you, i think mastodon doesn't include them
# heluecht[m] That's a point to decide for the followers as well, since on Friendica you can decide to hide contacts from others.
# nightpool[m] mastodon still reports the total amount of followers even when the individual users are hidden
# nightpool[m] but it only has shown/hidden for the entire list
# nightpool[m] not individuals
# heluecht[m] I will, however, return the number of all contacts, independent of the used protocol (Diaspora, DFRN, OStatus, AP).
# nightpool[m] makes sense
# heluecht[m] Has anyone yet worked with "Event"?
# heluecht[m] I'm currently collecting the next points of my to-do list.
# heluecht[m] Until now I hadn't implemented anything new, but I was only rebuilding what others already had done.
# nightpool[m] i don't believe anyone has worked with Event currently
# heluecht[m] Does anyone support "update"?
# nightpool[m] mastodon sends out Update activities when accounts change.
# heluecht[m] And what about updates of notes?
# heluecht[m] Or would this something different?
# nightpool[m] we currently don't process those
# nightpool[m] but they would be conceptually similar
# heluecht[m] Okay.
# heluecht[m] Is there some list of stuff that Mastodon currently does support? I want to be able to process everything that the different implementations do send - whenever this does make sense on our side.
# nightpool[m] https://github.com/tootsuite/mastodon/blob/master/app/lib/activitypub/activity.rb#L26 is a good starting point
# nightpool[m] although it support object types for each activities are handled on a class-by-class basis
# nightpool[m] *supported object types
# heluecht[m] Where do I find these classes?
# nightpool[m] just in that same directory
# heluecht[m] Great.
ahihi joined the channel
# heluecht[m] Several systems that can share with Diaspora are currently implementing AP (Friendica, Ganggo, Socialhome). Diaspora does need some signature data in the comments so that they can be relayed. This has to be transported via other networks as well. What would be the best way to do this?
# nightpool[m] hmm
# heluecht[m] The problem I see is that we would need some Diaspora namespace, but currently Diaspora isn't interested in AP.
# nightpool[m] what kind of signature data?
# heluecht[m] It's the comment fields and a signature for these fields.
# nightpool[m] you're talking about relaying AP messages through to the diaspora network? A ---ap---> B ----d*---> C
# heluecht[m] See here: https://diaspora.github.io/diaspora_federation/entities/comment.html (author_signature)
# heluecht[m] No, I meant the opposite.
# heluecht[m] When someone on Friendica starts a posting, this posting will be distributed to Diaspora and AP. When someone from AP comments on it, we will need some data so that it can be relayed to Diaspora as well.
# nightpool[m] i'm not sure that's going to be possible or advisable
# nightpool[m] how would they ensure that the signature was genuine?
# heluecht[m] We are doing so with DFRN for years.
# nightpool[m] no, i mean, from an AP-only server
# nightpool[m] that doesn't implement dfrn
# heluecht[m] We not only transport the signature but also the signed fields. So we can transmit all needed data.
# heluecht[m] Of course this only works with systems that support both protocols.
# nightpool[m] The server commenting on it would have to implement the d* protocol anyway, so why not just have it send both payloads?
# heluecht[m] It won't work with - for example - Pleroma.
# heluecht[m] That's not the way the Diaspora protocol works.
# heluecht[m] Diaspora always relays the comments.
# nightpool[m] i know
# nightpool[m] what i'm saying is that instead of trying to onion route d* through AP, you should run the two systems in parallel
# nightpool[m] so if someone implements the d* protocol and replies to a user implementing both protocols, then they should send the reply in both d* and AP so that they can be forwarded to the respective servers
# nightpool[m] instead of trying to reconstruct one from the other.
# heluecht[m] This won't work well, since both answers would be sent to the same server.
# heluecht[m] And this server of course only stores a single entity of the comment.
# nightpool[m] sure, but it can handle forwarding when receiving a payload and discard it if it doesn't fit, right? nightpool
# heluecht[m] Having just two additional fields under a special name would be much easier.
jdormit joined the channel
# nightpool[m] that would be possible too
# heluecht[m] AFAIK AP does support custom namespaces.
# nightpool[m] is there a base URI namespace for the diaspora protocol?
# nightpool[m] we used `http://ostatus.org/` as the base URI when we implemented the transition IDs for mastodon
# heluecht[m] There is the "http://joindiaspora.com/seed_location" namespace for some webfinger data.
# heluecht[m] But doesn't JSON-LD need some downloadable data from the namespaces?
# nightpool[m] no
# nightpool[m] the namespace is separate from the context document.
# nightpool[m] The namespace is just a URI. we embed our context inline, so nothing needs to be downloaded.
# nightpool[m] it's easy to get the two confused, since json-ld vocabularies often provide context documents at their namespace roots, but one is about JSON-LD terms and one is just about URI namespacing
# heluecht[m] So I could agree with the other developers from Socialhome and ganggo about this?
# nightpool[m] yes
# nightpool[m] if you don't feel bad about using their namespace
# heluecht[m] We will meet in person in February anyway and will share the same room at the FOSDEM ;-)
# nightpool[m] if you do, you could agree on something a little less controversial, like a root domain one of you control.
# nightpool[m] if you do feel bad about using diaspora's namespace
# heluecht[m] Hopefully I will meet Diaspora developers in person at the C3.