Gadget:ReplaceUsername.js:修订间差异

(里面用到了ES6的功能,MediaWiki不支持ES6的代码压缩,所以另找一个页面写)
 
 
(未显示3个用户的9个中间版本)
第1行: 第1行:
"use strict";
(function () {
(function () {
    console.log(`MediaWiki用户名替换脚本运行中
  var map = [["Beanflame", "beanflame"], ["Salt_lovely", "盐酱"], ["Bleake", "bleake"]];
///////////////////////////////////////////////////////
  // 执行一次
// 许可证 License                                    //
  replaceUsername();
// 协议:CC BY-NC-SA 4.0                              //
  // 窗口加载完毕后再运行一次,以防漏网之鱼
// 作者:Salt_lovely                                  //
  window.addEventListener("load", replaceUsername);
// 出处:MCBBS Wiki - https://mcbbs-wiki.cn          //
  /**修改用户名显示功能 */
// 必须保留此许可证,并以相同的许可证分发              //
  function replaceUsername() {
// 不接受任何形式的“别名”“昵称”或其他方式尝试绕过许可证 //
    var _iteratorNormalCompletion = true;
// 若协议冲突或不接受以上额外条款,你可以选择不搬运    //
    var _didIteratorError = false;
///////////////////////////////////////////////////////
    var _iteratorError = undefined;
    `)
 
    /**改名表 */
    try {
    let map = [
      for (var _iterator = getUname()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
        ['Beanflame', 'beanflame'],
        var el = _step.value;
        ['Salt_lovely', '盐酱'],
        var _iteratorNormalCompletion2 = true;
    ]
        var _didIteratorError2 = false;
    // 执行一次
        var _iteratorError2 = undefined;
    replaceUsername()
 
    // 窗口加载完毕后再运行一次,以防漏网之鱼
        try {
    window.addEventListener('load', replaceUsername)
          for (var _iterator2 = map[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
    /**修改用户名显示功能 */
            var m = _step2.value;
    function replaceUsername() {
 
        for (let el of getUname()) {
            if (el.textContent == m[0] || el.textContent == mwUsernameTurn(m[0])) {
            for (let m of map) {
              el.textContent = m[1];
                if (el.textContent == m[0] || el.textContent == mwUsernameTurn(m[0])) {
              if (el.hasAttribute("title")) {
                    el.textContent = m[1]
                el.setAttribute("title", el.getAttribute("title") + " | 原名: " + m[0]);
                    if (el.hasAttribute('title')) {
              } else {
                        el.setAttribute('title', el.getAttribute('title') + ' | 原名: ' + m[0])
                el.setAttribute("title", "原名: " + m[0]);
                    } else {
              }
                        el.setAttribute('title', '原名: ' + m[0])
              break;
                    }
                    break
                }
             }
             }
             el.setAttribute('renamed', '')
          }
        } catch (err) {
          _didIteratorError2 = true;
          _iteratorError2 = err;
        } finally {
          try {
             if (!_iteratorNormalCompletion2 && _iterator2.return) {
              _iterator2.return();
            }
          } finally {
            if (_didIteratorError2) {
              throw _iteratorError2;
            }
          }
         }
         }
         /**获取可能出现用户名的元素 */
 
        function getUname() {
         el.setAttribute("renamed", "");
            // 所有常见的用户名链接
      }
            let a = Array.from(document.querySelectorAll('a.mw-userlink bdi:not([renamed])'))
      /**获取可能出现用户名的元素 */
            // 顶栏的用户名
    } catch (err) {
            let topyn = document.querySelector('#pt-userpage a:not([renamed])')
      _didIteratorError = true;
            if (topyn)
      _iteratorError = err;
                a.push(topyn)
    } finally {
            return a
      try {
        if (!_iteratorNormalCompletion && _iterator.return) {
          _iterator.return();
         }
         }
        /**MediaWiki会在一些地方用空格代替下划线 */
      } finally {
         function mwUsernameTurn(unRaw) {
         if (_didIteratorError) {
            while (unRaw.indexOf('_') != -1)
          throw _iteratorError;
                unRaw = unRaw.replace('_', ' ')
            return unRaw
         }
         }
      }
    }
    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;
    }
  }
})();