您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
想看到编号下的真实姓名?这个将会满足你!
// ==UserScript== // @name FLOJ UserName Mapper // @namespace http://tampermonkey.net/ // @version 0.1.4 // @description 想看到编号下的真实姓名?这个将会满足你! // @author iotang // @match https://floj.tech/* // @grant GM_setValue // @grant GM_getValue // ==/UserScript== (function () { "use strict"; let gmMapperName = "mapper-sdlfjqwoihfin9q248fbh93v"; let defaultMapper = { "2020cj_101": "star_magic_young", "2020cj_102": "shuixirui", "2020cj_103": "czf", "2020cj_104": "iotang", "2020cj_105": "Shiina Mashiro", "2020cj_106": "<a style=\"color: black; text-shadow: 0 0 1em orange, 0 0 0.3em orange; \">I</a><a style=\"color: red; text-shadow: 0 0 1em orange, 0 0 0.3em orange; \">tst</a>", "2020cj_107": "Winlere", "2020cj_108": "a1b3c7d9", "2020cj_109": "test12345", "2020cj_110": "dsl2002", "2020cj_111": "<a style=\"color: black; text-shadow: 0 0 1em orange, 0 0 0.3em orange; \">newbie</a><a style=\"color: red; text-shadow: 0 0 1em orange, 0 0 0.3em orange; \">314159</a>", "2020cj_112": "Geralt Gao", "2020cj_113": "zhoushuyu", "2020cj_120": "newbiechd", "2020cdqz_101": "Owen", "2020hsefz_101": "zjc", "2020hsefz_118": "Dilute", "2020nfls_101": "xy", "2020hzez_104": "supy", "2020hzez_106": "Isonan", "2020hzez_110": "memset0", "2020hzez_117": "Gnar", "2020hzez_120": "LJC00118", }; function resetMapper() { GM_setValue(gmMapperName, defaultMapper); } function getMapper() { let temp = GM_getValue(gmMapperName); if (temp === undefined) { GM_setValue(gmMapperName, defaultMapper); temp = GM_getValue(gmMapperName); } return temp; } function getHashie(who) { let temp = getMapper(); if (temp[who] === undefined) { return "<a style=\"opacity: 0.5; color: inherit;\">" + who + "</a>"; } return temp[who]; } function setHashie(who, val) { let temp = getMapper(); temp[who] = val; GM_setValue(gmMapperName, temp); } function updateMapper(force) { let temp = getMapper(); for (let i in defaultMapper) { if (force || temp[i] === undefined) temp[i] = defaultMapper[i]; } GM_setValue(gmMapperName, temp); } function cleanUp() { let users = document.getElementsByClassName("uoj-username"); let honor = document.getElementsByClassName("uoj-honor"); for (let i of users) { i.innerHTML = getHashie(i.innerHTML); } for (let i of honor) { i.innerHTML = getHashie(i.innerHTML); } } function getInput(coef) { while (true) { let val = prompt("输入" + coef + "(留空表示跳过)"); if (val === null) return null; if (val.length <= 0) return ""; let hint = coef + " " + val + ": "; let col = prompt("输入" + coef + "的颜色\n" + hint); if (col === null) return null; if (col.length <= 0) col = "inherit"; else hint = hint + " 颜色 " + col + "; "; let shadowcol = prompt("输入" + coef + "的阴影颜色\n" + hint); if (shadowcol === null) return null; if (shadowcol.length <= 0) shadowcol = undefined; else hint = hint + " 阴影 " + shadowcol + "; "; let fontsize = prompt("输入" + coef + "的字号(以 em(推荐), px, pt 结尾)\n" + hint); if (fontsize === null) return null; if (fontsize.length <= 0) fontsize = undefined; else hint = hint + " 字号 " + fontsize + "; "; let fonts = prompt("输入" + coef + "的字体(serif,sans-serif,cursive,fantasy,monospace 等)\n" + hint); if (fonts === null) return null; if (fonts.length <= 0) fonts = undefined; else hint = hint + " 字体 " + fonts + "; "; if (confirm(hint + "\n这样好吗?")) { let bas = "<a style=\""; if (col !== undefined) bas = bas + "color: " + col + "; "; if (shadowcol !== undefined) bas = bas + "text-shadow: 0 0 2em " + shadowcol + ", 0 0 1em " + shadowcol + ", 0 0 0.7em " + shadowcol + ", 0 0 0.3em " + shadowcol + "; "; if (fontsize !== undefined) bas = bas + "font-size: " + fontsize + "; "; if (fonts !== undefined) bas = bas + "font-family: " + fonts + "; "; bas = bas + "\">" + val + "</a>"; return bas; } } } function comfirmHashie() { let who = prompt("输入源 ID"); if (who === null || who.length <= 0) return; let pref = getInput("前缀"); if (pref === null) return; let basm = getInput("主名"); if (basm === null) return; let suff = getInput("后缀"); if (suff === null) return; let bas = pref + basm + suff; setHashie(who, bas); alert("这将在下次刷新后起效。"); } function confirmUpdateMapper() { let types = confirm("从数据库中更新还没有的配置。如果点击“是”,已有的设置也会被默认设置替代。"); if (confirm("真的要这样吗?这不能被撤销!")) updateMapper(types); } let uojContent = document.getElementsByClassName("uoj-content")[0]; let buttonHashie = document.createElement("button"); buttonHashie.style = "background: rgb(212,255,212); border: none;"; buttonHashie.name = "hashieUser"; buttonHashie.id = "hashieUser"; buttonHashie.innerHTML = "添加规则"; buttonHashie.onclick = function () { comfirmHashie(); }; let buttonUpdate = document.createElement("button"); buttonUpdate.style = "background: rgb(255,212,212); border: none;"; buttonUpdate.name = "mapperUpdate"; buttonUpdate.id = "mapperUpdate"; buttonUpdate.innerHTML = "重置"; buttonUpdate.onclick = function () { confirmUpdateMapper(); }; uojContent.appendChild(buttonHashie); uojContent.appendChild(buttonUpdate); cleanUp(); })();