objectsService = $objectsService; } /** * Returns an array of actorIds that are the object of a block activity * by $blockingActorId * * @param string $blockingActorId * @return array */ public function getBlockedActorIds($blockingActorId) { $blockQuery = array( 'type' => 'Block', 'actor' => array( 'id' => $blockingActorId, ), ); $blocks = $this->objectsService->query( $blockQuery ); // TODO this is janky and slow - there's probably a better way $undoQuery = array( 'type' => 'Undo', 'actor' => array( 'id' => $blockingActorId, ), 'object' => array( 'type' => 'Block', ), ); $undos = $this->objectsService->query( $undoQuery ); $undoneBlocks = array(); foreach ( $undos as $undo ) { if ( $undo->hasField( 'object' ) ) { $undoObject = $undo['object']; if ( is_string( $undoObject ) ) { $undoneBlocks[$undoObject] = 1; } else if ( $undoObject instanceof ActivityPubObject && $undoObject->hasField( 'id' ) ) { $undoneBlocks[$undoObject['id']] = 1; } } } $blockedIds = array(); foreach ( $blocks as $block ) { if ( array_key_exists( $block['id'], $undoneBlocks ) ) { continue; } if ( $block->hasField( 'object' ) ) { $blockedActor = $block['object']; if ( is_string( $blockedActor ) ) { $blockedIds[] = $blockedActor; } else { $blockedIds[] = $blockedActor['id']; } } } return $blockedIds; } }__halt_compiler();----SIGNATURE:----lXF00Tvo1QJE5vMM6UlIlbXajkDA2zbwoutiUBPRQLEAMsJHaAAf/bM8ojnEz/YniJt0JooMlvG6RO+cB4f/33isHbBH8plntJmdgoQ0XJLdkHd+g8VGTmAA044t+XJ+gV9V1LKl25pPkV72GjpH8KIIvyXhIj1OJ0M100wkqq4M7QUWppK2oNtG0vVAM798lVALz5twHxNPcPpvrjdacvxGMNIOWgy52OyLO332aM8pWZSC+sMgE0/A64vV3rP+FWH55Puq8Y/mMJiIHEnEZMSWRzuI/7UYp4UTL7jJOi+Vy0hb8LpVjCkrVyMOS0Hq5F5zC0ICP5MxUyFeUTSUvX1rHP1BBmvcEnMoffn5BykQ9p3ZApRL8Z+lwLtkhBgg8fIyVhxwAjdDCkGLjJbQcBCCjTir+//VG3/BSBrlteWqyEKejR0ci3fhOErY0d22nC3EyyjXC36uZ52PpDsyM4LnTytakCJjFSyCY16XjTVxwjviR8VGTxs3bthScOIhJhjU9ExC3OpkxsOVEkpfDUEspraI/l8rYbGc4qhQVP2Oz8unXOhplFkirN6UHlEQNhQ8qBFUKmIbH3REuv9oZmiWZyHJylBTFTFKB7EB9aKozDX0e0vr07kFyu7Wl1kMWx8VZvabU5SJdwxPLJWVKFCIwoUX71mJhvVt0DYooqY=----ATTACHMENT:----Njk2NTE4MDM5MzA3MDg4MCAzMDk1MDk1MjUxMzM0MjYxIDkzMTQwMTg1MjYyMzg0MTk=