IOIHW UserName Mapper

想看到编号下的真实姓名?这个将会满足你!

  1. // ==UserScript==
  2. // @name IOIHW UserName Mapper
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1
  5. // @description 想看到编号下的真实姓名?这个将会满足你!
  6. // @author iotang
  7. // @match https://ioihw.duck-ac.cn/*
  8. // @grant GM_setValue
  9. // @grant GM_getValue
  10. // ==/UserScript==
  11.  
  12. "use strict";
  13.  
  14. function getMapper()
  15. {
  16. var temp = GM_getValue("mapper");
  17.  
  18. if(temp === undefined)
  19. {
  20. GM_setValue("mapper", {"ioi2020_01": "周雨扬", "ioi2020_02": "张哲宇", "ioi2020_03": "任清宇", "ioi2020_04": "叶卓睿", "ioi2020_05": "李佳衡", "ioi2020_06": "马耀华", "ioi2020_07": "徐翊轩", "ioi2020_08": "罗煜翔", "ioi2020_09": "周楷文", "ioi2020_10": "周任飞", "ioi2020_11": "蒋明润", "ioi2020_12": "姜迅驰", "ioi2020_13": "袁无为", "ioi2020_14": "林凯风", "ioi2020_15": "虞皓翔", "ioi2020_16": "方汤骐", "ioi2020_17": "高子翼", "ioi2020_18": "张好风", "ioi2020_19": "卞浏予", "ioi2020_20": "李骥", "ioi2020_21": "郑钧天", "ioi2020_22": "陈立言", "ioi2020_23": "屠学畅", "ioi2020_24": "曾致远", "ioi2020_25": "陈枫", "ioi2020_26": "周镇东", "ioi2020_27": "甄子豪", "ioi2020_28": "房励行", "ioi2020_29": "周书予", "ioi2020_30": "林立", "ioi2020_31": "王展鹏", "ioi2020_32": "孙诺舟", "ioi2020_33": "曹天佑", "ioi2020_34": "陈峻宇", "ioi2020_35": "党星宇", "ioi2020_36": "潘骏跃", "ioi2020_37": "陈孙立", "ioi2020_38": "魏精", "ioi2020_39": "吴清月", "ioi2020_40": "蒋凌宇", "ioi2020_41": "何文阳", "ioi2020_42": "王慧", "ioi2020_43": "袁桢淏", "ioi2020_44": "李白天", "ioi2020_45": "李天晓", "ioi2020_46": "左骏驰", "ioi2020_47": "陈宇", "ioi2020_48": "安博施", "ioi2020_49": "刘肖", "ioi2020_50": "时中", "ioi2020_51": "钱易", "ioi2020_52": "张隽恺", "ioi2020_53": " 林昊翰", "ioi2020_54": "戴江齐", "ioi2020_55": "代晨昕", "ioi2020_56": "黄子宽", "ioi2020_57": "周欣", "ioi2020_58": "邱天异", "ioi2020_59": "丁晓漫", "ioi2020_60": "张博为", "ioi2020_61": "徐哲安", "ioi2020_62": "高麟翔", "ioi2020_63": "徐源", "ioi2020_64": "邓晗", "ioi2020_65": "蒋轩林", "ioi2020_66": "钟雨薇", "ioi2020_67": "顾奕成", "ioi2020_68": " 谌星宇", "ioi2020_69": "陆宏", "ioi2020_70": "刘宇豪"});
  21. temp = GM_getValue("mapper");
  22. }
  23.  
  24. return temp;
  25. }
  26.  
  27. function getHashie(who)
  28. {
  29. var temp = getMapper();
  30.  
  31. if(temp[who] == undefined)
  32. {
  33. return who;
  34. }
  35.  
  36. return temp[who];
  37. }
  38.  
  39. function setHashie(who, val)
  40. {
  41. var temp = getMapper();
  42. temp[who] = val;
  43. GM_setValue("mapper", temp);
  44. }
  45.  
  46. function cleanUp()
  47. {
  48. var users = document.getElementsByClassName("uoj-username");
  49. var honor = document.getElementsByClassName("uoj-honor");
  50. var i;
  51.  
  52. for(i = 0; i < users.length; i++)
  53. {
  54. users[i].innerHTML = getHashie(users[i].innerHTML);
  55. }
  56. for(i = 0; i < honor.length; i++)
  57. {
  58. honor[i].innerHTML = getHashie(honor[i].innerHTML);
  59. }
  60. }
  61.  
  62. function comfirmHashie()
  63. {
  64. var who = prompt("输入源 ID");
  65. if(who === null || who === undefined || who.length <= 0)return;
  66.  
  67. var val = prompt("输入对应名字");
  68. if(val === null || val === undefined || val.length <= 0)
  69. {
  70. val = undefined;
  71. }
  72.  
  73. setHashie(who,val);
  74. cleanUp();
  75. }
  76.  
  77.  
  78. var uojContent = document.getElementsByClassName("uoj-content")[0];
  79.  
  80. var buttonHashie = document.createElement("button");
  81. buttonHashie.style = "background: rgb(212,255,212); border: none;";
  82. buttonHashie.name = "hashieUser";
  83. buttonHashie.id = "hashieUser";
  84. buttonHashie.innerHTML = "添加规则";
  85. buttonHashie.onclick = function(){comfirmHashie();};
  86.  
  87. uojContent.appendChild(buttonHashie);
  88.  
  89. cleanUp();