documentation/event_import.md

8.6 KiB
Raw Permalink Blame History

Table of Contents

Status: draft. This document should be reviewed by the other main developers.

Validation/Import of remote events

This document gives an overview how remote Event objects are treated by common Fediverse applications.

Mastodon

Last updated: 2024-10-20

Mastodon does not have support or events, but an Event object is in the list of converted object types.

It neglets all event related fields but title, summary and url which it uses to create a Mastodon status (toot) representation of the event.

Mobilizon

Last uptaded: 2024-01-20

Information sources:

Required

  • attributedTo or actor: Mobilizon uses actor for the user profile and attributedTo for the group. But as actor being part of an object is not part of the ActivityPub spec, solely using attributedTo might preferred if they are similar.
  • id: This is also used for the url.
  • name: The events title.
  • startTime
  • to
  • [type]: must be Event

Optional

Not used

  • url: internally Mobilizon uses the id as URL.

To Test:

Handling of visibility, comments and discoverability

  • If https://www.w3.org/ns/activitystreams#Public is not in to it will be treated as unlisted, else as public. This are the only options for remote events, even though internally Mobilizon supports [public, unlisted, restricted, private].
  • For comments to be enabled within Mobilizon either commentsEnabled must be true or repliesModerationOption must be set to allow_all. repliesModerationOption is more important. If none is of both is passed replies will be disabled.
  • When the attributedTo (or if attributedTo is not set, but actor is set) contains an Actor of type Person the remote Event will not be listed and searchable.
  • If timezone is not defined Mobilizon might calculate the timezone via the location.

Attachment/Banner-image handling

Mobilizon currently expects all images to by within attachment and to be an Object of type Document. It first looks for an object where the name is equal to Banner. If that is not found it uses ´attachment[0]`.

Gancio

Last uptaded: 2024-01-20

Required

Optional

  • attachment Only the first one is used as a banner image, all others are ignored, see below.
  • content contentMap is currently not supported by Gancio.
  • endTime
  • location: The subkey address is accepted, both as PostalAddress and pure text. For PostalAddress only streetAddress, addressLocality, and addressCountry are used.
  • summary The summary is only used when no content is supplied.

Not used

  • attributedTo/actor: Gancio does not support fetching event other than by receiving a Create or Update activity (TODO: what about Announce), the actor is always just fetched from the activity, not the object within.

Handling of visibility

Currently Gancio does not seem to handle any visibility or replies-policy options. It sets all remote events it received to the internal is_visible to true.

Banner image

Gancio takes the first attachment of the Event object as the banner image of the event. It optionally supports name as the alternative text and focalPoint.

Plemora

Last uptaded: 2024-01-20

Information sources: Plemora has a open Pull Request towards Mobilizon compatible events which Rebased (a fork of Plemora) has already merged.

Required

This probably has a lot of errors still. Source Code.

Optional

  • joinMode: [free, restricted, invite, external] default is free.
  • location: The subkey address is accepted, but currently ony as PostalAddress with the fields postalCode, addressRegion, streetAddress, addressCountry and addressLocality.

Handling of visibility

Does not seem to be handled.