enabled ) { return array(); } $urls = array(); foreach ( $page->references as $ref ) { $oembed = Reference::FRAME === $ref->kind ? self::oembed_url( $ref->url ) : null; if ( null !== $oembed ) { $urls[ $oembed ] = true; } } return array_keys( $urls ); } /** * Videos that are gone or not available for embedding. * * @param ParsedPage $page Parsed page. * @param array $results Results by URL. * @phpstan-param array $results * @return array */ public function inspect( ParsedPage $page, array $results ): array { $hits = array(); foreach ( $page->references as $ref ) { $oembed = Reference::FRAME === $ref->kind ? self::oembed_url( $ref->url ) : null; $result = null === $oembed ? null : ( $results[ $oembed ] ?? null ); if ( null === $result ) { continue; } if ( TargetResult::BROKEN === $result->verdict ) { $title = __( 'An embedded video no longer exists', 'forensix-digital' ); $type = Priority::ERROR; } elseif ( in_array( $result->status, array( 401, 403 ), true ) ) { $title = __( 'An embedded video is private or cannot be embedded', 'forensix-digital' ); $type = Priority::INCONCLUSIVE; } else { continue; } $hits[] = array( 'observation' => new Observation( self::ID, Priority::MEDIUM, $type, $title, $ref->url, $ref->source->type, $ref->source->ref, '', array( 'http_status' => $result->status ) ), 'context' => $ref->url, ); } return $hits; } }