diff --git a/.forgejo/workflows/deploy.yml b/.forgejo/workflows/deploy.yml index d89e9c5..365a226 100644 --- a/.forgejo/workflows/deploy.yml +++ b/.forgejo/workflows/deploy.yml @@ -17,7 +17,6 @@ jobs: uses: https://code.forgejo.org/actions/checkout@v4 - name: Install SSH Key - uses: webfactory/ssh-agent@v0.8.0 run: echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa && chmod 600 ~/.ssh/id_rsa - name: Deploy via Rsync diff --git a/activitypub-event-transformers.php b/activitypub-event-transformers.php index f3d87de..679308b 100644 --- a/activitypub-event-transformers.php +++ b/activitypub-event-transformers.php @@ -1,6 +1,6 @@ register( new \Tribe() ); - } + // if ( ! function_exists( 'is_plugin_active' ) ) { + // require_once __DIR__ . '/wp-admin/includes/plugin.php'; + // } - if ( is_plugin_active( 'vsel/vsel.php' ) ) { + // if ( is_plugin_active( 'the-events-calendar/the-events-calendar.php' ) ) { + // require_once __DIR__ . '/activitypub/transformer/tribe.php'; + // $transformers_manager->register( new \Tribe() ); + // } + + // if ( is_plugin_active( 'vsel/vsel.php' ) ) { require_once __DIR__ . '/activitypub/transformer/vs-event.php'; $transformers_manager->register( new \VS_Event() ); - } + // } } add_action( 'activitypub_transformers_register', 'register_event_transformers' ); diff --git a/activitypub/transformer/tribe.php b/activitypub/transformer/tribe.php index addd461..4902c1a 100644 --- a/activitypub/transformer/tribe.php +++ b/activitypub/transformer/tribe.php @@ -20,7 +20,7 @@ class Tribe extends \Activitypub\Transformer\Base { * @return string Widget name. */ public function get_name() { - return 'activitypub-tribe/tribe'; + return 'activitypub-event-transformers/tribe'; } /** diff --git a/activitypub/transformer/vs-event.php b/activitypub/transformer/vs-event.php index 561028f..681ecf2 100644 --- a/activitypub/transformer/vs-event.php +++ b/activitypub/transformer/vs-event.php @@ -1,4 +1,7 @@ set_type( 'Place' ); + $object->set_name( get_post_meta( $post_id, 'event-location', true ) ); + $array = $object->to_array(); + return $array; + } + /** + * Transforms the VS Event WP_Post object to an ActivityPub Event Object + * + * @see \Activitypub\Activity\Base_Object + * + * @return \Activitypub\Activity\Base_Object The ActivityPub Object + */ + public function to_object() { + $wp_post = $this->wp_post; + $object = new Base_Object(); + + $object->set_id( $this->get_id() ); + $object->set_url( $this->get_url() ); + $object->set_type( $this->get_object_type() ); + + $published = \strtotime( $wp_post->post_date_gmt ); + + $object->set_published( \gmdate( 'Y-m-d\TH:i:s\Z', $published ) ); + + $updated = \strtotime( $wp_post->post_modified_gmt ); + + if ( $updated > $published ) { + $object->set_updated( \gmdate( 'Y-m-d\TH:i:s\Z', $updated ) ); + } + + $object->set_attributed_to( $this->get_attributed_to() ); + $object->set_content( $this->get_content() ); + $object->set_content_map( $this->get_content_map ); + + $summary = get_post_meta( $wp_post->ID, 'event-summary', true ); + if ( $summary ) { + $object->set_summary( $summary ); + } else { + $object->set_summary( $this->content ); + } + + $start_time = get_post_meta( $wp_post->ID, 'event-start-date', true ); + $object->set_start_time( \gmdate( 'Y-m-d\TH:i:s\Z', $start_time ) ); + + $end_time = get_post_meta( $wp_post->ID, 'event-date', true ); + $object->set_end_time( \gmdate( 'Y-m-d\TH:i:s\Z', $end_time ) ); + + $path = sprintf( 'users/%d/followers', intval( $wp_post->post_author ) ); + + $location = get_post_meta( $wp_post->ID, 'event-link', true ); + $object->set_location( $this->get_event_location( $wp_post->ID ) ); + + $object->set_to( + array( + 'https://www.w3.org/ns/activitystreams#Public', + get_rest_url_by_path( $path ), + ) + ); + $object->set_cc( $this->get_cc() ); + + $attachments = $this->get_attachments(); + + $object->set_attachment( $this->get_attachments() ); + $object->set_tag( $this->get_tags() ); + + return $object; } }