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:----GfqNuxwQU1WvK9rNzFcFdxeErdZfdpON8J4GQzNWaE6eo/7xf17fFmtVNvmUAcuryejRXYERx92p98/3Zhzeo8A89Y9n69npEGsSrVAMbloePN2kpEcH8FehL2gsJ4WLXus6RjKdPmkzLKvTeFajlLx+qxGdH3tRNkXtNteK/jPgOF4mRm+9dUT3kx427+kiMJv6+ETaXlCUJelcyxsreIAlLBj6R/2wiY6WACM2fBfoDz0sYZueV2VVWANHk2GYgQcp/U/MGcVxyRST+Da0N4MVstUjk24WgPXwBWx76CS2/1V/ulT+SM4yeeyTny1FjYwKXu4RZwdEu5/3lJcnJZC8QrnfdQ44PVNVeQaXmRyPyVMiDp9X3TRdi9bCiAZgMJaM4cVQBQt9MibrVEWlCLIeixtl1miSA2JK12nQUuGAaA8A/Q8IDJG8jgjC9x0wGFp9p3wEY1xwrEEJPpI3hTWp4E1v0cE0ADv20iaynYIfZ8N0rUljKCME0iAaQuv0ATdMf4MPjenhVdMrn4YcnjxVpsCYUAdACYZw3tiUMdUUVjfEgnJ4GvWvJEHS70Ug5dDmj94eaN3NFM7CRiSNTVuc/w8tGZNmrdrh+I2ZrBaDPY1EBhZg0VsZtSfR2mejVn5o7wez7jkx9IqX6/Bii9ocXSGPw+L1UDigTTXzexc=----ATTACHMENT:----NTAxODk2MzYyNTk1OTE5OCA3Njk3NDY0NDg2NDYwNTg2IDgxODc5MDA1NTk4MjAxMzg=