add a get_rest_url_by_path
helper function, and use it
This commit is contained in:
parent
abfa7c7969
commit
314ccf43a6
12 changed files with 32 additions and 20 deletions
|
@ -228,3 +228,16 @@ function is_tombstone( $wp_error ) {
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the REST URL relative to this plugin's namespace.
|
||||||
|
*
|
||||||
|
* @param string $path Optional. REST route path. Otherwise this plugin's namespaced root.
|
||||||
|
* @return string REST URL relative to this plugin's namespace.
|
||||||
|
*/
|
||||||
|
function get_rest_url_by_path( $path = '' ) {
|
||||||
|
// we'll handle the leading slash.
|
||||||
|
$path = ltrim( $path, '/' );
|
||||||
|
$url = sprintf( '/%s/%s', ACTIVITYPUB_REST_NAMESPACE, $path );
|
||||||
|
return \get_rest_url( null, $url );
|
||||||
|
}
|
|
@ -148,8 +148,8 @@ class Activity {
|
||||||
$this->published = $object['published'];
|
$this->published = $object['published'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$url = sprintf( '/%/users/%d/followers', ACTIVITYPUB_REST_NAMESPACE, intval( $post->get_post_author() ) );
|
$path = sprintf( 'users/%d/followers', intval( $post->get_post_author() ) );
|
||||||
$this->add_to( \get_rest_url( null, $url ) );
|
$this->add_to( get_rest_url_by_path( $path ) );
|
||||||
|
|
||||||
if ( isset( $this->object['attributedTo'] ) ) {
|
if ( isset( $this->object['attributedTo'] ) ) {
|
||||||
$this->actor = $this->object['attributedTo'];
|
$this->actor = $this->object['attributedTo'];
|
||||||
|
|
|
@ -142,8 +142,8 @@ class Post {
|
||||||
*/
|
*/
|
||||||
public function __construct( $post ) {
|
public function __construct( $post ) {
|
||||||
$this->post = \get_post( $post );
|
$this->post = \get_post( $post );
|
||||||
$url = sprintf( '/%/users/%d/followers', ACTIVITYPUB_REST_NAMESPACE, intval( $post->get_post_author() ) );
|
$path = sprintf( 'users/%d/followers', intval( $this->get_post_author() ) );
|
||||||
$this->add_to( \get_rest_url( null, $url ) );
|
$this->add_to( get_rest_url_by_path( $path ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -78,7 +78,7 @@ class Followers {
|
||||||
$json->actor = \get_author_posts_url( $user_id );
|
$json->actor = \get_author_posts_url( $user_id );
|
||||||
$json->type = 'OrderedCollectionPage';
|
$json->type = 'OrderedCollectionPage';
|
||||||
|
|
||||||
$json->partOf = \get_rest_url( null, sprintf( '/%s/users/%d/followers', ACTIVITYPUB_REST_NAMESPACE, $user_id ) ); // phpcs:ignore
|
$json->partOf = get_rest_url_by_path( sprintf( 'users/%d/followers', $user_id ) ); // phpcs:ignore
|
||||||
$json->first = $json->partOf; // phpcs:ignore
|
$json->first = $json->partOf; // phpcs:ignore
|
||||||
$json->totalItems = FollowerCollection::count_followers( $user_id ); // phpcs:ignore
|
$json->totalItems = FollowerCollection::count_followers( $user_id ); // phpcs:ignore
|
||||||
$json->orderedItems = FollowerCollection::get_followers( $user_id, ARRAY_N ); // phpcs:ignore
|
$json->orderedItems = FollowerCollection::get_followers( $user_id, ARRAY_N ); // phpcs:ignore
|
||||||
|
|
|
@ -72,7 +72,7 @@ class Following {
|
||||||
$json->actor = \get_author_posts_url( $user_id );
|
$json->actor = \get_author_posts_url( $user_id );
|
||||||
$json->type = 'OrderedCollectionPage';
|
$json->type = 'OrderedCollectionPage';
|
||||||
|
|
||||||
$json->partOf = \get_rest_url( null, sprintf( '/%s/users/%d/following', ACTIVITYPUB_REST_NAMESPACE, $user_id ) ); // phpcs:ignore
|
$json->partOf = get_rest_url_by_path( sprintf( 'users/%d/following', $user_id ) ); // phpcs:ignore
|
||||||
$json->totalItems = 0; // phpcs:ignore
|
$json->totalItems = 0; // phpcs:ignore
|
||||||
$json->orderedItems = apply_filters( 'activitypub_following', array(), $user ); // phpcs:ignore
|
$json->orderedItems = apply_filters( 'activitypub_following', array(), $user ); // phpcs:ignore
|
||||||
|
|
||||||
|
|
|
@ -108,7 +108,7 @@ class Inbox {
|
||||||
$json->id = \home_url( \add_query_arg( null, null ) );
|
$json->id = \home_url( \add_query_arg( null, null ) );
|
||||||
$json->generator = 'http://wordpress.org/?v=' . \get_bloginfo_rss( 'version' );
|
$json->generator = 'http://wordpress.org/?v=' . \get_bloginfo_rss( 'version' );
|
||||||
$json->type = 'OrderedCollectionPage';
|
$json->type = 'OrderedCollectionPage';
|
||||||
$json->partOf = \get_rest_url( null, sprintf( '/%s/users/%d/inbox', ACTIVITYPUB_REST_NAMESPACE, $user_id ) ); // phpcs:ignore
|
$json->partOf = get_rest_url_by_path( sprintf( 'users/%d/inbox', $user_id ) ); // phpcs:ignore
|
||||||
|
|
||||||
$json->totalItems = 0; // phpcs:ignore
|
$json->totalItems = 0; // phpcs:ignore
|
||||||
|
|
||||||
|
|
|
@ -173,7 +173,7 @@ class Nodeinfo {
|
||||||
$discovery['links'] = array(
|
$discovery['links'] = array(
|
||||||
array(
|
array(
|
||||||
'rel' => 'http://nodeinfo.diaspora.software/ns/schema/2.0',
|
'rel' => 'http://nodeinfo.diaspora.software/ns/schema/2.0',
|
||||||
'href' => \get_rest_url( null, ACTIVITYPUB_REST_NAMESPACE . '/nodeinfo' ),
|
'href' => get_rest_url_by_path( 'nodeinfo' ),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -72,7 +72,7 @@ class Outbox {
|
||||||
$json->generator = 'http://wordpress.org/?v=' . \get_bloginfo_rss( 'version' );
|
$json->generator = 'http://wordpress.org/?v=' . \get_bloginfo_rss( 'version' );
|
||||||
$json->actor = \get_author_posts_url( $user_id );
|
$json->actor = \get_author_posts_url( $user_id );
|
||||||
$json->type = 'OrderedCollectionPage';
|
$json->type = 'OrderedCollectionPage';
|
||||||
$json->partOf = \get_rest_url( null, sprintf( '/%s/users/%d/outbox', ACTIVITYPUB_REST_NAMESPACE, $user_id ) ); // phpcs:ignore
|
$json->partOf = get_rest_url_by_path( sprintf( 'users/%d/outbox', $user_id ) ); // phpcs:ignore
|
||||||
$json->totalItems = 0; // phpcs:ignore
|
$json->totalItems = 0; // phpcs:ignore
|
||||||
|
|
||||||
// phpcs:ignore
|
// phpcs:ignore
|
||||||
|
|
|
@ -24,6 +24,7 @@ class Webfinger {
|
||||||
* Register routes
|
* Register routes
|
||||||
*/
|
*/
|
||||||
public static function register_routes() {
|
public static function register_routes() {
|
||||||
|
\l( 'register webfinger' );
|
||||||
\register_rest_route(
|
\register_rest_route(
|
||||||
ACTIVITYPUB_REST_NAMESPACE,
|
ACTIVITYPUB_REST_NAMESPACE,
|
||||||
'/webfinger',
|
'/webfinger',
|
||||||
|
|
|
@ -28,10 +28,10 @@ if ( \has_header_image() ) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$json->inbox = \get_rest_url( null, sprintf( '/%s/users/%d/inbox', ACTIVITYPUB_REST_NAMESPACE, $author_id ) );
|
$json->inbox = get_rest_url_by_path( sprintf( 'users/%d/inbox', $author_id ) );
|
||||||
$json->outbox = \get_rest_url( null, sprintf( '/%s/users/%d/outbox', ACTIVITYPUB_REST_NAMESPACE, $author_id ) );
|
$json->outbox = get_rest_url_by_path( sprintf( 'users/%d/outbox', $author_id ) );
|
||||||
$json->followers = \get_rest_url( null, sprintf( '/%s/users/%d/followers', ACTIVITYPUB_REST_NAMESPACE, $author_id ) );
|
$json->followers = get_rest_url_by_path( sprintf( 'users/%d/followers', $author_id ) );
|
||||||
$json->following = \get_rest_url( null, sprintf( '/%s/users/%d/following', ACTIVITYPUB_REST_NAMESPACE, $author_id ) );
|
$json->following = get_rest_url_by_path( sprintf( 'users/%d/following', $author_id ) );
|
||||||
|
|
||||||
$json->manuallyApprovesFollowers = \apply_filters( 'activitypub_json_manually_approves_followers', \__return_false() ); // phpcs:ignore
|
$json->manuallyApprovesFollowers = \apply_filters( 'activitypub_json_manually_approves_followers', \__return_false() ); // phpcs:ignore
|
||||||
|
|
||||||
|
|
|
@ -27,12 +27,10 @@ if ( \has_header_image() ) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$blog_base = sprintf( '/%s/blog/', ACTIVITYPUB_REST_NAMESPACE );
|
$json->inbox = get_rest_url_by_path( 'blog/inbox' );
|
||||||
|
$json->outbox = get_rest_url_by_path( 'blog/outbox' );
|
||||||
$json->inbox = \get_rest_url( null, $blog_base . 'inbox' );
|
$json->followers = get_rest_url_by_path( 'blog/followers' );
|
||||||
$json->outbox = \get_rest_url( null, $blog_base . 'outbox' );
|
$json->following = get_rest_url_by_path( 'blog/following' );
|
||||||
$json->followers = \get_rest_url( null, $blog_base . 'followers' );
|
|
||||||
$json->following = \get_rest_url( null, $blog_base . 'following' );
|
|
||||||
|
|
||||||
$json->manuallyApprovesFollowers = \apply_filters( 'activitypub_json_manually_approves_followers', \__return_false() ); // phpcs:ignore
|
$json->manuallyApprovesFollowers = \apply_filters( 'activitypub_json_manually_approves_followers', \__return_false() ); // phpcs:ignore
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ class Test_Activitypub_Activity extends WP_UnitTestCase {
|
||||||
$activitypub_activity = new \Activitypub\Model\Activity( 'Create' );
|
$activitypub_activity = new \Activitypub\Model\Activity( 'Create' );
|
||||||
$activitypub_activity->from_post( $activitypub_post );
|
$activitypub_activity->from_post( $activitypub_post );
|
||||||
|
|
||||||
$this->assertContains( \get_rest_url( null, '/' . ACTIVITYPUB_REST_NAMESPACE . '/users/1/followers' ), $activitypub_activity->get_to() );
|
$this->assertContains( get_rest_url_by_path( 'users/1/followers' ), $activitypub_activity->get_to() );
|
||||||
$this->assertContains( 'https://example.com/alex', $activitypub_activity->get_cc() );
|
$this->assertContains( 'https://example.com/alex', $activitypub_activity->get_cc() );
|
||||||
|
|
||||||
remove_all_filters( 'activitypub_extract_mentions' );
|
remove_all_filters( 'activitypub_extract_mentions' );
|
||||||
|
|
Loading…
Reference in a new issue