API:用户贡献

From mediawiki.org
This page is a translated version of the page API:Usercontribs and the translation is 97% complete.
MediaWiki版本:
1.9

GET 请求列出用户的贡献。

API帮助文档


list=usercontribs (uc)

(main | query | usercontribs)

Get all edits by a user.

Specific parameters:
Other general parameters are available.
uclimit

The maximum number of contributions to return.

Type: integer or max
The value must be between 1 and 500.
Default: 10
ucstart

The start timestamp to return from, i.e. revisions before this timestamp.

Type: timestamp (allowed formats)
ucend

The end timestamp to return to, i.e. revisions after this timestamp.

Type: timestamp (allowed formats)
uccontinue

When more results are available, use this to continue. More detailed information on how to continue queries can be found on mediawiki.org.

ucuser

The users to retrieve contributions for. Cannot be used with ucuserids, ucuserprefix, or uciprange.

Type: list of users, by any of username, IP, Temporary user and interwiki name (e.g. "prefix>ExampleName")
Separate values with | or alternative.
Maximum number of values is 50 (500 for clients that are allowed higher limits).
ucuserids

The user IDs to retrieve contributions for. Cannot be used with ucuser, ucuserprefix, or uciprange.

Type: list of integers
Separate values with | or alternative.
Maximum number of values is 50 (500 for clients that are allowed higher limits).
ucuserprefix

Retrieve contributions for all users whose names begin with this value. Cannot be used with ucuser, ucuserids, or uciprange.

uciprange

The CIDR range to retrieve contributions for. Cannot be used with ucuser, ucuserprefix, or ucuserids.

ucdir

In which direction to enumerate:

newer
List oldest first. Note: ucstart has to be before ucend.
older
List newest first (default). Note: ucstart has to be later than ucend.
One of the following values: newer, older
Default: older
ucnamespace

Only list contributions in these namespaces.

Values (separate with | or alternative): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 90, 91, 92, 93, 100, 101, 102, 103, 104, 105, 106, 107, 486, 487, 710, 711, 828, 829, 1198, 1199, 2600, 5500, 5501
To specify all values, use *.
ucprop

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. If the comment has been revision deleted, a commenthidden property will be returned.
parsedcomment
Adds the parsed comment of the edit. If the comment has been revision deleted, a commenthidden property will be returned.
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.
Values (separate with | or alternative): comment, flags, ids, parsedcomment, patrolled, size, sizediff, tags, timestamp, title
Default: ids|title|timestamp|comment|size|flags
ucshow

Show only items that meet these criteria, e.g. non minor edits only: ucshow=!minor.

If ucshow=patrolled or ucshow=!patrolled is set, revisions older than $wgRCMaxAge (2592000 seconds) won't be shown.

Values (separate with | or alternative): !autopatrolled, !minor, !new, !patrolled, !top, autopatrolled, minor, new, patrolled, top
uctag

Only list revisions tagged with this tag.

uctoponly
Deprecated.

Only list changes which are the latest revision.

Type: boolean (details)
Examples:
Show contributions of user Example.
api.php?action=query&list=usercontribs&ucuser=Example [open in sandbox]
Show contributions from all IP addresses with prefix 192.0.2..
api.php?action=query&list=usercontribs&ucuserprefix=192.0.2. [open in sandbox]

示例

GET请求

列出User:Jimbo Wales的贡献


回应

{
    "batchcomplete": "",
    "continue": {
        "uccontinue": "20190130180447|880978627",
        "continue": "-||"
    },
    "query": {
        "usercontribs": [
            {
                "userid": 24,
                "user": "Jimbo Wales",
                "pageid": 9870625,
                "revid": 881893498,
                "parentid": 881892978,
                "ns": 3,
                "title": "User talk:Jimbo Wales",
                "timestamp": "2019-02-05T14:05:11Z",
                "comment": "/* Fancy I edit Wikipedia T-Shirt */",
                "size": 29753
            },
            {
                "userid": 24,
                "user": "Jimbo Wales",
                "pageid": 9870625,
                "revid": 881282261,
                "parentid": 881270759,
                "ns": 3,
                "title": "User talk:Jimbo Wales",
                "timestamp": "2019-02-01T15:29:31Z",
                "comment": "/* Macedonian President Gorge Ivanov is now in the House arrest */",
                "size": 60166
            },
            {
                "userid": 24,
                "user": "Jimbo Wales",
                "pageid": 9513191,
                "revid": 881245934,
                "parentid": 881240310,
                "ns": 1,
                "title": "Talk:Mark Dice",
                "timestamp": "2019-02-01T09:48:38Z",
                "comment": "/* So good they names it twice */",
                "size": 74128
            },
            ...
        ]
    }
}

