|
|
(未显示同一用户的3个中间版本) |
第1行: |
第1行: |
| | /* From my common.js on MCBBS Wiki: https://mcbbs.wiki/wiki/%E7%94%A8%E6%88%B7:QWERTY770/common.js */ |
| | |
| var thisHref = window.location.href | | var thisHref = window.location.href |
| /* Wikiplus */ | | try { |
| mw.loader.load('https://wikiplus-app.com/Main.js') | | mw.loader.load('https://cdn.jsdelivr.net/npm/mediawiki-inpageedit') |
| | } catch (error) { |
| | mw.loader.load('https://unpkg.com/mediawiki-inpageedit') |
| | } |
|
| |
|
| /* 部分链接新窗口打开 */ | | /* 部分链接新窗口打开 */ |
第18行: |
第23行: |
| } | | } |
|
| |
|
| | /* 右上角添加 */ |
| $('#p-personal ul').append('<li><a href="?action=purge">强制刷新</a><li>') | | $('#p-personal ul').append('<li><a href="?action=purge">强制刷新</a><li>') |
| | $('#p-personal ul').append('<li><a href="?action=info">info</a></li>'); |
| $('#p-personal ul').append('<li><a href="https://wiki.xdi8.top/wiki/User:QWERTY_52_38/common.js">js</a></li>') | | $('#p-personal ul').append('<li><a href="https://wiki.xdi8.top/wiki/User:QWERTY_52_38/common.js">js</a></li>') |
| $('#p-personal ul').append('<li><a href="https://wiki.xdi8.top/wiki/User:QWERTY_52_38/common.css">css</a></li>') | | $('#p-personal ul').append('<li><a href="https://wiki.xdi8.top/wiki/User:QWERTY_52_38/common.css">css</a></li>') |
第35行: |
第42行: |
| }); | | }); |
| }); | | }); |
|
| |
| /* Wikiplus */
| |
| mw.loader.load('https://wikiplus-app.com/Main.js')
| |
| /* lib
| |
| ----------------------------------------------------------------------
| |
| */
| |
| function getTitle() {
| |
| return mw.config.get("wgPageName");
| |
| }
| |
|
| |
|
| |
| function getPatrolToken(func) {
| |
| $.ajax({url: "/api.php?action=query&meta=tokens&format=json&type=patrol", type: "GET", success: function(data){func(data.query.tokens.patroltoken);}})
| |
| }
| |
|
| |
| function getCsrfToken(func) {
| |
| $.ajax({url: "/api.php?action=query&meta=tokens&format=json&type=csrf", type: "GET", success: function(data){func(data.query.tokens.csrftoken);}})
| |
| }
| |
|
| |
| function getRollbackToken(func) {
| |
| $.ajax({url: "/api.php?action=query&meta=tokens&format=json&type=rollback", type: "GET", success: function(data){func(data.query.tokens.rollbacktoken);}})
| |
| }
| |
|
| |
| function getWikiText(title, func) {
| |
| $.ajax({url: "/api.php?action=query&prop=revisions&titles=" + title + "&rvprop=content&indexpageids=true&format=json", type: "GET", success: function(data){func(data.query.pages[data.query.pageids[0]].revisions[0]["*"]);}})
| |
| }
| |
|
| |
| function getRevIds(func) {
| |
| $.ajax(
| |
| {url: "/api.php?action=query&prop=revisions&titles="+ title + "&rvlimit=20&rvprop=ids&format=json", type: "GET", success: function(data){
| |
| var revisionslist = data.query.pages[pageid.toString()].revisions;
| |
| var revli = [];
| |
| for(i = 0; revisionslist[i]; i +=1)
| |
| {revli[i] = revisionslist[i].revid;}
| |
| func(revli);}
| |
| }
| |
| )
| |
| }
| |
| function searchWiki(text, func){
| |
| $.ajax({url: "/api.php?action=query&format=json&list=search&srsearch=" + text + "&srlimit=max&srwhat=text&srprop=", type: "GET", success:
| |
| function(data){
| |
| var res = data.query.search, res2 = [];
| |
| for(i = 0; res[i]; i += 1)
| |
| {res2[i]=res[i].title;}
| |
| func(res2);}
| |
| });
| |
| }
| |
|
| |
| function patrolRevision (patroltoken, revid){
| |
| $.ajax({url: "/api.php?action=patrol&format=json", type: "POST", data: {"token" : patroltoken, "revid" : revid}});
| |
| }
| |
|
| |
| function editPage(title, summary, minor, text, csrftoken){
| |
| $.ajax({url:"/api.php?action=edit&format=json", type:"POST", data: {title: title, summary: summary, minor: minor, basetimestamp: "now", text: text, token: csrftoken}});
| |
| }
| |
|
| |
| function movePage (from, to, reason, csrftoken, func) {
| |
| $.ajax({url:"/api.php?action=move", data: {from:from, to: to, reason: reason, token:csrftoken}, type: "POST", success: function(data){func(data);}});
| |
| }
| |
|
| |
| function getLinksHere(title, func) {
| |
| $.ajax({url: "/api.php?action=query&prop=linkshere&lhnamespace=*&lhlimit=max&lhprop=title&indexpageids=true&format=json&titles=" + title, type: "GET", success: function(data)
| |
| {var res = data.query.pages[data.query.pageids[0]].linkshere, res2 = [];
| |
| for (i = 0; res[i]; i += 1){
| |
| res2[i] = res[i].title;
| |
| }
| |
| func(res2);
| |
| }
| |
| });
| |
| }
| |
|
| |
| /* ------ action functions------*/
| |
|
| |
| function patrolAll() {
| |
| getRevIds(function (revli) {
| |
| getPatrolToken(function (patroltoken) {
| |
| for(i = 0; revli[i]; i += 1){
| |
| patrolRevision(patroltoken, revli[i]);
| |
| }
| |
| });
| |
| });
| |
| }
| |
|
| |
| function inPageAPITest(){
| |
| var option = prompt("请输入测试项目", "wgPageName");
| |
| if (option != null) {
| |
| var result = mw.config.get(option);
| |
| prompt("结果:", result);
| |
| }
| |
| }
| |
|
| |
| function replaceText(title, org, subst, summary) {
| |
| if (summary == undefined){summary = "";}
| |
| getCsrfToken(function (csrftoken) {
| |
| getWikiText(title, function (wikiText) {
| |
| var changedText = wikiText.split(org).join(subst);
| |
| editPage(title, summary, "true", changedText, csrftoken);
| |
| });
| |
| });
| |
| }
| |
|
| |
|
| |
| function massSearchReplace (org, subst) {
| |
| searchWiki(org, function (pageTitleList) {
| |
| for (i = 0; pageTitleList[i]; i += 1)
| |
| {replaceText(pageTitleList[i], org, subst, "批量搜索替换“" + org + "”为“" + subst + "”,第" + i + "个");}
| |
| });
| |
| }
| |
|
| |
| function massSearchReplacePrompt (){
| |
| var org = prompt("org");
| |
| var subst = prompt("subst");
| |
| if (prompt("Continue?") != null)
| |
| {massSearchReplace(org, subst);}
| |
| }
| |
|
| |
| function deepMove (from, to, reason) {
| |
| getCsrfToken(function (csrftoken) {
| |
| movePage(from, to, reason, csrftoken, function(data){
| |
| getLinksHere(from, function (pageList) {
| |
| for (i = 0; pagelist[i]; i += 1){
| |
| replaceText(pageList[i], "[[" + from + "]]", "[[" + to + "]]", "// DeepMove by MBWH");
| |
| }
| |
| });
| |
| });
| |
| });
| |
| }
| |
|
| |
| function deepMovePrompt(){
| |
| var from = prompt("From:", title);
| |
| var to = prompt("To:");
| |
| var reason = prompt("Reason:");
| |
| if (prompt("Continue?") != null)
| |
| {deepMove(from, to, reason);}
| |
| }
| |
| /* 一些变量
| |
| ----------------------------------------------------------------------
| |
| */
| |
| var title, res1, pageid;
| |
| title = getTitle();
| |
| res1 = "/wiki/Special:WhatLinksHere/" + title;
| |
| pageid = mw.config.get("wgArticleId");
| |
| /* 电脑版
| |
| ----------------------------------------------------------------------
| |
| */
| |
| /* 右上角添加 */
| |
| $('#p-personal ul').append('<li><a href="?action=info">info</a></li>');
| |
/* From my common.js on MCBBS Wiki: https://mcbbs.wiki/wiki/%E7%94%A8%E6%88%B7:QWERTY770/common.js */
var thisHref = window.location.href
try {
mw.loader.load('https://cdn.jsdelivr.net/npm/mediawiki-inpageedit')
} catch (error) {
mw.loader.load('https://unpkg.com/mediawiki-inpageedit')
}
/* 部分链接新窗口打开 */
addTarget("mw-changeslist-title")
addTarget("mw-changeslist-diff")
addTarget("mw-changeslist-diff-cur")
addTarget("mw-changeslist-groupdiff")
addTarget("mw-changeslist-history")
addTarget("mw-userlink")
function addTarget (obj) {
var a_mct = document.getElementsByClassName(obj);
for (var i = a_mct.length - 1; i >= 0; i--) {
a_mct[i].setAttribute("target","_blank")
};
}
/* 右上角添加 */
$('#p-personal ul').append('<li><a href="?action=purge">强制刷新</a><li>')
$('#p-personal ul').append('<li><a href="?action=info">info</a></li>');
$('#p-personal ul').append('<li><a href="https://wiki.xdi8.top/wiki/User:QWERTY_52_38/common.js">js</a></li>')
$('#p-personal ul').append('<li><a href="https://wiki.xdi8.top/wiki/User:QWERTY_52_38/common.css">css</a></li>')
// 取自 https://minecraft-zh.gamepedia.com/User:Ff98sha/common.js,仅供学习研究用
mw.loader.using(['oojs-ui-windows', 'oojs-ui-core'],
function() {
$('.mw-rollback-link a').each(function() {
var href = $(this).attr('href');
$(this).click(function(e) {
e.preventDefault();
OO.ui.confirm('你确定要回退此页面吗?').done(function(confirmed) {
if (confirmed) { location.href = href; }
});
});
});
});