Gadget:ReplaceUsername.js:修订间差异
Salt lovely(留言 | 贡献) (里面用到了ES6的功能,MediaWiki不支持ES6的代码压缩,所以另找一个页面写) |
小 (Litwak913移动页面MediaWiki:Gadget-ReplaceUsername.js至Gadget:ReplaceUsername.js) |
||
| (未显示3个用户的9个中间版本) | |||
| 第1行: | 第1行: | ||
"use strict"; | |||
(function () { | (function () { | ||
var map = [["Beanflame", "beanflame"], ["Salt_lovely", "盐酱"], ["Bleake", "bleake"]]; | |||
// 执行一次 | |||
replaceUsername(); | |||
// 窗口加载完毕后再运行一次,以防漏网之鱼 | |||
window.addEventListener("load", replaceUsername); | |||
/**修改用户名显示功能 */ | |||
function replaceUsername() { | |||
var _iteratorNormalCompletion = true; | |||
var _didIteratorError = false; | |||
var _iteratorError = undefined; | |||
try { | |||
for (var _iterator = getUname()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { | |||
var el = _step.value; | |||
var _iteratorNormalCompletion2 = true; | |||
var _didIteratorError2 = false; | |||
var _iteratorError2 = undefined; | |||
try { | |||
for (var _iterator2 = map[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { | |||
var m = _step2.value; | |||
if (el.textContent == m[0] || el.textContent == mwUsernameTurn(m[0])) { | |||
el.textContent = m[1]; | |||
if (el.hasAttribute("title")) { | |||
el.setAttribute("title", el.getAttribute("title") + " | 原名: " + m[0]); | |||
} else { | |||
el.setAttribute("title", "原名: " + m[0]); | |||
} | |||
break; | |||
} | } | ||
} | |||
} catch (err) { | |||
_didIteratorError2 = true; | |||
_iteratorError2 = err; | |||
} finally { | |||
try { | |||
if (!_iteratorNormalCompletion2 && _iterator2.return) { | |||
_iterator2.return(); | |||
} | |||
} finally { | |||
if (_didIteratorError2) { | |||
throw _iteratorError2; | |||
} | |||
} | |||
} | } | ||
/**获取可能出现用户名的元素 */ | |||
el.setAttribute("renamed", ""); | |||
} | |||
/**获取可能出现用户名的元素 */ | |||
} catch (err) { | |||
_didIteratorError = true; | |||
_iteratorError = err; | |||
} finally { | |||
try { | |||
if (!_iteratorNormalCompletion && _iterator.return) { | |||
_iterator.return(); | |||
} | } | ||
} finally { | |||
if (_didIteratorError) { | |||
throw _iteratorError; | |||
} | } | ||
} | |||
} | |||
function getUname() { | |||
// 所有常见的用户名链接 | |||
var a = Array.from(document.querySelectorAll("a.mw-userlink bdi:not([renamed])")); | |||
// 顶栏的用户名 | |||
var topyn = document.querySelector("#pt-userpage a:not([renamed])"); | |||
if (topyn) a.push(topyn); | |||
return a; | |||
} | |||
/**MediaWiki会在一些地方用空格代替下划线 */ | |||
function mwUsernameTurn(unRaw) { | |||
while (unRaw.indexOf("_") != -1) { | |||
unRaw = unRaw.replace("_", " "); | |||
}return unRaw; | |||
} | } | ||
})() | } | ||
})(); | |||
2023年2月8日 (三) 21:29的最新版本
"use strict";
(function () {
var map = [["Beanflame", "beanflame"], ["Salt_lovely", "盐酱"], ["Bleake", "bleake"]];
// 执行一次
replaceUsername();
// 窗口加载完毕后再运行一次,以防漏网之鱼
window.addEventListener("load", replaceUsername);
/**修改用户名显示功能 */
function replaceUsername() {
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = getUname()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var el = _step.value;
var _iteratorNormalCompletion2 = true;
var _didIteratorError2 = false;
var _iteratorError2 = undefined;
try {
for (var _iterator2 = map[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var m = _step2.value;
if (el.textContent == m[0] || el.textContent == mwUsernameTurn(m[0])) {
el.textContent = m[1];
if (el.hasAttribute("title")) {
el.setAttribute("title", el.getAttribute("title") + " | 原名: " + m[0]);
} else {
el.setAttribute("title", "原名: " + m[0]);
}
break;
}
}
} catch (err) {
_didIteratorError2 = true;
_iteratorError2 = err;
} finally {
try {
if (!_iteratorNormalCompletion2 && _iterator2.return) {
_iterator2.return();
}
} finally {
if (_didIteratorError2) {
throw _iteratorError2;
}
}
}
el.setAttribute("renamed", "");
}
/**获取可能出现用户名的元素 */
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
function getUname() {
// 所有常见的用户名链接
var a = Array.from(document.querySelectorAll("a.mw-userlink bdi:not([renamed])"));
// 顶栏的用户名
var topyn = document.querySelector("#pt-userpage a:not([renamed])");
if (topyn) a.push(topyn);
return a;
}
/**MediaWiki会在一些地方用空格代替下划线 */
function mwUsernameTurn(unRaw) {
while (unRaw.indexOf("_") != -1) {
unRaw = unRaw.replace("_", " ");
}return unRaw;
}
}
})();