/** * @param $title Title * @param $repo ForeignApiRepo * @return ForeignAPIFile|null */ static function newFromTitle( Title $title, $repo ) { $data = $repo->fetchImageQuery( array( 'titles' => 'File:' . $title->getDBkey(), 'iiprop' => self::getProps(), 'prop' => 'imageinfo', 'iimetadataversion' => MediaHandler::getMetadataVersion() ) ); $info = $repo->getImageInfo( $data ); if ( $info ) { $lastRedirect = isset( $data['query']['redirects'] ) ? count( $data['query']['redirects'] ) - 1 : -1; if ( $lastRedirect >= 0 ) { $newtitle = Title::newFromText( $data['query']['redirects'][$lastRedirect]['to'] ); $img = new self( $newtitle, $repo, $info, true ); if ( $img ) { $img->redirectedFrom( $title->getDBkey() ); } } else { $img = new self( $title, $repo, $info, true ); } return $img; } else { return null; } }