various fixes mainly regarding send_follow_response
This commit is contained in:
parent
1269cc6248
commit
5c59834a0c
1 changed files with 14 additions and 8 deletions
|
@ -7,7 +7,9 @@ use WP_Query;
|
||||||
use Activitypub\Http;
|
use Activitypub\Http;
|
||||||
use Activitypub\Webfinger;
|
use Activitypub\Webfinger;
|
||||||
use Activitypub\Model\Follower;
|
use Activitypub\Model\Follower;
|
||||||
|
use Activitypub\Collection\Users;
|
||||||
use Activitypub\Activity\Activity;
|
use Activitypub\Activity\Activity;
|
||||||
|
use Activitypub\Activity\Base_Object;
|
||||||
|
|
||||||
use function Activitypub\is_tombstone;
|
use function Activitypub\is_tombstone;
|
||||||
use function Activitypub\get_remote_metadata_by_actor;
|
use function Activitypub\get_remote_metadata_by_actor;
|
||||||
|
@ -131,7 +133,7 @@ class Followers {
|
||||||
'_actor',
|
'_actor',
|
||||||
array(
|
array(
|
||||||
'type' => 'string',
|
'type' => 'string',
|
||||||
'single' => false,
|
'single' => true,
|
||||||
'sanitize_callback' => function( $value ) {
|
'sanitize_callback' => function( $value ) {
|
||||||
return esc_sql( $value );
|
return esc_sql( $value );
|
||||||
},
|
},
|
||||||
|
@ -191,7 +193,7 @@ class Followers {
|
||||||
public static function add_follower( $user_id, $actor ) {
|
public static function add_follower( $user_id, $actor ) {
|
||||||
$meta = get_remote_metadata_by_actor( $actor );
|
$meta = get_remote_metadata_by_actor( $actor );
|
||||||
|
|
||||||
if ( empty( $meta ) || ! is_array( $meta ) || is_wp_error( $meta ) ) {
|
if ( is_tombstone( $meta ) ) {
|
||||||
return $meta;
|
return $meta;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -241,7 +243,7 @@ class Followers {
|
||||||
|
|
||||||
$post_id = $wpdb->get_var(
|
$post_id = $wpdb->get_var(
|
||||||
$wpdb->prepare(
|
$wpdb->prepare(
|
||||||
"SELECT p.ID FROM $wpdb->posts p INNER JOIN $wpdb->postmeta pm ON p.ID = pm.post_id WHERE p.post_type = %s AND pm.meta_key = '_user_id' AND pm.meta_value = %d AND p.guid = %s",
|
"SELECT DISTINCT p.ID FROM $wpdb->posts p INNER JOIN $wpdb->postmeta pm ON p.ID = pm.post_id WHERE p.post_type = %s AND pm.meta_key = '_user_id' AND pm.meta_value = %d AND p.guid = %s",
|
||||||
array(
|
array(
|
||||||
esc_sql( self::POST_TYPE ),
|
esc_sql( self::POST_TYPE ),
|
||||||
esc_sql( $user_id ),
|
esc_sql( $user_id ),
|
||||||
|
@ -280,17 +282,21 @@ class Followers {
|
||||||
unset( $object['@context'] );
|
unset( $object['@context'] );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$user = Users::get_by_id( $user_id );
|
||||||
|
|
||||||
// get inbox
|
// get inbox
|
||||||
$inbox = $follower->get_inbox();
|
$inbox = $follower->get_inbox();
|
||||||
|
|
||||||
// send "Accept" activity
|
// send "Accept" activity
|
||||||
$activity = new Activity( 'Accept' );
|
$activity = new Activity();
|
||||||
$activity->set_activity_object( $object );
|
$activity->set_type( 'Accept' );
|
||||||
$activity->set_actor( \get_author_posts_url( $user_id ) );
|
$activity->set_object( $object );
|
||||||
|
$activity->set_actor( $user->get_id() );
|
||||||
$activity->set_to( $actor );
|
$activity->set_to( $actor );
|
||||||
$activity->set_id( \get_author_posts_url( $user_id ) . '#follow-' . \preg_replace( '~^https?://~', '', $actor ) );
|
$activity->set_id( $user->get_id() . '#follow-' . \preg_replace( '~^https?://~', '', $actor ) );
|
||||||
|
|
||||||
|
$activity = $activity->to_json();
|
||||||
|
|
||||||
$activity = $activity->to_simple_json();
|
|
||||||
$response = Http::post( $inbox, $activity, $user_id );
|
$response = Http::post( $inbox, $activity, $user_id );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue