注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google ChromeFirefoxMicrosoft EdgeSafari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。

/**
 * Showing patroller on the bottom of the page.
 * 
 * @version 0.1 (2017-05-06)
 * @author [[User:WhitePhosphorus]]
 */

(function($, mw) {

'use strict';
if (mw.config.get('wgNamespaceNumber') < 0)
	return null;

var weekdays = ['日', '一', '二', '三', '四', '五', '六'];
var $patroller = $('<small id="info-patroller">' + 
	 '正在加載本頁面的巡查者……' + '</small>');
	$('#firstHeading').after($patroller);

$.ajax({
	url: mw.util.wikiScript('api'),
	data: {
		action: 'query',
		titles: mw.config.get('wgPageName'),
		prop: 'revisions',
		rvprop: 'timestamp',
		rvlimit: 1,
		rvdir: 'newer',
		list: 'logevents',
		letype: 'patrol',
		letitle: mw.config.get('wgPageName'),
		format: 'json'
	}
}).done(function (data) {
	var user, ts, cts, action, html = '';
	if (data.query && data.query.logevents && data.query.logevents.length) {
		var log = data.query.logevents[0];
		user = log.user;
		ts = log.timestamp;
		action = log.action;
		var date = new Date(ts);
		if (data.query.pages) {
			for (var id in data.query.pages) {
				var page = data.query.pages[id];
				if (page && page.revisions && page.revisions.length) {
					cts = page.revisions[0].timestamp;
					break;
				}
			}
		}
		if (cts && new Date(cts) > date) {
			html = '';
		} else {
			ts = date.getUTCFullYear() + '/' + (date.getUTCMonth()+1) + '/' +
				date.getUTCDate() + ' (' + weekdays[date.getUTCDay()] + ') ' +
				('0'+date.getUTCHours()).slice(-2) + ':' +
				('0'+date.getUTCMinutes()).slice(-2) + ' (UTC)';
			var p = mw.config.get('wgArticlePath');
			user = '<a href="' + p.replace('$1', 'User:' + user) + '">' + user + '</a>(' +
				'<a href="' + p.replace('$1', 'User talk:' + user) + '">' +
				'留言' + '</a>' + ' | ' +
				'<a href="' + p.replace('$1', 'Special:Contributions/' + user) + '">' +
				wgUVS('贡献', '貢獻') + '</a><span class="sysop-show">' + ' | ' +
				'<a href="' + p.replace('$1', 'Special:BlockUser/' + user) + '">' +
				'封禁' + '</a></span>' + ')';
			if (action === 'patrol') {
				html ='本頁' + ts + '<br />由 ' + user + '手動巡查。';
			} else if (action === 'autopatrol') {
				html ='本頁' + ts + '<br />由' + user +'已被自動巡查(需確認)。';
			}
		}
	}
	if (html !== '') {
		$patroller.html(html);
	} else {
		mw.config.get('wgUserGroups').indexOf( 'patroller' ) > -1?$patroller.html( '請以巡查員的身分進行巡查。'):$patroller.html('本頁面尚未被巡查。');
	}
}).fail(function(jqXHR, textStatus, errorThrown) {
	console.log('Error when loading patroller: ' + errorThrown);
	$patroller.html('查找巡查者時出現錯誤。');
});

})(jQuery, mw);