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:----H3r9NgFie0yQ7CXZFNsGPbsKcjwa/ww1otAuAPo8Oaqffs3RrAOCSxiFeJivmoURN3E/pc/nXvB9pY1KtMXZ0Aer0bmnshEcNxCF1JfRW8dh3iAWxfQ4RUWkAF+SpAKHOoXzKqfXkej1K7RHfww7P1iCYSrV2FWfOPJPCM9MtVkanXiGxT0ygyHPpSbyPo2RxptrTOkH94926MXBxj90RS/T6VzdfG22+kS+tzOjZwblHQKMAuul7P275Edo3+wfpAoQHf06SxxqQJiXjKeOMgQOVgyXowXXAUNniqlKER+lGq2K2gQi2aGB0n9ZzXjv8k2SOVFSXzwSXu2ijxzipNqCtnkU8KSplPJcgYFHAwKPBohPBKsX4gaXAvgfPvOIL0x8MRMM9RCP+qjf3LBPTDmZhfqK6CgtFBrlpH8F8/NcbSMFXdcEC/InheO3wAV3tT4lEa2XoCVAktYqxqO3/WBNq0j9RI6o5hSTAYmdwRuYH8ho4bAtxVG/th+IZQTcZix7cI39DsK3xrdtSNNK67LQJnAsnm+AUTCOwUAARy+M1x+SrmhRZfv/RXuHWPOwuig/raWg3hSsHXx8VLgAvlQBgPXhG9OKktV1cThMIqzuIJOnCIc9SmIVvABVahvS2ybLJVdujJBqPb9E8MKt2DjfIoEFQrUyOKrp/JjVZ0A=----ATTACHMENT:----NDEzMDY4NTYyOTUxODk1OSAzNTI2NDU2ODAwMTM2NTkzIDEyNTM0NzIwNzcxMjMzMTg=