User:Xiplus/js/api-query.js
< User:Xiplus | js
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
mw.loader.using('oojs-ui').then(function () {
var query = {
action: 'query',
formatversion: '2',
format: 'jsonfm',
};
var buildUrl = function(params) {
return mw.util.wikiScript('api') + '?' + $.param($.extend(query, params));
}
var $dom = $('<div>');
var buildBotton = function(btnlabel, query) {
var btn = new OO.ui.ButtonWidget({ label: btnlabel }).$element;
$(btn).on('click', function() {
window.open(buildUrl(query));
});
$dom.append(btn);
};
if (mw.config.get('wgCanonicalSpecialPageName') === 'Userrights') {
buildBotton('User rights log', {
'list': 'logevents',
'leprop': 'comment|details|ids|parsedcomment|tags|timestamp|title|type|user|userid',
'letype': 'rights',
'letitle': 'User:' + mw.config.get('wgRelevantUserName'),
'lelimit': 'max'
});
}
if (mw.config.get('wgDiffNewId')) {
buildBotton('New revision', {
prop: 'revisions',
rvprop: 'comment|content|contentmodel|flags|ids|parsedcomment|roles|sha1|size|slotsha1|slotsize|tags|timestamp|user|userid',
titles: mw.config.get('wgPageName'),
rvstartid: mw.config.get('wgDiffNewId'),
rvendid: mw.config.get('wgDiffNewId'),
rvslots: 'main',
});
}
if (mw.config.get('wgRevisionId')) {
buildBotton('Current revision', {
prop: 'revisions',
rvprop: 'comment|content|contentmodel|flags|ids|parsedcomment|roles|sha1|size|slotsha1|slotsize|tags|timestamp|user|userid',
titles: mw.config.get('wgPageName'),
rvstartid: mw.config.get('wgRevisionId'),
rvendid: mw.config.get('wgRevisionId'),
rvslots: 'main',
});
}
if (mw.config.get('wgRelevantUserName')) {
buildBotton('User info', {
list: 'users',
ususers: mw.config.get('wgRelevantUserName'),
usprop: 'centralids|editcount|emailable|gender|groupmemberships|groups|implicitgroups|registration|rights',
});
}
buildBotton('My info', {
meta: 'userinfo',
uiprop: 'acceptlang|blockinfo|centralids|changeablegroups|editcount|email|groupmemberships|groups|hasmsg|implicitgroups|latestcontrib|options|ratelimits|realname|registrationdate|rights|theoreticalratelimits|unreadcount',
});
if ($dom.children().length === 0) {
$dom.append($('<span>Nothing</span>'));
}
var mainBtn = mw.util.addPortletLink(
'p-tb',
'#',
'API Query',
't-api-query',
'Get API query url'
);
$(mainBtn).on('click', function() {
OO.ui.alert($dom);
});
});