User:H78c67c/common.js

出自維基百科,自由嘅百科全書
注意:儲存之後,你可能要兜過你嘅瀏覽器快取至睇到更改。Internet Explorer: 撳住Ctrl掣再撳重新整理掣。 Firefox: 撳住Shift掣再撳重新載入(又或者撳Ctrl-Shift-R)。 Google Chrome同埋Safari用戶就噉撳個重載掣。
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();
	});
});