【问题标题】:Combining MediaWiki API:Users and API:Usercontribs结合 MediaWiki API:Users 和 API:Usercontribs
【发布时间】:2015-05-19 13:19:38
【问题描述】:

我有一个用户列表。我正在尝试使用 API:Users 检索他们的注册、编辑计数和性别,并使用 API:Usercontribs 检索贡献数据。

因为对 API 比较温和,我必须在每个请求中放入一堆用户名,并且我需要匹配他们的 userID,以便能够合并来自两个 API 的结果。

我遇到了一个奇怪的问题:每种方法都检索到相当多的具有不同用户 ID 的用户。例如,如果您从 API:Users 查询用户名“December21st2012Freak”的数据,您将获得用户 ID 14281125,但从 API:Usercontribs 请求相同的用户名,用户 ID 返回为 10141256。 另一个例子是用户名“The Sunshine Man”,在 API:Users 中检索到的用户 ID 为 4857299,通过 API:Usercontribs 检索到用户 ID 4302884。

我不明白为什么会有这样的不一致。

这里是确切的查询:

https://en.wikipedia.org/w/api.php?action=query&list=users&ususers=December21st2012Freak|The%20Sunshine%20Man&usprop=blockinfo%7Cgroups%7Ceditcount%7Cregistration%7Cemailable%7Cgender

返回:

{
    "query": {
        "users": [
            {
                "userid": 14281125,
                "name": "December21st2012Freak",
                "editcount": 0,
                "registration": "2011-03-29T02:14:36Z",
                "groups": [
                    "*",
                    "user"
                ],
                "emailable": "",
                "gender": "unknown"
            },
            {
                "userid": 4857299,
                "name": "The Sunshine Man",
                "editcount": 0,
                "registration": "2007-07-13T20:00:58Z",
                "groups": [
                    "*",
                    "user"
                ],
                "gender": "unknown"
            }
        ]
    }
}

以及 Usercontribs 查询:

https://en.wikipedia.org/w/api.php?action=query&list=usercontribs&ucuser=December21st2012Freak&uclimit=3&ucdir=newer&continue=

结果:

{
    "batchcomplete": "",
    "continue": {
        "uccontinue": "20090904033705|311775264",
        "continue": "-||"
    },
    "query": {
        "usercontribs": [
            {
                "userid": 10141256,
                "user": "December21st2012Freak",
                "pageid": 24217201,
                "revid": 311775169,
                "parentid": 0,
                "ns": 3,
                "title": "User talk:MsD723",
                "timestamp": "2009-09-04T03:36:13Z",
                "new": "",
                "minor": "",
                "top": "",
                "comment": "Added welcome template to user talk page. using [[WP:FRIENDLY|Friendly]]",
                "size": 1458
            },
            {
                "userid": 10141256,
                "user": "December21st2012Freak",
                "pageid": 24217203,
                "revid": 311775198,
                "parentid": 0,
                "ns": 3,
                "title": "User talk:Oneseeker2",
                "timestamp": "2009-09-04T03:36:32Z",
                "new": "",
                "minor": "",
                "top": "",
                "comment": "Added welcome template to user talk page. using [[WP:FRIENDLY|Friendly]]",
                "size": 1458
            },
            {
                "userid": 10141256,
                "user": "December21st2012Freak",
                "pageid": 24217208,
                "revid": 311775231,
                "parentid": 0,
                "ns": 3,
                "title": "User talk:Carolynhinchey",
                "timestamp": "2009-09-04T03:36:46Z",
                "new": "",
                "minor": "",
                "top": "",
                "comment": "Added welcome template to user talk page. using [[WP:FRIENDLY|Friendly]]",
                "size": 1458
            }
        ]
    }
}

https://en.wikipedia.org/w/api.php?action=query&list=usercontribs&ucuser=The%20Sunshine%20Man&uclimit=3&ucdir=newer&continue=

结果:

{
    "batchcomplete": "",
    "continue": {
        "uccontinue": "20070517145725|131549160",
        "continue": "-||"
    },
    "query": {
        "usercontribs": [
            {
                "userid": 4302884,
                "user": "The Sunshine Man",
                "pageid": 11271016,
                "revid": 131518067,
                "parentid": 131517319,
                "ns": 4,
                "title": "Wikipedia:Miscellany for deletion/Portal:Aquinas College, Perth",
                "timestamp": "2007-05-17T11:48:17Z",
                "comment": "/* [[Portal:Aquinas College, Perth]] */ Delete",
                "size": 1773
            },
            {
                "userid": 4302884,
                "user": "The Sunshine Man",
                "pageid": 7797923,
                "revid": 131547208,
                "parentid": 131525587,
                "ns": 3,
                "title": "User talk:Ryan Postlethwaite",
                "timestamp": "2007-05-17T14:47:29Z",
                "comment": "HeHe",
                "size": 49019
            },
            {
                "userid": 4302884,
                "user": "The Sunshine Man",
                "pageid": 11247929,
                "revid": 131547970,
                "parentid": 131543922,
                "ns": 4,
                "title": "Wikipedia:Requests for adminship/Bobak",
                "timestamp": "2007-05-17T14:51:19Z",
                "comment": "Support",
                "size": 16492
            }
        ]
    }
}

【问题讨论】:

  • 您能提供示例查询吗?
  • @Tgr,我在问题中添加了确切的查询。
  • 谢谢!这不应该发生。我提交了一个错误报告 (T99929)。
  • API 不提供性别。它只提供grammatical gender preferences

标签: api mediawiki difference mediawiki-api


【解决方案1】:

Tgr 报告:这是一个错误,请耐心等待修复。 https://phabricator.wikimedia.org/T99929

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-09
    • 2010-09-22
    • 2015-05-30
    • 2013-01-06
    相关资源
    最近更新 更多