Mask on Riverside

Be anonymous on Riverside

// ==UserScript==
// @name         Mask on Riverside
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Be anonymous on Riverside
// @author       MichaelTan
// @match        https://bbs.uestc.edu.cn
// @match        https://bbs.uestc.edu.cn/*
// @icon         data:image/png;base64,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
// @grant        GM_setValue
// @grant        GM_getValue
// @run-at       document-end
// @license      MIT
// ==/UserScript==


(function () {
  "use strict";
  let avatarUrl = (kind, uidPadded) => `https://bbs.uestc.edu.cn/uc_server/data/avatar/000/${uidPadded.substring(0,2)}/${uidPadded.substring(2, 4)}/${uidPadded.substring(4,6)}_avatar_${kind}.jpg`;
  function changeMask(changeMaskDiv) {
    let nickname = changeMaskDiv.parentNode.nextElementSibling.firstElementChild.textContent;
    let uid = changeMaskDiv.previousElementSibling.firstElementChild.href.match(/uid=(\d+)/)[1];
    let uidPadded = uid.toString().padStart(6, "0");
    let avatarSmall = avatarUrl("small", uidPadded);
    let avatarMiddle = avatarUrl("middle", uidPadded);
    showMask(nickname, avatarSmall, avatarMiddle);
    storeMask(nickname, uid);
  }

  function showMask(nickname, avatarSmall, avatarMiddle) {
    document.querySelector("#toptb > div.y > strong > a").textContent = nickname;
    document.querySelector("#toptb > div.y > div.avt.y > a > img").src = avatarSmall;
    document.querySelector("#fastpostform > table > tbody > tr > td.pls > div > img").src = avatarMiddle;
  }

  function storeMask(nickname, uid) {
    GM_setValue("nickname", nickname);
    GM_setValue("uid", uid);
  }

  const changeMaskDiv = document.createElement("div");
  changeMaskDiv.style.cssText = `position: absolute;top: 0;left: 0;font-size: 14px;user-select:none;cursor:pointer;`;
  changeMaskDiv.textContent = "🙌";
  document.querySelectorAll("div.m.z").forEach((div) => {
    let changeMaskDivClone = changeMaskDiv.cloneNode(true);
    changeMaskDivClone.addEventListener("click", (e) => changeMask(e.target));
    div.appendChild(changeMaskDivClone);
  });

  const nickname = GM_getValue("nickname", "成电崽崽");
  const uid = GM_getValue("uid", 0);
  const uidPadded = uid.toString().padStart(6, "0");
  const avatarSmall = avatarUrl("small", uidPadded);
  const avatarMiddle = avatarUrl("middle", uidPadded);
  showMask(nickname, avatarSmall, avatarMiddle);
})();