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'];
$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.
$title, null, $forceRecursiveLinkUpdate, $p_result );
DataUpdate::runUpdates( $updates );
- $r['linkupdate'] = '';
+ $r['linkupdate'] = true;
if ( $enableParserCache ) {
$pcache = ParserCache::singleton();
$result[] = $r;
}
$apiResult = $this->getResult();
- $apiResult->setIndexedTagName( $result, 'page' );
+ ApiResult::setIndexedTagName( $result, 'page' );
$apiResult->addValue( null, $this->getModuleName(), $result );
$values = $pageSet->getNormalizedTitlesAsResult( $apiResult );
$apiResult->addValue( null, 'redirects', $values );
}
- $apiResult->endContinuation();
+ $this->setContinuationManager( null );
+ $continuationManager->setContinuationIntoResult( $apiResult );
}
/**
return $result;
}
- public function getExamplesMessages() {
+ protected function getExamplesMessages() {
return array(
'action=purge&titles=Main_Page|API'
=> 'apihelp-purge-example-simple',