示例代码

Python

#!/usr/bin/python3

"""
    get_usercontribs.py

    MediaWiki API Demos
    Demo of `Usercontribs` module: List user contributions.

    MIT License
"""

import requests

S = requests.Session()

URL = "https://en.wikipedia.org/w/api.php"

PARAMS = {
    "action": "query",
    "format": "json",
    "list": "usercontribs",
    "ucuser": "Jimbo Wales"
}

R = S.get(url=URL, params=PARAMS)
DATA = R.json()

USERCONTRIBS = DATA["query"]["usercontribs"]

for uc in USERCONTRIBS:
    print(uc["title"])

PHP

<?php

//This file is autogenerated. See modules.json and autogenerator.py for details

/*
    get_usercontribs.php

    MediaWiki API Demos
    Demo of `Usercontribs` module: List user contributions.

    MIT License
*/

$endPoint = "https://en.wikipedia.org/w/api.php";
$params = [
    "action" => "query",
    "format" => "json",
    "list" => "usercontribs",
    "ucuser" => "Jimbo Wales"
];

$url = $endPoint . "?" . http_build_query( $params );

$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$output = curl_exec( $ch );
curl_close( $ch );

$result = json_decode( $output, true );

foreach( $result["query"]["usercontribs"] as $k => $v ) {
    echo( $v["title"] . "\n" );
}

JavaScript

/*
    get_usercontribs.js

    MediaWiki API Demos
    Demo of `Usercontribs` module: List user contributions.

    MIT License
*/

var url = "https://en.wikipedia.org/w/api.php"; 

var params = {
    action: "query",
    format: "json",
    list: "usercontribs",
    ucuser: "Jimbo Wales"
};

url = url + "?origin=*";
Object.keys(params).forEach(function(key){url += "&" + key + "=" + params[key];});

fetch(url)
    .then(function(response){return response.json();})
    .then(function(response) {
        var usercontrib = response.query.usercontribs;
        for (var uc in usercontrib) {
            console.log(usercontrib[uc].title);
        }
    })
    .catch(function(error){console.log(error);});

MediaWiki JS

/*
	get_usercontribs.js

	MediaWiki API Demos
	Demo of `Usercontribs` module: List user contributions.

	MIT License
*/

var params = {
		action: 'query',
		format: 'json',
		list: 'usercontribs',
		ucuser: 'Jimbo Wales'
	},
	api = new mw.Api();

api.get( params ).done( function ( data ) {
	var usercontrib = data.query.usercontribs,
		uc;
	for ( uc in usercontrib ) {
		console.log( usercontrib[ uc ].title );
	}
} );

可能的错误

代码 信息
invaliduserid 用户IDusername无效。
paramempty_ucuser 参数user不能为空。
baduser_ucuser 用于用户参数user的值“username”无效。
show 不正确的参数——不可提供互斥值。
permissiondenied 您需要patrolpatrolmarks权限来请求巡查标记。

参数历史

  • v1.39: Introduced uciprange
  • v1.29: 啟用ucuserids
  • v1.23: 棄用uctoponly
  • v1.23: 啟用ucshow=top, ucshow=!top, ucshow=new, ucshow=!new
  • v1.20: 啟用ucprop=sizediff
  • v1.18: 啟用uctoponly
  • v1.16: 啟用ucprop=parsedcomment, ucprop=size, ucprop=tags, uctag
  • v1.15: 啟用ucprop=patrolled, ucshow=patrolled, ucshow=!patrolled
  • v1.14: 啟用uccontinue
  • v1.13: 啟用ucuserprefix
  • v1.11: 啟用ucnamespace, ucprop, ucshow

附加提醒

  • 模块页面返回编辑和移动,但不返回其他操作,如上传。
  • 在MediaWiki v1.14之前,start参数用于查看返回的其他结果。 在v1.14和v1.22之间的版本,列出来自单个用户的贡献时使用start;而列出来自多个用户的贡献时使用continue。 从v1.23开始,所有查询都使用continue

參閱