8.7 KiB
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
name
: The events title.attributedTo
oractor
: Mobilizon uses actor for the user profile and attributedTo for the group. But asactor
being part of an object is not part of the ActivityPub spec, solely usingattributedTo
might preferred if they are similar.id
: This is also used for theurl
.
Optional
-
category
: default list of categories can be found in the source code, but it can be extended via environment variables. Note that the source code shows them in lowercase, but they have to be passed as uppercase, e.g.MOVEMENTS_POLITICS
. -
contacts
: a list of contacts: each item might be just theid
/url
or anActor
object. -
content
:contentMap
is currently not supported by Mobilizon. -
externalParticipationUrl
: Only used ifjoinMode
is set toexternal
. -
is_online
: Boolean indicating whether the Event is online. -
joinMode
:[free, restricted, invite, external]
default isfree
. -
location
: The subkeyaddress
is accepted, both asPostalAddress
and pure text. -
metadata
: This is a list that can contain items. TODO. -
participantCount
: Not parsed at the moment -
remainingAttendeeCapacity
: Not parsed at the moment -
timezone
-
url
: Documentation - Note:url
was added to the list as it was referenced in the text but not explicitly listed in the initial set. -
content
:contentMap
is currently not supported by Mobilizon. -
location
: The subkeyaddress
is accepted, both asPostalAddress
and pure text. -
remainingAttendeeCapacity
: Not parsed at the moment -
participantCount
: Not parsed at the moment -
is_online
boolean whether the Event is online. -
timezone
: e.g.,Europe/Vienna
. Not documented yet, see the handling below. -
metadata
: This is a list which can contain items. TODO. -
contacts
: a list of contacts: each item might be just theid
/url
or anActor
object. -
category
: default list of categories can be found in the source code, but it can be extended via environment variables. Note that the source code shows them in lowercase, but they have to be passed as uppercase, e.g.MOVEMENTS_POLITICS
. -
joinMode
:[free, restricted, invite, external]
default isfree
. -
externalParticipationUrl
: only used ifjoinMode
is set toexternal
.
Not used
url
: internally Mobilizon uses theid
as URL.
To Test:
Handling of visibility, comments and discoverability
- If
https://www.w3.org/ns/activitystreams#Public
is not into
it will be treated asunlisted
, else aspublic
. 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 betrue
orrepliesModerationOption
must be set toallow_all
.repliesModerationOption
is more important. If none is of both is passed replies will be disabled. - When the
attributedTo
(or ifattributedTo
is not set, butactor
is set) contains anActor
of typePerson
the remoteEvent
will not be listed and searchable. - If
timezone
is not defined Mobilizon might calculate the timezone via thelocation
.
Banner image
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
name
: The events title.startTime
id
: though Gancio currently does not list it as required in its source code, there will be an error without out it.
Optional
location
: The subkeyaddress
is accepted, both asPostalAddress
and pure text. ForPostalAddress
onlystreetAddress
,addressLocality
, andaddressCountry
are used.attachment
Only the first one is used as a banner image, all others are ignored, see below.endTime
content
contentMap
is currently not supported by Gancio.summary
The summary is only used when no content is supplied.
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
.