X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fapi%2FApiPurge.php;h=34f9b6c84ec610fb1e08b2458c2022578cb8fc60;hb=1470d68c4cb13800bbe76c57fe1b8238ce0e2e16;hp=a69a0d5333a78da833ca4758a883394e1f0d91db;hpb=201928033d59d5f5bccadac48bc4a10c27a0384a;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/api/ApiPurge.php b/includes/api/ApiPurge.php index a69a0d5333..34f9b6c84e 100644 --- a/includes/api/ApiPurge.php +++ b/includes/api/ApiPurge.php @@ -38,7 +38,8 @@ class ApiPurge extends ApiBase { public function execute() { $params = $this->extractRequestParams(); - $this->getResult()->beginContinuation( $params['continue'], array(), array() ); + $continuationManager = new ApiContinuationManager( $this, array(), array() ); + $this->setContinuationManager( $continuationManager ); $forceLinkUpdate = $params['forcelinkupdate']; $forceRecursiveLinkUpdate = $params['forcerecursivelinkupdate']; @@ -46,16 +47,22 @@ class ApiPurge extends ApiBase { $pageSet->execute(); $result = $pageSet->getInvalidTitlesAndRevisions(); + $user = $this->getUser(); foreach ( $pageSet->getGoodTitles() as $title ) { $r = array(); ApiQueryBase::addTitleInfo( $r, $title ); $page = WikiPage::factory( $title ); - $page->doPurge(); // Directly purge and skip the UI part of purge(). - $r['purged'] = ''; + if ( !$user->pingLimiter( 'purge' ) ) { + $page->doPurge(); // Directly purge and skip the UI part of purge(). + $r['purged'] = true; + } else { + $error = $this->parseMsg( array( 'actionthrottledtext' ) ); + $this->setWarning( $error['info'] ); + } if ( $forceLinkUpdate || $forceRecursiveLinkUpdate ) { - if ( !$this->getUser()->pingLimiter( 'linkpurge' ) ) { + if ( !$user->pingLimiter( 'linkpurge' ) ) { $popts = $page->makeParserOptions( 'canonical' ); # Parse content; note that HTML generation is only needed if we want to cache the result. @@ -73,7 +80,7 @@ class ApiPurge extends ApiBase { $title, null, $forceRecursiveLinkUpdate, $p_result ); DataUpdate::runUpdates( $updates ); - $r['linkupdate'] = ''; + $r['linkupdate'] = true; if ( $enableParserCache ) { $pcache = ParserCache::singleton(); @@ -89,7 +96,7 @@ class ApiPurge extends ApiBase { $result[] = $r; } $apiResult = $this->getResult(); - $apiResult->setIndexedTagName( $result, 'page' ); + ApiResult::setIndexedTagName( $result, 'page' ); $apiResult->addValue( null, $this->getModuleName(), $result ); $values = $pageSet->getNormalizedTitlesAsResult( $apiResult ); @@ -105,7 +112,8 @@ class ApiPurge extends ApiBase { $apiResult->addValue( null, 'redirects', $values ); } - $apiResult->endContinuation(); + $this->setContinuationManager( null ); + $continuationManager->setContinuationIntoResult( $apiResult ); } /** @@ -144,7 +152,7 @@ class ApiPurge extends ApiBase { return $result; } - public function getExamplesMessages() { + protected function getExamplesMessages() { return array( 'action=purge&titles=Main_Page|API' => 'apihelp-purge-example-simple',