我需要在维基媒体网页上获取我创建的所有页面,例如模板。我必须用javascript做到这一点。
这可能吗?
答案 0 :(得分:1)
您可以使用UserContribs API query执行此操作,如下所示:
基本上,您需要的参数是:
format=json
以JSON格式获取结果,这可能是您想要的JavaScript。 (我在上面的示例链接中使用jsonfm
来获得漂亮的人类可读输出。)
action=query
表示这确实是query,而不是编辑或登录尝试。
list=usercontribs
表示您需要列表用户贡献(即您在{{上看到的内容) 3}}页面。
ucuser=your_username
选择您要查看的用户贡献。 (上面的示例链接显示了我的。)
ucnamespace=10
仅选择对模板的贡献。 (10是内置模板命名空间的Special:Contributions。
ucshow=new
仅选择涉及创建新网页的内容。 (请注意,这也包括页面移动;我没有看到任何简单的方法来过滤它们。)
当然,您可能还想包含其他namespace number。
我还包含一个空的continue=
参数,表示我想使用parameters,并禁止对其发出警告。显然,如果您确实想要使用查询延续,那么您需要自己实现客户端部分(或者使用为您实现它的MW API客户端)。这是一种简单的方法:
function getNewTemplatesForUser( username ) {
var queryURL = 'https://en.wikipedia.org/w/api.php?format=json&action=query&list=usercontribs&ucnamespace=10&ucshow=new';
queryURL += '&ucuser=' + encodeURIComponent( username );
var callback = function( json ) {
// TODO: actually process the results here
if ( json.continue ) {
var continueURL = queryURL;
for ( var attr in json.continue ) {
continueURL += '&' + attr + '=' + encodeURIComponent( json.continue[attr] );
}
doAjaxRequest( continueURL, callback );
}
};
doAjaxRequest( queryURL + '&continue=', callback );
}