wp_post ); switch ( $post_type ) { case 'post': $post_format = \get_post_format( $this->wp_post ); switch ( $post_format ) { case 'aside': case 'status': case 'quote': case 'note': $object_type = 'Note'; break; case 'gallery': case 'image': $object_type = 'Image'; break; case 'video': $object_type = 'Video'; break; case 'audio': $object_type = 'Audio'; break; default: $object_type = 'Article'; break; } break; case 'page': $object_type = 'Page'; break; case 'attachment': $mime_type = \get_post_mime_type(); $media_type = \preg_replace( '/(\/[a-zA-Z]+)/i', '', $mime_type ); switch ( $media_type ) { case 'audio': $object_type = 'Audio'; break; case 'video': $object_type = 'Video'; break; case 'image': $object_type = 'Image'; break; } break; default: $object_type = 'Article'; break; } return $object_type; } /** * Gets the template to use to generate the content of the activitypub item. * * @return string The Template. */ protected function get_post_content_template() { $type = \get_option( 'activitypub_post_content_type', 'content' ); switch ( $type ) { case 'excerpt': $template = "[ap_excerpt]\n\n[ap_permalink type=\"html\"]"; break; case 'title': $template = "[ap_title]\n\n[ap_permalink type=\"html\"]"; break; case 'content': $template = "[ap_content]\n\n[ap_permalink type=\"html\"]\n\n[ap_hashtags]"; break; default: $template = \get_option( 'activitypub_custom_post_content', ACTIVITYPUB_CUSTOM_POST_CONTENT ); break; } return apply_filters( 'activitypub_object_content_template', $template, $this->wp_post ); } /** * Transforms the WP_Post object to an ActivityPub Object * * @see \Activitypub\Activity\Base_Object * @param WP_Post $wp_post The WordPress Post * * @return \Activitypub\Activity\Base_Object The ActivityPub Object */ public function transform() { $object = new Base_Object(); $wp_post = $this->get_wp_post(); $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 ); $path = sprintf( 'users/%d/followers', intval( $wp_post->post_author ) ); $object->set_to( array( 'https://www.w3.org/ns/activitystreams#Public', get_rest_url_by_path( $path ), ) ); $object->set_cc( $this->get_cc() ); $object->set_attachment( $this->get_attachments() ); $object->set_tag( $this->get_tags() ); return $object; } }