abstract class ApiQueryRevisionsBase extends ApiQueryGeneratorBase {
protected $limit, $diffto, $difftotext, $expandTemplates, $generateXML, $section,
- $parseContent, $contentFormat, $setParsedLimit = true;
+ $parseContent, $fetchContent, $contentFormat, $setParsedLimit = true;
protected $fld_ids = false, $fld_flags = false, $fld_timestamp = false,
$fld_size = false, $fld_sha1 = false, $fld_comment = false,
// DifferenceEngine returns a rather ambiguous empty
// string if that's not the case
if ( $params['diffto'] != 0 ) {
- $difftoRev = Revision::newFromID( $params['diffto'] );
+ $difftoRev = Revision::newFromId( $params['diffto'] );
if ( !$difftoRev ) {
$this->dieUsageMsg( array( 'nosuchrevid', $params['diffto'] ) );
}
$this->limit = $params['limit'];
+ $this->fetchContent = $this->fld_content || !is_null( $this->diffto )
+ || !is_null( $this->difftotext );
+
$smallLimit = false;
- if ( $this->fld_content || !is_null( $this->diffto ) || !is_null( $this->difftotext ) ) {
+ if ( $this->fetchContent ) {
$smallLimit = true;
$this->expandTemplates = $params['expandtemplates'];
$this->generateXML = $params['generatexml'];
if ( $this->limit == 'max' ) {
$this->limit = $this->getMain()->canApiHighLimits() ? $botMax : $userMax;
if ( $this->setParsedLimit ) {
- $this->getResult()->setParsedLimit( $this->getModuleName(), $this->limit );
+ $this->getResult()->addParsedLimit( $this->getModuleName(), $this->limit );
}
}
}
if ( $revision->userCan( Revision::DELETED_USER, $user ) ) {
if ( $this->fld_user ) {
- $vals['user'] = $revision->getRawUserText();
+ $vals['user'] = $revision->getUserText( Revision::RAW );
}
- $userid = $revision->getRawUser();
+ $userid = $revision->getUser( Revision::RAW );
if ( !$userid ) {
$vals['anon'] = '';
}
$anyHidden = true;
}
if ( $revision->userCan( Revision::DELETED_COMMENT, $user ) ) {
- $comment = $revision->getRawComment();
+ $comment = $revision->getComment( Revision::RAW );
if ( $this->fld_comment ) {
$vals['comment'] = $comment;
if ( $this->fld_tags ) {
if ( $row->ts_tags ) {
$tags = explode( ',', $row->ts_tags );
- $this->getResult()->setIndexedTagName( $tags, 'tag' );
+ ApiResult::setIndexedTagName( $tags, 'tag' );
$vals['tags'] = $tags;
} else {
$vals['tags'] = array();
$content = null;
global $wgParser;
- if ( $this->fld_content || !is_null( $this->diffto ) || !is_null( $this->difftotext ) ) {
+ if ( $this->fetchContent ) {
$content = $revision->getContent( Revision::FOR_THIS_USER, $this->getUser() );
// Expand templates after getting section content because
// template-added sections don't count and Parser::preprocess()
}
if ( $text !== false ) {
- ApiResult::setContent( $vals, $text );
+ ApiResult::setContentValue( $vals, 'content', $text );
}
}
}
if ( $engine ) {
$difftext = $engine->getDiffBody();
- ApiResult::setContent( $vals['diff'], $difftext );
+ ApiResult::setContentValue( $vals['diff'], 'body', $difftext );
if ( !$engine->wasCacheHit() ) {
$n++;
}