mw.loader.load("https://zh.wikipedia.org/w/index.php?title=User:Bluedeck/serve/edit-count.js&oldid=49623399&action=raw&ctype=text/javascript");
mw.loader.load("https://zh-yue.wikipedia.org/w/index.php?title=User:H78c67c/tools/online-admins.js&oldid=1484668&action=raw&ctype=text/javascript");
mw.loader.load("https://en.wikipedia.org/w/index.php?title=User:Frietjes/infoboxgap.js&action=raw&ctype=text/javascript");
mw.loader.load("https://zh-yue.wikipedia.org/w/index.php?title=User:H78c67c/internalLinkHelper.js&action=raw&ctype=text/javascript");
mw.loader.using(['oojs-ui-core', 'oojs-ui-windows']).done(function () {
function replaceAndSave(text, newTemplate) {
text = text
.replace(/{{.*(-?stub|楔)}}/i, newTemplate == "" ? "" : "{{"+newTemplate+"[s]}}")
.replace(/{{.*(-?stub|楔)}}/ig, "")
.replace(/{{(.*)\[s\]}}/ig, "{{$1}}");
$.ajax({
url: mw.util.wikiScript( 'api' ),
data: {
format: 'json',
action: 'edit',
title: mw.config.get('wgPageName'),
summary: "Sorting stub: ".concat(newTemplate),
text: text,
token: mw.user.tokens.get('csrfToken'),
minor: true
},
dataType: 'json',
type: 'POST',
success: function( data ) {
if ( data && data.edit && data.edit.result == 'Success' ) {
window.location.reload(); // reload page if edit was successful
} else if ( data && data.error ) {
OO.ui.alert( mw.message('error').plain()+'API returned error code "' + data.error.code + '":' + data.error.info );
} else {
OO.ui.alert( mw.message('error').plain()+'Unknown result from API.' );
}
},
error: function( xhr ) {
OO.ui.alert( mw.message('error').plain()+'請求失敗' );
}
});
}
function sortStub() {
jQuery.getJSON(
mw.util.wikiScript('api'),
{
"action": "parse",
"format": "json",
"page": mw.config.get('wgPageName'),
"prop": "wikitext",
"formatversion": "2"
},
function (data) {
OO.ui.prompt(
'Replace all stub templates with:',
{ textInput: { placeholder: 'Canada-geo-stub' } }
).done(function (result) {
if (result !== null) {
replaceAndSave(data.parse.wikitext, result);
}
});
}
);
}
var link = mw.util.addPortletLink(
'p-cactions',
'#',
'Sort stub',
't-sort-stub',
'Sort stub'
);
$(link).on('click', function(e) {
e.preventDefault();
sortStub();
});
});