获取编辑页面的用户数组

时间:2013-10-04 13:49:14

标签: javascript jquery api mediawiki mediawiki-api

我正在为Wikia社区(http://c.wikia.com)创建用户脚本,我需要获取页面的用户数组(以及可能的修订版ID)。我已经提出了以下代码,但似乎无法使其工作。任何帮助将不胜感激。

代码:

var revisions = [];
$.getJSON('/api.php', {
    action: 'query',
    prop: 'revisions',
    titles: mw.config.get("wgPageName"),
    rvprop: 'user',
    rvlimit: '50',
    format: 'json'
}, function (result) {
    for (var i = 0; i < 50; i++) {
        var revision = result.query.pages.page[i].revisions.user;
        revisions.push(revision);
    }
    alert(revisions);
});

1 个答案:

答案 0 :(得分:1)

查询结果如下所示:

{
  "query": {
    "pages": {
      "421588": {
        "pageid": 421588,
        "ns": 0,
        "title": "Community Central",
        "revisions": [
          {
            "user": "Mhadick"
          },
          {
            "user": "Nblonkenfeld"
          },
          …
        ]
      }
    }
  },
  …
}

您会注意到pages是一个对象,其属性以当前页面"421588"的页面ID命名(根据您的代码判断,您可能正在查看响应的XML版本,你必须看看JSON)。要使用它,您可以使用以下内容:

var users = [];

$.getJSON('/api.php', {
    action: 'query',
    prop: 'revisions',
    titles: mw.config.get("wgPageName"),
    rvprop: 'user',
    rvlimit: '50',
    format: 'json'
}, function (result) {
    var revisions = result.query.pages[mw.config.get("wgArticleId")].revisions;

    $.each(revisions, function(key, revision) {
        users.push(revision.user);
    });

    alert(users);
});