Add up-to-date docs for ActivityPub support

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel 2020-10-15 15:48:54 +02:00
parent 72e0986b84
commit 682d66cb0d
No known key found for this signature in database
GPG key ID: A061B9DDE0CA0773

View file

@ -14,19 +14,71 @@ Instances subscribe to each other through an internal actor named `relay@instanc
## Activities ## Activities
Supported Activity | Supported Object Supported Activity | Supported Object or Activity
------------ | ------------- ------------ | -------------
`Accept` | `Follow`, `Join` `Accept` | `Follow`, `Join`
`Announce` | `Object` `Add` | `Document`, `ResourceCollection`
`Create` | `Note`, `Event` `Announce` | any `Object`
`Delete` | `Object` `Create` | any `Object`
`Flag` | `Object` `Delete` | any `Object`
`Follow` | `Object` `Flag` | any `Object`
`Follow` | any `Object`
`Invite` | `Group`
`Join` | `Event` `Join` | `Event`
`Leave` | `Event`, `Group`
`Reject` | `Follow`, `Join` `Reject` | `Follow`, `Join`
`Remove` | `Note`, `Event` `Remove` | `Note`, `Event`, `Member`
`Undo` | `Announce`, `Follow` `Undo` | `Announce`, `Follow`
`Update` | `Object` `Update` | `Object`
## Objects
### Person
Every Mobilizon profile is a [`Person`](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-person).
### Event
Every Mobilizon event is an [`Event`](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-event) with [a few extensions](#event_1), especially for location information since [`Place`](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-place) is limited.
### Note
Every Mobilizon comment showing under an event is a [`Note`](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-note), as well as every element from group discussions, where the [`context` property](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-context) is used to group messages in discussions.
### Group
Every Mobilizon group is a [`Group`](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-group).
### Member
Every Mobilizon group member is a `Member`, that conveys the role information that the `Person` has in the `Group`.
```json
%{
"type" => "Member",
"id" => "https://somemobilizon.instance/member/some-uuid",
"actor" => "https://somemobilizon.instance/@some-person",
"object" => "https://somemobilizon.instance/@some-group",
"role" => "MODERATOR"
}
```
The allowed values for `role` are: `invited`, `not_approved`, `member`, `moderator`, `administrator`, `rejected`.
### Document
Attached pictures and other files are represented with [`Document`](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-document).
Group resources are also represented with `Document`.
### Article
Every Mobilizon group post is an [Article](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-article).
### ResourceCollection
Mobilizon's group resources (see [Document](#Document)) can be collected into folders named `ResourceCollection`, which have the same set of properties as a `Document`, without the `url`.
## Extensions ## Extensions
@ -158,6 +210,21 @@ We add [an `address` property](https://schema.org/address), which we assume to b
} }
``` ```
#### maximumAttendeeCapacity
We use Schema.org's [`maximumAttendeeCapacity`](https://schema.org/maximumAttendeeCapacity) to know how many places there can be for an event.
#### anonymousParticipationEnabled
We add this boolean field to know whether or not anonymous participants can participate to an event.
!!! note
Even though this information is federated, we redirect anonymous participants to the original instance so they can participate.
### Join ### Join
#### participationMessage #### participationMessage