X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2Fapi%2FApiQuery.php;h=16bd725e3cb0a986a098c345bfa8363d4dad96df;hp=5eb86ab3c7b93731864b5b73867e8e4bad8b0a1e;hb=9964ca1a390c446397dcd466916ffed356cdc3c9;hpb=d87a14fbb0e356ddd01dd14b442a8ab895c86fae diff --git a/includes/api/ApiQuery.php b/includes/api/ApiQuery.php index 5eb86ab3c7..16bd725e3c 100644 --- a/includes/api/ApiQuery.php +++ b/includes/api/ApiQuery.php @@ -168,7 +168,7 @@ class ApiQuery extends ApiBase { * @param string $name Name to assign to the database connection * @param int $db One of the DB_* constants * @param array $groups Query groups - * @return DatabaseBase + * @return Database */ public function getNamedDB( $name, $db, $groups ) { if ( !array_key_exists( $name, $this->mNamedDB ) ) { @@ -258,6 +258,11 @@ class ApiQuery extends ApiBase { // Write the continuation data into the result $this->setContinuationManager( null ); if ( $this->mParams['rawcontinue'] ) { + $data = $continuationManager->getRawNonContinuation(); + if ( $data ) { + $this->getResult()->addValue( null, 'query-noncontinue', $data, + ApiResult::ADD_ON_TOP | ApiResult::NO_SIZE_CHECK ); + } $data = $continuationManager->getRawContinuation(); if ( $data ) { $this->getResult()->addValue( null, 'query-continue', $data, @@ -357,6 +362,9 @@ class ApiQuery extends ApiBase { $vals = []; ApiQueryBase::addTitleInfo( $vals, $title ); $vals['missing'] = true; + if ( $title->isKnown() ) { + $vals['known'] = true; + } $pages[$fakeId] = $vals; } // Report any invalid titles @@ -367,7 +375,7 @@ class ApiQuery extends ApiBase { foreach ( $pageSet->getMissingPageIDs() as $pageid ) { $pages[$pageid] = [ 'pageid' => $pageid, - 'missing' => true + 'missing' => true, ]; } // Report special pages @@ -376,13 +384,7 @@ class ApiQuery extends ApiBase { $vals = []; ApiQueryBase::addTitleInfo( $vals, $title ); $vals['special'] = true; - if ( $title->isSpecialPage() && - !SpecialPageFactory::exists( $title->getDBkey() ) - ) { - $vals['missing'] = true; - } elseif ( $title->getNamespace() == NS_MEDIA && - !wfFindFile( $title ) - ) { + if ( !$title->isKnown() ) { $vals['missing'] = true; } $pages[$fakeId] = $vals; @@ -495,61 +497,6 @@ class ApiQuery extends ApiBase { return $result; } - /** - * Override the parent to generate help messages for all available query modules. - * @deprecated since 1.25 - * @return string - */ - public function makeHelpMsg() { - wfDeprecated( __METHOD__, '1.25' ); - - // Use parent to make default message for the query module - $msg = parent::makeHelpMsg(); - - $querySeparator = str_repeat( '--- ', 12 ); - $moduleSeparator = str_repeat( '*** ', 14 ); - $msg .= "\n$querySeparator Query: Prop $querySeparator\n\n"; - $msg .= $this->makeHelpMsgHelper( 'prop' ); - $msg .= "\n$querySeparator Query: List $querySeparator\n\n"; - $msg .= $this->makeHelpMsgHelper( 'list' ); - $msg .= "\n$querySeparator Query: Meta $querySeparator\n\n"; - $msg .= $this->makeHelpMsgHelper( 'meta' ); - $msg .= "\n\n$moduleSeparator Modules: continuation $moduleSeparator\n\n"; - - return $msg; - } - - /** - * For all modules of a given group, generate help messages and join them together - * @deprecated since 1.25 - * @param string $group Module group - * @return string - */ - private function makeHelpMsgHelper( $group ) { - $moduleDescriptions = []; - - $moduleNames = $this->mModuleMgr->getNames( $group ); - sort( $moduleNames ); - foreach ( $moduleNames as $name ) { - /** - * @var $module ApiQueryBase - */ - $module = $this->mModuleMgr->getModule( $name ); - - $msg = ApiMain::makeHelpMsgHeader( $module, $group ); - $msg2 = $module->makeHelpMsg(); - if ( $msg2 !== false ) { - $msg .= $msg2; - } - if ( $module instanceof ApiQueryGeneratorBase ) { - $msg .= "Generator:\n This module may be used as a generator\n"; - } - $moduleDescriptions[] = $msg; - } - - return implode( "\n", $moduleDescriptions ); - } - public function isReadMode() { // We need to make an exception for certain meta modules that should be // accessible even without the 'read' right. Restrict the exception as