MediaWiki:Group-sysop.js:修订间差异
imported>=海豚= 无编辑摘要 |
小 (→top:bad link repair, replaced: hmoegirl.com → hmoegirl.info) |
||
(未显示3个用户的8个中间版本) | |||
第1行: | 第1行: | ||
// <pre> | // <pre> | ||
/* 这里的任何JavaScript将只为管理员加载 */ | /* 这里的任何JavaScript将只为管理员加载 */ | ||
(function($, mw) { | "use strict"; | ||
(function ($, mw) { | |||
/* 函数定义块 */ | /* 函数定义块 */ | ||
//首字母大写 | //首字母大写 | ||
function toUpperFirstCase(t) { | function toUpperFirstCase(t) { | ||
return t[0].substring(0, 1).toUpperCase() + t.substring(1); | return t[0].substring(0, 1).toUpperCase() + t.substring(1); | ||
} | } | ||
//添加删除原因链接 | //添加删除原因链接 | ||
第20行: | 第12行: | ||
var href = $obj.css("margin-right", "1em")[0].href, | var href = $obj.css("margin-right", "1em")[0].href, | ||
reasonPageName = href.slice(href.indexOf("title=") + 6, href.indexOf("&action")); | reasonPageName = href.slice(href.indexOf("title=") + 6, href.indexOf("&action")); | ||
$obj.after('<a target="_blank" href="/' + reasonPageName + '">浏览' + act + | $obj.after('<a target="_blank" href="/' + reasonPageName + '">浏览' + act + " 原因</a>"); | ||
} | } | ||
//防滥用过滤器相关 | //防滥用过滤器相关 | ||
// eslint-disable-next-line no-unused-vars | |||
function abuseLog() { | function abuseLog() { | ||
if ($(".mw-special-AbuseLog")[0]) { | if ($(".mw-special-AbuseLog")[0]) { | ||
var rawInput = $('input[name="wpSearchFilter"]').val().split("|"); | var rawInput = $('input[name="wpSearchFilter"]').val().split("|"); | ||
var needToggle = new Set(); | var needToggle = new Set(); | ||
$(".plainlinks li").each(function() { | $(".plainlinks li").each(function () { | ||
var self = $(this); | var self = $(this); | ||
var id = -1; | var id = -1; | ||
第44行: | 第37行: | ||
}); | }); | ||
if ($(".AbuseFilterNeedHidden")[0]) { | if ($(".AbuseFilterNeedHidden")[0]) { | ||
mw.loader.addStyleTag("body.AbuseFilterHidden .AbuseFilterNeedHidden { display: none; }"); | mw.loader.addStyleTag("body.AbuseFilterHidden .AbuseFilterNeedHidden { display: none; } "); | ||
var lastStatus = localStorage.getItem("AnnTools-abuseLog-hidden") === "true"; | var lastStatus = localStorage.getItem("AnnTools-abuseLog-hidden") === "true"; | ||
var bdy = $("body"); | var bdy = $("body"); | ||
第52行: | 第45行: | ||
val: lastStatus ? "显示" : "隐藏", | val: lastStatus ? "显示" : "隐藏", | ||
on: { | on: { | ||
click: function() { | click: function () { | ||
if ($("body").hasClass("AbuseFilterHidden")) { | if ($("body").hasClass("AbuseFilterHidden")) { | ||
$(this).val("隐藏"); | $(this).val("隐藏"); | ||
第73行: | 第66行: | ||
} | } | ||
} | } | ||
// | //Widget 预加载相关 | ||
function widgetPreload() { | function widgetPreload() { | ||
if (mw.config.get( | if (mw.config.get("wgAction") === "edit") { | ||
var regex = /[-_,. | var regex = /[-_,./\\]/; | ||
if (regex.test(mw.config.get( | if (regex.test(mw.config.get("wgPageName"))) { | ||
window.onbeforeunload = undefined; | window.onbeforeunload = undefined; | ||
$(window).off("beforeunload"); | $(window).off("beforeunload"); | ||
location.replace( | location.replace(mw.config.get("wgServer") + mw.config.get("wgScriptPath") + "/index.php?action=edit&title=" + mw.config.get("wgPageName").replace(/ |_/g, "").replace(/^([^/]*)[/\\].*$/i, "$1").split(regex).map(function (n) { | ||
return toUpperFirstCase(n); | |||
}).join("")); | |||
return; | return; | ||
} | } | ||
var flag = ("wg" + mw.config.get( | var flag = ("wg" + mw.config.get("wgTitle")).replace(/ /g, ""); | ||
$("#wpTextbox1").val("<noinclude> </noinclude><includeonly><!--{if !isset($" + flag + ") || !$" + flag + '}--><!--{assign var="' + flag + '" value=true scope="global"}--><script>\n"use strict";\nwindow. | $("#wpTextbox1").val("<noinclude> </noinclude><includeonly><!--{if !isset($" + flag + ") || !$" + flag + '}--><!--{assign var="' + flag + '" value=true scope="global"}--><script>\n"use strict";\nwindow.addEventListener(\'jquery-ready\', () => {\n\n});\n</script><!--{/if}--></includeonly>'); | ||
} | |||
if ($("#mw-content-text > .mw-parser-output > .noarticletext")[0]) { | |||
$(document.body).addClass("noWidget"); | |||
} | } | ||
} | } | ||
//防滥用过滤器列表 | //防滥用过滤器列表 | ||
function | function AbuseList() { | ||
var idList = $( | var idList = $(".TablePager_col_af_id a"), | ||
lvList = $( | lvList = $(".TablePager_col_af_hidden"), | ||
idLength = idList.last().text().length; | idLength = idList.last().text().length; | ||
idList.each(function() { | idList.each(function () { | ||
var zero = | var zero = ""; | ||
while ($(this).text().length + zero.length < idLength) zero += | while ($(this).text().length + zero.length < idLength) { | ||
$(this).prepend('<span style="speak:none;visibility:hidden;color:transparent;">' + zero + | zero += "0"; | ||
} | |||
$(this).prepend('<span style="speak:none;visibility:hidden;color:transparent;">' + zero + "</span>"); | |||
}); | }); | ||
lvList.each(function() { | lvList.each(function () { | ||
// if ($(this).text().length == 2) $(this).prepend('<span style="speak:none;visibility:hidden;color:transparent;">已</span>'); | // if ($(this).text().length == 2) $(this).prepend('<span style="speak:none;visibility:hidden;color:transparent;">已</span>'); | ||
}); | }); | ||
} | } | ||
// 从MediaWiki拷过来的用于动态修改侧边栏 | // 从MediaWiki拷过来的用于动态修改侧边栏 | ||
// eslint-disable-next-line no-unused-vars | |||
function modifySidebar(action, section, name, link) { | function modifySidebar(action, section, name, link) { | ||
try { | try { | ||
var target = { | var target = { | ||
languages: "#p-lang", | |||
toolbox: "#p-tb" | |||
} [section] || | }[section] || "#p-" + section; | ||
if (action == | if (action === "add") { | ||
if (action == | $(target).find("div:first ul:first").append('<li class="plainlinks"><a href="' + link + '">' + name + "</a></li>"); | ||
} | |||
if (action === "remove") { | |||
$(target).find('div:first ul:first li a[href="' + link + '"][title="' + name + '"]').parent().hide(); | |||
} | |||
} catch (e) { | } catch (e) { | ||
console.debug( | console.debug("modifySidebar", e); // let's just ignore what's happened | ||
} | } | ||
} | } | ||
//评论栏管理链接 | //评论栏管理链接 | ||
function flowthreadAdminLink() { | function flowthreadAdminLink() { | ||
var link = $( | var link = $("<div/>", { | ||
id: "flowthreadAdminLink", | |||
css: { | |||
"font-size": "12px", | |||
color: "#999", | |||
"text-align": "right" | |||
} | |||
}).append('<a href="' + mw.config.get("wgServer") + mw.config.get("wgScriptPath") + '/MediaWiki:Flowthread-blacklist" style="margin-right:8px;" target="_blank">关键词过滤名单</a>') | |||
.append('<a href=" | .append('<a href="' + mw.config.get("wgServer") + mw.config.get("wgScriptPath") + '/Special:%E7%AE%A1%E7%90%86FlowThread%E8%AF%84%E8%AE%BA" target="_blank">评论管理</a>'); | ||
$( | $("#flowthread").append(link); | ||
} | |||
//i18n语言链接 | |||
function i18nLink() { | |||
$('#mw-content-text a.new[href$="/zh-cn"], #mw-content-text a.new[href$="/zh-tw"], #mw-content-text a.new[href$="/zh-hk"]').each(function (_, ele) { | |||
$(ele).removeClass("new").attr({ | |||
title: ele.title.replace(/\/zh-[a-z]+|(页面不存在)/g, ""), | |||
href: ele.href.replace(/\/zh-[a-z]+/g, "") | |||
}); | |||
}); | |||
} | } | ||
/* 函数执行块 */ | /* 函数执行块 */ | ||
$(function() { | $(function () { | ||
//Widget预加载模板 | //Widget预加载模板 | ||
if (mw.config.get( | if (mw.config.get("wgNamespaceNumber") === 274 && !mw.config.get("wgCurRevisionId")) { | ||
widgetPreload(); | |||
} | |||
//删除保护原因浏览链接 | //删除保护原因浏览链接 | ||
if (window.location.href.indexOf("action=delete") != -1) { | if (window.location.href.indexOf("action=delete") !== -1) { | ||
if ($(".mw-delete-editreasons")[0]) addLink($(".mw-delete-editreasons a"), | if ($(".mw-delete-editreasons")[0]) { | ||
if ($(".mw-filedelete-editreasons")[0]) addLink($(".mw-filedelete-editreasons a"), | addLink($(".mw-delete-editreasons a"), " 删除"); | ||
} | |||
if ($(".mw-filedelete-editreasons")[0]) { | |||
addLink($(".mw-filedelete-editreasons a"), " 删除"); | |||
} | |||
} | |||
if (window.location.href.indexOf("action=protect") !== -1 && $(".mw-protect-editreasons")[0]) { | |||
addLink($(".mw-protect-editreasons a"), "保护"); | |||
} | } | ||
//防滥用过滤器日志 | //防滥用过滤器日志 | ||
// abuseLog(); | // abuseLog(); | ||
//防滥用过滤器列表 | //防滥用过滤器列表 | ||
if ($( | if ($(".mw-special-AbuseFilter")[0]) { | ||
AbuseList(); | |||
} | |||
} | |||
//i18n语言链接 | //i18n语言链接 | ||
//评论管理 | //评论管理 | ||
setInterval(function() { | setInterval(function () { | ||
i18nLink(); | i18nLink(); | ||
if ($( | if ($("#flowthread")[0] && !$("#flowthreadAdminLink")[0]) { | ||
flowthreadAdminLink(); | |||
} | |||
}, 100); | }, 100); | ||
//积压工作 | |||
$('#pt-watchlist').after('<li id="pt-backlog" class="sysop-show"><a href="//www.hmoegirl.info/分类:积压工作">积压工作</a></li>'); | |||
}); | }); | ||
})(jQuery, mediaWiki); | })(jQuery, mediaWiki); | ||
// </pre> | // </pre> |
2022年12月20日 (二) 16:16的最新版本
// <pre>
/* 这里的任何JavaScript将只为管理员加载 */
"use strict";
(function ($, mw) {
/* 函数定义块 */
//首字母大写
function toUpperFirstCase(t) {
return t[0].substring(0, 1).toUpperCase() + t.substring(1);
}
//添加删除原因链接
function addLink($obj, act) {
var href = $obj.css("margin-right", "1em")[0].href,
reasonPageName = href.slice(href.indexOf("title=") + 6, href.indexOf("&action"));
$obj.after('<a target="_blank" href="/' + reasonPageName + '">浏览' + act + "原因</a>");
}
//防滥用过滤器相关
// eslint-disable-next-line no-unused-vars
function abuseLog() {
if ($(".mw-special-AbuseLog")[0]) {
var rawInput = $('input[name="wpSearchFilter"]').val().split("|");
var needToggle = new Set();
$(".plainlinks li").each(function () {
var self = $(this);
var id = -1;
switch (true) {
case self.find('a[href="/Special:%E6%BB%A5%E7%94%A8%E8%BF%87%E6%BB%A4%E5%99%A8/1"]')[0] && !rawInput.includes("1"):
id = 1;
break;
case self.find('a[href="/Special:%E6%BB%A5%E7%94%A8%E8%BF%87%E6%BB%A4%E5%99%A8/11"]')[0] && !rawInput.includes("11"):
id = 11;
break;
}
if (id !== -1) {
needToggle.add(id);
self.addClass("AbuseFilterNeedHidden");
}
});
if ($(".AbuseFilterNeedHidden")[0]) {
mw.loader.addStyleTag("body.AbuseFilterHidden .AbuseFilterNeedHidden { display: none; } ");
var lastStatus = localStorage.getItem("AnnTools-abuseLog-hidden") === "true";
var bdy = $("body");
$('form[action="/Special:%E6%BB%A5%E7%94%A8%E6%97%A5%E5%BF%97"] > fieldset').append("<p/>").find("p").append($("<span/>", {
text: "点击隐藏/显示防滥用过滤器" + Array.from(needToggle.values()).join("、").replace(/、(?=[^、]+$)/, "和") + "的日志:"
})).append($("<input/>", {
val: lastStatus ? "显示" : "隐藏",
on: {
click: function () {
if ($("body").hasClass("AbuseFilterHidden")) {
$(this).val("隐藏");
localStorage.getItem("AnnTools-abuseLog-hidden", "false");
} else {
$(this).val("显示");
localStorage.getItem("AnnTools-abuseLog-hidden", "true");
}
bdy.toggleClass("AbuseFilterHidden");
}
},
attr: {
type: "button"
}
}));
if (lastStatus) {
bdy.addClass("AbuseFilterHidden");
}
}
}
}
//Widget预加载相关
function widgetPreload() {
if (mw.config.get("wgAction") === "edit") {
var regex = /[-_,./\\]/;
if (regex.test(mw.config.get("wgPageName"))) {
window.onbeforeunload = undefined;
$(window).off("beforeunload");
location.replace(mw.config.get("wgServer") + mw.config.get("wgScriptPath") + "/index.php?action=edit&title=" + mw.config.get("wgPageName").replace(/ |_/g, "").replace(/^([^/]*)[/\\].*$/i, "$1").split(regex).map(function (n) {
return toUpperFirstCase(n);
}).join(""));
return;
}
var flag = ("wg" + mw.config.get("wgTitle")).replace(/ /g, "");
$("#wpTextbox1").val("<noinclude> </noinclude><includeonly><!--{if !isset($" + flag + ") || !$" + flag + '}--><!--{assign var="' + flag + '" value=true scope="global"}--><script>\n"use strict";\nwindow.addEventListener(\'jquery-ready\', () => {\n\n});\n</script><!--{/if}--></includeonly>');
}
if ($("#mw-content-text > .mw-parser-output > .noarticletext")[0]) {
$(document.body).addClass("noWidget");
}
}
//防滥用过滤器列表
function AbuseList() {
var idList = $(".TablePager_col_af_id a"),
lvList = $(".TablePager_col_af_hidden"),
idLength = idList.last().text().length;
idList.each(function () {
var zero = "";
while ($(this).text().length + zero.length < idLength) {
zero += "0";
}
$(this).prepend('<span style="speak:none;visibility:hidden;color:transparent;">' + zero + "</span>");
});
lvList.each(function () {
// if ($(this).text().length == 2) $(this).prepend('<span style="speak:none;visibility:hidden;color:transparent;">已</span>');
});
}
// 从MediaWiki拷过来的用于动态修改侧边栏
// eslint-disable-next-line no-unused-vars
function modifySidebar(action, section, name, link) {
try {
var target = {
languages: "#p-lang",
toolbox: "#p-tb"
}[section] || "#p-" + section;
if (action === "add") {
$(target).find("div:first ul:first").append('<li class="plainlinks"><a href="' + link + '">' + name + "</a></li>");
}
if (action === "remove") {
$(target).find('div:first ul:first li a[href="' + link + '"][title="' + name + '"]').parent().hide();
}
} catch (e) {
console.debug("modifySidebar", e); // let's just ignore what's happened
}
}
//评论栏管理链接
function flowthreadAdminLink() {
var link = $("<div/>", {
id: "flowthreadAdminLink",
css: {
"font-size": "12px",
color: "#999",
"text-align": "right"
}
}).append('<a href="' + mw.config.get("wgServer") + mw.config.get("wgScriptPath") + '/MediaWiki:Flowthread-blacklist" style="margin-right:8px;" target="_blank">关键词过滤名单</a>')
.append('<a href="' + mw.config.get("wgServer") + mw.config.get("wgScriptPath") + '/Special:%E7%AE%A1%E7%90%86FlowThread%E8%AF%84%E8%AE%BA" target="_blank">评论管理</a>');
$("#flowthread").append(link);
}
//i18n语言链接
function i18nLink() {
$('#mw-content-text a.new[href$="/zh-cn"], #mw-content-text a.new[href$="/zh-tw"], #mw-content-text a.new[href$="/zh-hk"]').each(function (_, ele) {
$(ele).removeClass("new").attr({
title: ele.title.replace(/\/zh-[a-z]+|(页面不存在)/g, ""),
href: ele.href.replace(/\/zh-[a-z]+/g, "")
});
});
}
/* 函数执行块 */
$(function () {
//Widget预加载模板
if (mw.config.get("wgNamespaceNumber") === 274 && !mw.config.get("wgCurRevisionId")) {
widgetPreload();
}
//删除保护原因浏览链接
if (window.location.href.indexOf("action=delete") !== -1) {
if ($(".mw-delete-editreasons")[0]) {
addLink($(".mw-delete-editreasons a"), "删除");
}
if ($(".mw-filedelete-editreasons")[0]) {
addLink($(".mw-filedelete-editreasons a"), "删除");
}
}
if (window.location.href.indexOf("action=protect") !== -1 && $(".mw-protect-editreasons")[0]) {
addLink($(".mw-protect-editreasons a"), "保护");
}
//防滥用过滤器日志
// abuseLog();
//防滥用过滤器列表
if ($(".mw-special-AbuseFilter")[0]) {
AbuseList();
}
//i18n语言链接
//评论管理
setInterval(function () {
i18nLink();
if ($("#flowthread")[0] && !$("#flowthreadAdminLink")[0]) {
flowthreadAdminLink();
}
}, 100);
//积压工作
$('#pt-watchlist').after('<li id="pt-backlog" class="sysop-show"><a href="//www.hmoegirl.info/分类:积压工作">积压工作</a></li>');
});
})(jQuery, mediaWiki);
// </pre>