跳转到内容

User:Renamed user 1212d1fde523b777e92d972a85152d66/common.js

维基百科,自由的百科全书

这是本页的一个历史版本,由Renamed user 1212d1fde523b777e92d972a85152d66留言 | 贡献2021年5月4日 (二) 05:04编辑。这可能和当前版本存在着巨大的差异。

注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google ChromeFirefoxMicrosoft EdgeSafari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。
// [[File:Krinkle_RTRC.js]]
(mw.loader.getState('ext.gadget.rtrc') ? mw.loader.load('ext.gadget.rtrc') : mw.loader.load('https://www.mediawiki.org/w/load.php?modules=ext.gadget.rtrc&lang=' + mw.config.get('wgUserLanguage', 'en')));

mw.loader.load('//www.mediawiki.org/w/index.php?title=MediaWiki:Gadget-DotsSyntaxHighlighter.js&action=raw&ctype=text/javascript');

/**
 * 在[[Special:Newpages]]中讓沒有patrolmarks權限的用戶也能標記巡查過的編輯
 */

(function() {

	if (mw.config.get('wgCanonicalSpecialPageName') !== 'Newpages') {
		return;
	}

	mw.loader.using(['mediawiki.api']).done(function() {

		let api = new mw.Api();
		let is_autoreviewer = {};

		let users = [];
		$('#mw-content-text>ul>li').each((i, e) => {
			let creator = $(e).find('a.mw-userlink').text();
			if (!mw.util.isIPAddress(creator)) {
				users.push(creator);
			} else {
				is_autoreviewer[creator] = false;
			}
		});
		api.get({
			'action': 'query',
			'format': 'json',
			'list': 'users',
			'usprop': 'rights',
			'ususers': users.join('|')
		}).then(data => {
			data.query.users.forEach(user => {
				is_autoreviewer[user.name] = (user.rights.indexOf('autopatrol') !== -1);
			});
		}).then(() => {
			$('#mw-content-text>ul>li').each((i, e) => {
				let pagename = $(e).find('>a:nth-child(2)').text();
				let oldpagename = $(e).find('.mw-newpages-oldtitle').text();
				if (oldpagename) {
					pagename = oldpagename.replace(/最初建立的名稱為「(.+?)」/, '$1').replace(/最初创建为“(.+?)”/, '$1');
				}
				let creator = $(e).find('a.mw-userlink').text();
				let oldid = mw.util.getParamValue('oldid', $(e).find('>a:first()').attr('href'));
				api.get({
					'action': 'query',
					'format': 'json',
					'list': 'logevents',
					'letype': 'patrol',
					'letitle': pagename
				}).then(data => {
					if (data.query.logevents.length == 0) {
						if (!is_autoreviewer[creator]) {
							e.classList.add('not-patrolled');
						}
					} else {
						if (data.query.logevents[0].params.curid != oldid) {
							e.classList.add('not-patrolled');
						}
					}
				});
			});
		})

	});

})();

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

(function($, mw) {
mw.loader.using('ext.gadget.site-lib').then(function() {

'use strict';

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

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

// 针对有巡查权限的用户优化,如果页面上能看到巡查按钮,那一定没被巡查过。
if ($('.patrollink').length) {
	$patroller.html(wgUVS('本页面尚未被巡查。', '本頁面尚未被巡查。'));
	return null;
}

$.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) + '">' +
				wgUVS('讨论', '討論') + '</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 = wgUVS('本页面于', '本頁面於') + ts + '由' + user + '巡查。';
			} else if (action === 'autopatrol') {
				html = wgUVS('本页面于', '本頁面於') + ts + '由' + user +
					wgUVS('自动标为已巡查。', '自動標爲已巡查');
			}
		}
	}
	if (html !== '') {
		$patroller.html(html);
	} else {
		$patroller.html(wgUVS('本页面尚未被巡查。', '本頁面尚未被巡查。'));
	}
}).fail(function(jqXHR, textStatus, errorThrown) {
	console.log('Error when loading patroller: ' + errorThrown);
	$patroller.html(wgUVS('查找巡查者时出现错误。', '查找巡查者時出現錯誤。'));
});

});
})(jQuery, mw);