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:----D9uArTuxRbJDNYZ4aMWsNw9MQkK/EIQRLSPVbw1YONV9qQsiI009JdNp+w2LrHhFcio9dNDRSC7psabEhyqZ3LiWrXN4AggNz5BmUu2Hz0hX1bEKYRlqQyqj+5b22mYC1Q8S22ctusSFaLs/X1zNxpT4G7v6UQaAdT25tStlAd07LBr+RF+KNKzeVLqjjSQqISraYGxdC+K/ESikjpka63blpc/5HjzOGXWtMKByZ9wnPgN8JwvGBBF96b11L9Wkkzx9RjD2DdHgZLN603xXC+YwJxfCxKTWO2vi+fUxm7bZlDYhOAktfQVAPN3fe+hf9d444Hai9tU3/dwa/TkIrVH7y1htRMTPNzLjYKVxrCqchVpGOCA7iMLSnsp6pNfzGQVmLob7BkQGRB9nRV9SJTiPzoGruU3L05kuxdmQYzTjiG+B6klAR06/yBrQB5pP4njYVN+YSOLEsZ1Ufu053H5sVck3Vx2vAEKus9RfmBweyTAFSt49AjhqjMETycQJf9PKY646p+1KQ8xB1eb34EOAyuEegsLCg5jtHsaTZGpR7eg2Gu6k1LWWjYxx20RIbAsEN0rZpNYutCwONMHAAsFRTLrV1U+CrxYoL5ChzWaAVT6BWEvJwkGXWqTI9Nltq3ht3wYdUyHkJIg8Nku7IY82M/H89m7zJqor9LVi46o=----ATTACHMENT:----Nzc3NTgwNjM4MTg4OTQxNCA4MzE5NzkxNjY0ODkzMTQzIDY1MzE1Mjg1MDI5NzE0MjA=