LLWiki正在建设中,欢迎加入我们!
MediaWiki:Gadget-patrolPlus.js
跳转到导航
跳转到搜索
注意:在保存之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。
- Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5或Ctrl-R(Mac为⌘-R)
- Google Chrome:按Ctrl-Shift-R(Mac为⌘-Shift-R)
- Internet Explorer:按住Ctrl的同时单击刷新,或按Ctrl-F5
- Opera:前往菜单 → 设置(Mac为Opera → Preferences),然后隐私和安全 → 清除浏览数据 → 缓存的图片和文件。
//引自[[moegirl:mediawiki:gadget-patrolPlus.js]] $(function () { if (!["Recentchanges", "Recentchangeslinked", "Watchlist"].includes(mw.config.get("wgCanonicalSpecialPageName"))) { return; } var api = new mw.Api(); var patrolling = false; var list = []; function handlePatrol(title, _revid) { return new Promise(function (res, rej) { if (typeof _revid !== "number") { api.get({ action: "query", prop: "revisions", rvprop: "ids", rvlimit: 1, rvdir: "newer", titles: title, formatversion:2 }) .then(function (data) { if ("error" in data) { rej(data.error); } else { res(data.query.pages[0].revisions[0].revid); } }, function (error) { rej(error); }); } else { res(_revid); } }).then(function (revid) { return api.postWithToken("patrol", { action: "patrol", format: "json", revid: revid }); }); } $("abbr.unpatrolled").each(function () { var self = $(this); if (self.closest("tbody").find("tr")[1] && self.closest("tr").index() === 0) { return; } var container = $('<a href="#" class="patrolLink"></a>'); self.after(container).appendTo(container).before("[").after("]"); self = container; var link = self.closest("li, tr").find('a[href*="diff"]:not([href*="diff=0"])').first(); var uri, title, revid; if (link.length) { uri = new mw.Uri(link.attr("href")); title = uri.query.title; revid = +uri.query.diff; } else { uri = new mw.Uri(self.closest("li, tr").find(".mw-changeslist-history").first().attr("href")); title = uri.query.title; } if (!list.includes(title)) { list.push(title); } self.attr({ "data-title": list.indexOf(title), "data-revid": revid, }); self.on("click", function (event) { event.preventDefault(); if (patrolling) { return; } if (!window.confirm(wgULS("您确定要标记此编辑为已巡查吗?","您確定要標示此編輯為已巡查嗎?"))) { return; } patrolling = true; $("a.patrolLink").not(self).css({ color: "#aaa", "text-decoration": "none" }); var textStatus = $("<span></span>", { html: wgULS('[正在标记中……]','[正在標示中……]') }); self.after(textStatus).hide(); handlePatrol(title, revid).then(function (data) { if ("error" in data) { throw data.error; } textStatus.text(wgULS("[标记成功]","[標示成功]")); patrolling = false; $("a.patrolLink").removeAttr("style"); self.parents('.row-unpatrolled').removeClass( 'row-unpatrolled' ); var parentTable = self.parents('table'); self.remove(); if($('.row-unpatrolled').length === 0 && $('.mark-all-as-patrolled').length) $('.mark-all-as-patrolled').remove(); if(parentTable.find('a.patrolLink').length === 0) parentTable.find('abbr.unpatrolled').remove(); }, function (error) { textStatus.text(wgULS("[标记失败:" + (error instanceof Error ? error.name : error.code) + ",请在3秒后重试]","[標示失敗:" + (error instanceof Error ? error.name : error.code) + ",請在3秒後重試")); window.setTimeout(function () { textStatus.remove(); self.show(); }, 3000); patrolling = false; $("a.patrolLink").removeAttr("style"); }); }); }); });