}
}
- $this->getResult()->setIndexedTagName_internal(
+ $this->getResult()->addIndexedTagName(
array( 'query', $this->getModuleName() ),
'item'
);
// see the username.
if ( !$user->isAllowed( 'deletedhistory' ) ) {
$bitmask = Revision::DELETED_USER;
- } elseif ( !$user->isAllowed( 'suppressrevision' ) ) {
+ } elseif ( !$user->isAllowedAny( 'suppressrevision', 'viewsuppressed' ) ) {
$bitmask = Revision::DELETED_USER | Revision::DELETED_RESTRICTED;
} else {
$bitmask = 0;
$show = $this->params['show'];
if ( $this->params['toponly'] ) { // deprecated/old param
+ $this->logFeatureUsage( 'list=usercontribs&uctoponly' );
$show[] = 'top';
}
if ( !is_null( $show ) ) {
$anyHidden = false;
if ( $row->rev_deleted & Revision::DELETED_TEXT ) {
- $vals['texthidden'] = '';
+ $vals['texthidden'] = true;
$anyHidden = true;
}
// Any rows where we can't view the user were filtered out in the query.
- $vals['userid'] = $row->rev_user;
+ $vals['userid'] = (int)$row->rev_user;
$vals['user'] = $row->rev_user_text;
if ( $row->rev_deleted & Revision::DELETED_USER ) {
- $vals['userhidden'] = '';
+ $vals['userhidden'] = true;
$anyHidden = true;
}
if ( $this->fld_ids ) {
}
if ( $this->fld_flags ) {
- if ( $row->rev_parent_id == 0 && !is_null( $row->rev_parent_id ) ) {
- $vals['new'] = '';
- }
- if ( $row->rev_minor_edit ) {
- $vals['minor'] = '';
- }
- if ( $row->page_latest == $row->rev_id ) {
- $vals['top'] = '';
- }
+ $vals['new'] = $row->rev_parent_id == 0 && !is_null( $row->rev_parent_id );
+ $vals['minor'] = (bool)$row->rev_minor_edit;
+ $vals['top'] = $row->page_latest == $row->rev_id;
}
if ( ( $this->fld_comment || $this->fld_parsedcomment ) && isset( $row->rev_comment ) ) {
if ( $row->rev_deleted & Revision::DELETED_COMMENT ) {
- $vals['commenthidden'] = '';
+ $vals['commenthidden'] = true;
$anyHidden = true;
}
}
}
- if ( $this->fld_patrolled && $row->rc_patrolled ) {
- $vals['patrolled'] = '';
+ if ( $this->fld_patrolled ) {
+ $vals['patrolled'] = (bool)$row->rc_patrolled;
}
if ( $this->fld_size && !is_null( $row->rev_len ) ) {
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();
}
if ( $anyHidden && $row->rev_deleted & Revision::DELETED_RESTRICTED ) {
- $vals['suppressed'] = '';
+ $vals['suppressed'] = true;
}
return $vals;
'end' => array(
ApiBase::PARAM_TYPE => 'timestamp'
),
- 'continue' => null,
+ 'continue' => array(
+ ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+ ),
'user' => array(
ApiBase::PARAM_ISMULTI => true
),
ApiBase::PARAM_TYPE => array(
'newer',
'older'
- )
+ ),
+ ApiBase::PARAM_HELP_MSG => 'api-help-param-direction',
),
'namespace' => array(
ApiBase::PARAM_ISMULTI => true,
'!top',
'new',
'!new',
- )
+ ),
+ ApiBase::PARAM_HELP_MSG => array(
+ 'apihelp-query+usercontribs-param-show',
+ $this->getConfig()->get( 'RCMaxAge' )
+ ),
),
'tag' => null,
'toponly' => array(
);
}
- public function getParamDescription() {
- $p = $this->getModulePrefix();
- $RCMaxAge = $this->getConfig()->get( 'RCMaxAge' );
-
- return array(
- 'limit' => 'The maximum number of contributions to return',
- 'start' => 'The start timestamp to return from',
- 'end' => 'The end timestamp to return to',
- 'continue' => 'When more results are available, use this to continue',
- 'user' => 'The users to retrieve contributions for',
- 'userprefix' => array(
- "Retrieve contributions for all users whose names begin with this value.",
- "Overrides {$p}user",
- ),
- 'dir' => $this->getDirectionDescription( $p ),
- 'namespace' => 'Only list contributions in these namespaces',
- 'prop' => array(
- 'Include additional pieces of information',
- ' ids - Adds the page ID and revision ID',
- ' title - Adds the title and namespace ID of the page',
- ' timestamp - Adds the timestamp of the edit',
- ' comment - Adds the comment of the edit',
- ' parsedcomment - Adds the parsed comment of the edit',
- ' size - Adds the new size of the edit',
- ' sizediff - Adds the size delta of the edit against its parent',
- ' flags - Adds flags of the edit',
- ' patrolled - Tags patrolled edits',
- ' tags - Lists tags for the edit',
- ),
- 'show' => array(
- "Show only items that meet thse criteria, e.g. non minor edits only: {$p}show=!minor",
- "NOTE: If {$p}show=patrolled or {$p}show=!patrolled is set, revisions older than",
- "\$wgRCMaxAge ($RCMaxAge) won't be shown",
- ),
- 'tag' => 'Only list revisions tagged with this tag',
- 'toponly' => 'Only list changes which are the latest revision',
- );
- }
-
- public function getResultProperties() {
- return array(
- '' => array(
- 'userid' => 'integer',
- 'user' => 'string',
- 'userhidden' => 'boolean'
- ),
- 'ids' => array(
- 'pageid' => 'integer',
- 'revid' => 'integer',
- 'parentid' => array(
- ApiBase::PROP_TYPE => 'integer',
- ApiBase::PROP_NULLABLE => true
- )
- ),
- 'title' => array(
- 'ns' => 'namespace',
- 'title' => 'string'
- ),
- 'timestamp' => array(
- 'timestamp' => 'timestamp'
- ),
- 'flags' => array(
- 'new' => 'boolean',
- 'minor' => 'boolean',
- 'top' => 'boolean'
- ),
- 'comment' => array(
- 'commenthidden' => 'boolean',
- 'comment' => array(
- ApiBase::PROP_TYPE => 'string',
- ApiBase::PROP_NULLABLE => true
- )
- ),
- 'parsedcomment' => array(
- 'commenthidden' => 'boolean',
- 'parsedcomment' => array(
- ApiBase::PROP_TYPE => 'string',
- ApiBase::PROP_NULLABLE => true
- )
- ),
- 'patrolled' => array(
- 'patrolled' => 'boolean'
- ),
- 'size' => array(
- 'size' => array(
- ApiBase::PROP_TYPE => 'integer',
- ApiBase::PROP_NULLABLE => true
- )
- ),
- 'sizediff' => array(
- 'sizediff' => array(
- ApiBase::PROP_TYPE => 'integer',
- ApiBase::PROP_NULLABLE => true
- )
- )
- );
- }
-
- public function getDescription() {
- return 'Get all edits by a user.';
- }
-
- public function getPossibleErrors() {
- return array_merge( parent::getPossibleErrors(), array(
- array( 'code' => 'param_user', 'info' => 'User parameter may not be empty.' ),
- array( 'code' => 'param_user', 'info' => 'User name user is not valid' ),
- array( 'show' ),
- array(
- 'code' => 'permissiondenied',
- 'info' => 'You need the patrol right to request the patrolled flag'
- ),
- ) );
- }
-
- public function getExamples() {
+ protected function getExamplesMessages() {
return array(
- 'api.php?action=query&list=usercontribs&ucuser=YurikBot',
- 'api.php?action=query&list=usercontribs&ucuserprefix=217.121.114.',
+ 'action=query&list=usercontribs&ucuser=Example'
+ => 'apihelp-query+usercontribs-example-user',
+ 'action=query&list=usercontribs&ucuserprefix=192.0.2.'
+ => 'apihelp-query+usercontribs-example-ipprefix',
);
}