Replies: 2 comments 5 replies
-
Thanks for writing that down! I already started something in that direction https://github.com/Automattic/wordpress-activitypub/pull/550/files#diff-d2a03275a41bd73f49915a3cd42eb16d6f85a7e6bd128973ad8ffeaf57366af2 I would love to also add the interface! |
Beta Was this translation helpful? Give feedback.
-
I would suggest to add the Events Manager plugin in the examples: it uses |
Beta Was this translation helpful? Give feedback.
-
This document outlines suggestions for the further development of the WordPress ActivityPub plugin regarding its interoperability with other WordPress plugins that could enhance ActivityPub functionality.
This work has been done within the course of a project aiming at better event-federation within WordPress: repository, website.
Note: Currently drafts for a pull request on this are already being worked on.
The main part of this proposal: Scroll down to Transformer Management.
Terms used
The following terms are used:
Note
post
orpage
toNote
,Article
,Image
,Audio
orArticle
depending on the post-formattribe_events
(Event post the of The Event Calendar) toEvent
podcast
(Podcast post of Podlove Podcast Publisher) toPodcastEpisode
(as proposed and implemented by Castopod)Create
,Update
orAnnounce
Activity.Principals of the changes proposed changes:
The WordPress ActivityPub plugin
Goals
Goals of the WordPress Event Federation project
The aim of the event federations project is to enable seamless federation of events created within an event plugin as an ActivityPub object with Type
Event
and accompanying meta-data, as typically seen in common ActivityPub implementations like Mobilizon. This will guarantee optimal compatibility between various services.Tangential Objectives:
Nevertheless, we see a lot of other cases that can benefit, if the primary goals of the Event Federation project are achieved this using a modularized approach as proposed below. The following list indicates examples what might be those other benefits:
PodcastEpisode
as proposed by CastoPodQuestion
Product
->set_content_map
within the ActivityPub plugin).Note: CastoPod, to give an example, has currently decided that podcast episodes will not be sent to followers as a
Create
activity directly containing thePodcastEpisode
object, but will send aNote
which is linking to thePodcastEpisode
, because most Fediverse implementations currently ignore by default all object types they don't know. This is likely the same reason flohmarkt is currently also using theNote
and notProduct
even though that one would be available in the official specification.Transformer Management
Current situation
Frontend
The admin user interface in v1.0.0 lets one choose to which object type all post get transformed to. The options are:
Backend
Currently, all this functionality is handled via one hard-coded transformer in
includes/transformer/class post.php
(Source) and the actual logic that assigns the type is somewhere else.Proposal
All publicly accessible WordPress post types can become active for ActivityPub federation when selecting a transformer available for the relevant post type. It is up to the transformer to determine the target ActivityPub object type, which may vary depending on variables such as post type or post format. If there is no specific transformer available for a given post type, it cannot be assigned through the user interface.
Frontend
columns: Available transformers
rows: Public and non-password protected WordPress post types
Note: Only one or zero selections can be made in each row.
enable
anddisable
and move the transformer table to an advanced settings page.Backend
A solution could be to define a transformer interface and let the transformers be implementations.
Use WordPress's hook system or a public API function to let other plugins register their custom transformer implementations to the ActivityPub plugin.
Problem: With the design above the transformer does a lot and leaves a lot of responsibility to the developer implementing it.
Possible alternatives and solutions:
Event
which only needs a mapping (might make things harder, instead of making them easier). See Appendix.Beta Was this translation helpful? Give feedback.
All reactions