• Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

User:穆斯塔法凯末尔/common.js

萌娘百科,万物皆可萌的百科全书!转载请标注来源页面的网页链接,并声明引自萌娘百科。内容不可商用。
跳转到导航 跳转到搜索

注意:在保存之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。

  • Firefox/Safari:按住“Shift”的同时单击“刷新”,或按“Ctrl-F5”或“Ctrl-R”(Mac为“⌘-R”)
  • Google Chrome:按“Ctrl-Shift-R”(Mac为“⌘-Shift-R”)
  • Internet Explorer:按住“Ctrl”的同时单击“刷新”,或按“Ctrl-F5”
  • Opera:在“工具→首选项”中清除缓存
如果您已登录但该页面出现未登录状态,请尝试在地址栏的地址最后添加代码?_=1来访问最新页面。
添加代码后的本页地址如下:-{R|https://moegirl.icu/User:%E7%A9%86%E6%96%AF%E5%A1%94%E6%B3%95%E5%87%AF%E6%9C%AB%E5%B0%94/common.js?_=1}-
文档  [查看] [编辑] [历史] [刷新]
Git Hub
该用户是一名GitHub用户
其ID是Mustafabot

仅列举部分个人强烈推荐使用的js和个人改造的js,本人设置具体参见User:穆斯塔法凯末尔/common.js,反馈请到我的讨论页

一键插入

-{User:東東君/js/charinsert.js}-

  • 由于本站强大的WAF,该插件的改造版无法直接保存在站内,改造后须经站外渠道引入。

增加了快速MAR的个人自用版

(虽然已经没啥用了……) 在common.js中插入:[1]

mw.loader.load("//testingcf.jsdelivr.net/gh/Mustafabot/js-MoegirlPedia/QuickInsert.min.js");

批量编辑(MassEdit)

阿熊妙妙小工具,还不来试吗?

Wikiplus

站内小工具就有,不过稳定吃验证码,这里建议使用-{Dreammu}-[更多]讨论页贡献上传历史封禁及历史被删贡献移动日志巡查日志用户权限的修复版(WikiplusSP):

mw.loader.load("/index.php?title=User:Dreammu/WikiplusSP.js&action=raw&ctype=text/javascript");

Wikiplus代码高亮

拜托了,要是没有代码高亮的话……

mw.loader.load('https://cdn.jsdelivr.net/npm/wikiplus-highlight');

歌词注音

U:屠麟傲血/lyricRuby.js,现已支持MoeSkin

  1. 本小工具改造自User:東東君/js/ruby.js,使用vue创建对话框
  2. 新增了标记歌词中特殊读音的功能,同时修改复制歌词功能实现方式
  3. 1.38+可以使用mediawiki自带的vue3模块,小工具版本参见 -{R|https://github.com/fallenice2022/moeGadget/blob/main/gadgets/lyricRuby}-
  4. 使用本小工具前请先去除个人js中对User:東東君/js/ruby.js的引用,因为我懒得改class和id名称

更新日志:

  1. 增加了moeskin下按钮
  2. 更换了vue的cdn

已知bug:

  1. MoeSkin下特殊注音功能无法正常使用。已于2024.10.2修复
  2. 与Monaco编辑器冲突。不过可以复制粘贴,影响不大

快速撤销

基于User:Nzh21/js/QuickUndo.js改造而来:

mw.loader.load("//fastly.jsdelivr.net/gh/Mustafabot/js-MoegirlPedia/QuickUndo.min.js");
  1. +半自动标签;
  2. +不改变监视状态;
  3. +小编辑;
  4. 修改编辑摘要。

但是……

其实星海的工具也能用,虽然只能在用户贡献页面,但是除了撤销还有回退/版本删除:

mw.loader.load("//testingcf.jsdelivr.net/gh/lovelyCARDINAL/wikitool/massRollback.min.js");

非链入使用检测

维护人员必备的妙妙小工具,就是误报率有点高,建议insource搜索一遍。

Dreammu小工具

自动查询非链入使用,虽然可以偷懒,但多开有很大的被WAF风险。(脚本在共享站,共享站使用不需要额外加域名)

mw.loader.load('/index.php?title=User:Dreammu/FileUsedNotLinkedAutoload.js&action=raw&ctype=text/javascript');

防止误回退

似乎效果不佳

首先,隐藏回退按钮防止误触:

@import url('/index.php?title=User:穆斯塔法凯末尔/rollback.css&action=raw&ctype=text/css');

然后引入User:穆斯塔法凯末尔/rollback.js以恢复回退按钮显示。

快速填写移动理由

在移动页面时快速填写理由。(来自U:BearBin/common.js,请在“reasons”数组内自行增删改理由)

if (mw.config.get("wgCanonicalSpecialPageName") === "Movepage") {
  var reasons = [
    ["理由1链接显示文字","理由1填入框内内容"],
    ["理由2"],
  ];
$("#wpReason").after($('<div id="move-reason" style="margin-top: .3em"></div>')
.append(reasons.map(function (reason) {
return $('<a title="' + (reason[1] || reason[0]) + '">' + reason[0] + '</a>').on("click", function () {
$("#wpReason input").val(reason[1] || reason[0]);
});
}).reduce(function (acc, cur, index) {
if (index !== 0) {
acc.push("丨");
}
return acc.concat(cur);
}, [])));
}

Cat-a-lot

前排提醒:依赖复杂,你百升级之后可能需要修复

基于喂鸡共享同名插件的4.77版:

  • 受api限制,仅限维护人员/机器人/机器用户使用。
  • 测试中,有已知bug。
  • 共享站有同名的js镜像,在共享站调用时无需修改调用链接。
mw.loader.load("/index.php?title=User:穆斯塔法凯末尔/Cat-a-lot.js&action=raw&ctype=text/javascript");

配套的css:

@import url('//testingcf.jsdelivr.net/gh/Mustafabot/js-MoegirlPedia/Cat-a-lot.min.css');
已知bug:
  • “参数设置”无法正常使用。(待修)
临时解决办法:在个人js中添加设置代码:
window.catALotPrefs = {"disambig_category":"消歧义分类","redir_category":"已重定向的分类","watchlist":"nochange","minor":true,"editpages":true,"docleanup":false,"subcatcount":50,"uncat":false,"button":false};
disambig_category:消歧义分类名称,萌百的全部消歧义分类皆在Category:消歧义分类下;
redir_category:重定向分类名称,萌百的全部重定向分类皆在Category:已重定向的分类下;
watchlist:编辑页面的监视列表选项;
minor:将编辑标记为小修改(如果您在系统参数设置中已设置将所有编辑标记为小修改,此选项不会对现有行为进行改动),默认为false;
editpages:允许对不是文件的页面和子分类进行分类操作,默认为false;
docleanup:移除{{Check categories}}并进行其他细节清理,此项设置为false即可,萌百无此模板,不需要该功能;
subcatcount:最多显示的子分类数量,不建议超过50个。
uncat:移除{{Uncategorized}},萌百无此模板,保持false即可;
button:以按钮取代文字,默认为true。[2]
  • 输入分类名后必须回车,移动端打不出回车导致无法正常使用。(维基共享也没修好这个bug,但是AI帮我修好了)
  • 有不小概率操作失败,请刷新重试。(已修复)
  • 分类名含不可见字符时编辑出错:“找不到分类”

Inspector

主页面:U:Bhsd/Inspector

热修复版,修复了Wikiplus同款bug。

mw.loader.load("//fastly.jsdelivr.net/gh/Mustafabot/js-MoegirlPedia/Inspector.min.js");

DisamAssist

引入自zhwp:User:暁月凛奈/DisamAssist.js,测试中,尚待更多适应性修改。

mw.loader.load("/index.php?title=User:穆斯塔法凯末尔/DisamAssist.js&action=raw&ctype=text/javascript");
@import url('/index.php?title=User:穆斯塔法凯末尔/DisamAssist.css&action=raw&ctype=text/css');

修改配置:复制上述文件源码后自行修改。

批量检测文件全域用途

Claude 3.7 Sonnet新鲜出炉,纯AI几乎无人工,快来尝一下罢

mw.loader.load("//fastly.jsdelivr.net/gh/Mustafabot/js-MoegirlPedia/MassGlobalUsageChecker.min.js");

神秘bug:有概率无法正常加载,清除缓存后可解决。

注释与外部链接

  1. 仅普通用户可用的p、r、n三种(对应“问题已解决”“问题已答复”“无人回复”)
  2. 由于界面文字缺失,改为false后可能影响使用。
var namespace = mw.config.get("wgNamespaceNumber"),
    pageName = mw.config.get('wgPageName');
    _addText = "{{Documentation|User:没有羽翼的格雷塔/js}}";
//mw.loader.load(['ext.gadget.moeskin-classic']);
window.inspector = {
	summary: "//[[U:Bhsd/Inspector|Inspector]]",
	variants: true,
	replace: true,
	resizable: true,
	entity: true,
	diff: true
};
if (mw.config.get( 'skin' ) == 'vector') {
    mw.loader.using( 'mediawiki.util' ).then(function() {
        $(mw.util.addPortletLink('p-cactions', '#', 'Inspector')).click(function(e) {
            e.preventDefault();
            this.remove();
            mw.loader.load('//testingcf.jsdelivr.net/gh/Mustafabot/js-MoegirlPedia/Inspector.min.js');
        });
    });
}
mw.loader.load("//fastly.jsdelivr.net/gh/BearBin1215/MoegirlPedia@master/dist/gadgets/ExportXML.min.js");
window.ExportXML = true;
mw.loader.load("//fastly.jsdelivr.net/gh/BearBin1215/MoegirlPedia@master/dist/gadgets/DynamicRecentChanges.min.js");
mw.loader.load("//testingcf.jsdelivr.net/gh/lovelyCARDINAL/wikitool/massRollback.min.js");
mw.loader.load("//testingcf.jsdelivr.net/gh/Mustafabot/js-MoegirlPedia/Wikiplus-api.min.js");
mw.loader.load("//testingcf.jsdelivr.net/gh/Mustafabot/js-MoegirlPedia/MarkBlocked.min.js");
mw.loader.load("/index.php?title=User:穆斯塔法凯末尔/Cat-a-lot.js&action=raw&ctype=text/javascript");
mw.loader.load("/index.php?title=User:穆斯塔法凯末尔/DisamAssist.js&action=raw&ctype=text/javascript");
mw.loader.load("/index.php?title=User:屠麟傲血/lyricRuby.js&action=raw&ctype=text/javascript");
//mw.loader.load("//testingcf.jsdelivr.net/gh/Mustafabot/js-MoegirlPedia/DisamAssist.min.js");
window.catALotPrefs = {"watchlist":"preferences","minor":true,"editpages":true,"docleanup":false,"subcatcount":10};
//mw.loader.load("//testingcf.jsdelivr.net/gh/Mustafabot/js-MoegirlPedia/MassEditWithWarning.min.js");
if (mw.config.get("wgNamespaceNumber") === -1) { // 此处为MediaWiki名字空间编号,可参见[[Help:名字空间]]
    switch (mw.config.get("wgTitle")) {
        case "MassEdit":
            mw.loader.load("/index.php?title=User:BearBin/js/MassEdit.js&action=raw&ctype=text/javascript"); // 仅在访问Special:MassEdit时加载批量编辑工具
            break;
        case "TextDiff":
            mw.loader.load("//testingcf.jsdelivr.net/gh/BearBin1215/MoegirlPedia@master/dist/gadgets/TextDiff.min.js");
    }
} else if (mw.config.get("wgNamespaceNumber") === 2) {
	mw.loader.load("/index.php?title=User:SaoMikoto/js/DraftToMain.js&action=raw&ctype=text/javascript"); // 仅在用户名字空间下加载本快速移动工具
} else {
    switch (mw.config.get("wgAction")) {
        case "edit":
        case "submit":
            mw.loader.load("//fastly.jsdelivr.net/gh/BearBin1215/MoegirlPedia@master/dist/gadgets/CtrlS.min.js"); // 仅在动作为“edit”或“submit”时启用Ctrl+S快速保存工具
            break;
        case "view":
            mw.loader.load("//testingcf.jsdelivr.net/gh/BearBin1215/MoegirlPedia@master/dist/gadgets/ShowContributors.min.js"); // 仅在动作为“view”时启用页面贡献者统计工具
            break;
      }
}
// 由于Special页面的工具并非全局启用,需额外添加侧边栏快速入口
[
    ["MassEdit", "批量编辑"],
    ["TextDiff","文本差异比较"], // 可自行添加
  ].forEach(function (gadget) {
    if (mw.config.get("wgTitle") !== gadget[0]) {
      mw.loader.using("mediawiki.util").then(function () {
        mw.util.addPortletLink("p-tb", "/Special:" + gadget[0], gadget[1], "t-" + gadget[0].toLowerCase());
      });
    }
  });
/** InPageEdit Preferences */
(window.InPageEdit = window.InPageEdit || {}).myPreference = {
  "doNotCollectMyInfo": false,
  "editMinor": false,
  "editSummary": "$section//[[U:机智的小鱼君/InPageEdit|InPageEdit]] $oldid",
  "lockToolBox": false,
  "redLinkQuickEdit": false,
  "outSideClose": false,
  "watchList": "preferences",
  "noConfirmEdit": false,
  "plugins": [
    "toolbox.js",
    "edit-any-page.js",
    "quick-thank.js",
    "code-mirror/cm6.js",
    "color-preview.js"
  ]
}
if (mw.config.get("wgCanonicalSpecialPageName") === "Movepage") {
  var reasons = [
    ["编写完成"],
    ["编写基本完成"],
    ["名从主人(官方名称优先)"],
    ["应当消歧义"],
    ["命名错误"],
    ["常用名称"],
    ["不留特殊符号"],
    ["无需消歧义"]
  ];
$("#wpReason").after($('<div id="move-reason" style="margin-top: .3em"></div>')
.append(reasons.map(function (reason) {
return $('<a title="' + (reason[1] || reason[0]) + '">' + reason[0] + '</a>').on("click", function () {
$("#wpReason input").val(reason[1] || reason[0]);
});
}).reduce(function (acc, cur, index) {
if (index !== 0) {
acc.push("丨");
}
return acc.concat(cur);
}, [])));
}
mw.loader.load("//testingcf.jsdelivr.net/gh/BearBin1215/MoegirlPedia@master/dist/gadgets/ListEnhancer.min.js");
mw.loader.load('//testingcf.jsdelivr.net/gh/BearBin1215/MoegirlPedia@master/dist/gadgets/TableExporter.min.js');
mw.loader.load('/index.php?title=User:AnnAngela/js/userStatus.js&action=raw&ctype=text/javascript');
mw.loader.load('/index.php?title=User:AnnAngela/js/Music163Lrc.js&action=raw&ctype=text/javascript');
  // Wikiplus
  mw.loader.load("//testingcf.jsdelivr.net/gh/BearBin1215/wikiTools@master/Wikiplus/Wikiplus-replace.min.js");
  window.WPSummary = [
    "修正笔误",
    "修正事实错误",
    "内部链接",
    "内容扩充",
    "去除表达歧义",
    "消歧义",
    "排版",
    {
      name:"noinclude前后多余换行",
      detail:"noinclude前后多余换行会嵌入,导致排版混乱",
    },
    {
      name:"MoeSkin下显示异常",
      detail:"[[MGP:MoeSkin|MoeSkin]]下显示异常",
    },
    {
      name: "页顶模板顺序",
      detail: "[[MGP:模板规范#顶部模板排序|顶部模板排序]]",
    },
    {
      name:"应使用播放器或外部链接",
      detail:"[[MGP:音乐与视听作品使用指引|存在可替代合法外部播放源时,应使用播放器或外部链接]]",
    }
  ];
mw.loader.load("//testingcf.jsdelivr.net/gh/BearBin1215/MoegirlPedia@master/dist/gadgets/WikiplusSummary.min.js");
window.popupStructure='menus';
window.popupFixDabs=true;
window.popupRedlinkRemoval=true;
window.popupShortcutKeys=true;
window.popupTocLinks=true;
window.popupFixRedirs=true;
window.popupRedirAutoClick='wpSave';
window.popupDabsAutoClick='wpSave';
window.popupDabRegexp='(\\{\\{\\s*disambig(?!uation needed)|disambig|消歧[义義]页|Dablink|Hatnote\\s*\\}\\}|disamb\\s*\\}\\}|dab\\s*\\}\\})|\\{\\{\\s*(((geo|hn|road?|school|number)dis)|[234][lc][acw]|(road|ship)index)(\\s*[|][^}]*)?\\s*[}][}]|is a .*disambiguation.*page';
mw.loader.load("//testingcf.jsdelivr.net/gh/BearBin1215/MoegirlPedia@master/dist/gadgets/Excel2Wiki.min.js");
mw.loader.load('/index.php?title=User:bhsd/js/SettingsDialog.js&action=raw&ctype=text/javascript');
mw.loader.load("//testingcf.jsdelivr.net/gh/BearBin1215/MoegirlPedia@master/dist/gadgets/AdvancedSearch.min.js");
mw.loader.load("//fastly.jsdelivr.net/gh/GuoPCinGitHub/MGP@master/js/TSIndicator.min.js");
mw.loader.load('//testingcf.jsdelivr.net/gh/Mustafabot/js-MoegirlPedia/QuickUndo.min.js');
mw.loader.load("//testingcf.jsdelivr.net/gh/BearBin1215/MoegirlPedia@master/dist/gadgets/HistoryViewer.min.js");
mw.loader.load("//testingcf.jsdelivr.net/gh/BearBin1215/MoegirlPedia@master/dist/gadgets/BulkMove.min.js");
mw.loader.load('//testingcf.jsdelivr.net/gh/Mustafabot/js-MoegirlPedia/MassDelete.min.js');
window.MassDelete = true;
/*UserMessages*/
window.AxUserMsgCustomTemplate = [
    ['User:BearBin/UserMessages/WelcomeToMGPVNG', "WelcomeToMGPVNG", "萌娘百科视觉小说研究会邀请函", 16, "邀请加入[[Template:萌娘百科视觉小说研究会|萌娘百科视觉小说研究会]]"],
    ['User:穆斯塔法凯末尔/UserMessages/VUP', "WelcomeToVUP", "萌娘百科虚拟UP主编辑组邀请函", 128, "邀请加入[[Template:萌娘百科虚拟UP主编辑组|萌娘百科虚拟UP主编辑组]]"],
];
mw.loader.load("/index.php?title=User:穆斯塔法凯末尔/rollback.js&action=raw&ctype=text/javascript");
mw.loader.load("//fastly.jsdelivr.net/gh/GuoPCinGitHub/MGP@master/js/ModIcon.min.js");
mw.loader.load("//fastly.jsdelivr.net/gh/GuoPCinGitHub/MGP@master/js/ModIconPrep.min.js");
window.TextDiff = true;
// 标记有权编辑/移动的保护页面的保护等级
if (![-1].includes(namespace)) {
    if (mw.config.get('wgRestrictionEdit').includes('patrolleredit')) {
        $('#ca-edit span a').css({'cursor':'not-allowed', 'color':'darkred', 'font-variant':'small-caps'}).html('<b>[Patroller Edit]</b>');
    }
    else if (mw.config.get('wgRestrictionEdit').includes('extendedconfirmed')){
        $('#ca-edit span a').css({'cursor':'not-allowed', 'color':'darkred', 'font-variant':'small-caps'}).html('<b>[EC-Protected Edit]</b>');
    }
    else if (mw.config.get('wgRestrictionEdit').includes('autoconfirmed')){
        $('#ca-edit span a').css({'cursor':'not-allowed', 'color':'darkred', 'font-variant':'small-caps'}).html('<b>[Semi-Protected Edit]</b>');
    }
    if (mw.config.get('wgRestrictionMove').includes('patrolleredit')) {
        $('#ca-move a').css({'cursor':'not-allowed', 'color':'darkred', 'font-variant':'small-caps'}).html('<b>[Patroller Move]</b>');
    }
    else if (mw.config.get('wgRestrictionMove').includes('extendedconfirmed')){
        $('#ca-move a').css({'cursor':'not-allowed', 'color':'darkred', 'font-variant':'small-caps'}).html('<b>[EC-Protected Edit]</b>');
    }
    else if (mw.config.get('wgRestrictionMove').includes('autoconfirmed')){
        $('#ca-move a').css({'cursor':'not-allowed', 'color':'darkred', 'font-variant':'small-caps'}).html('<b>[Semi-Protected Move]</b>');
    }
    mw.loader.addStyleTag("#ca-quick-edit{display:none;}");
}
/** DynamicRecentChanges 增强 **/
window.realtimeRecentChangeCallback = function() {
	/* 联动 IPE */
	window.InPageEdit&&window.InPageEdit.__loaded&&window.InPageEdit.loadQuickDiff&&window.InPageEdit.loadQuickDiff();
	/* 恢复部分监视条目加粗 */
	Array.from(document.body.querySelectorAll(".mw-changeslist-line-watched .mw-changeslist-line-inner>.mw-title>.mw-changeslist-title")).forEach(function(e){document.querySelectorAll(".mw-changeslist-title[title='"+e.title+"']").forEach(function(e){var t=e.closest("table");t&&(t.classList.remove("mw-changeslist-notwatched"),t.classList.add("mw-changeslist-line-watched"))})})
};