CS-TableLayouter

Reshape the score table of New Pokemon Snap page in Cyberscore.

目前为 2021-06-06 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name CS-TableLayouter
  3. // @namespace jp.gr.java_conf.kyu49.cstl
  4. // @version 1.0.2
  5. // @description Reshape the score table of New Pokemon Snap page in Cyberscore.
  6. // @author KYU
  7. // @include https://cyberscore.me.uk/game/2785*
  8. // ==/UserScript==
  9. (function(){
  10. let tables = document.getElementsByClassName("ranked all");
  11. const pokemonNum = tables[0].getElementsByClassName("chart").length;
  12.  
  13. let table = document.createElement("table");
  14. table.classList.add("gamelist");
  15. let tbody = document.createElement("tbody");
  16. table.appendChild(tbody);
  17. for(let i = 0; i < pokemonNum; i++){
  18. let row = document.createElement("tr");
  19. row.classList.add("chart");
  20. tbody.appendChild(row);
  21. }
  22.  
  23. for(let i = 0; i < 4; i++){
  24. let charts = tables[i].getElementsByClassName("chart");
  25. for(let j = 0; j < charts.length; j++){
  26. let chart = charts[j];
  27. let rank = chart.children[0];
  28. let link = chart.children[1];
  29. let score = chart.children[2];
  30.  
  31. if(i == 0){
  32. let pokemonName = document.createElement("td");
  33. pokemonName.appendChild(document.createTextNode(link.innerText.replaceAll(/\s/g,"")));
  34. tbody.children[j].appendChild(pokemonName);
  35. }
  36.  
  37. let td = document.createElement("td");
  38. let small = document.createElement("small");
  39. td.appendChild(small);
  40. for(let k = 0; k < rank.children.length; k++){
  41. small.appendChild(rank.children[k].cloneNode(true));
  42. }
  43. let newLink = link.getElementsByTagName("a")[0].cloneNode(true);
  44. newLink.innerText = score.innerText.replace(/\n/g, "");
  45. td.appendChild(newLink);
  46. tbody.children[j].appendChild(td);
  47. }
  48. }
  49.  
  50. let row = document.createElement("tr");
  51. row.classList.add("group");
  52. row.classList.add("ranked");
  53. row.appendChild(document.createElement("td"));
  54. for(let i = 0; i < 4; i++){
  55. let td = document.createElement("td");
  56. td.appendChild(document.createTextNode((i+1)+"★"));
  57. row.appendChild(td);
  58. }
  59. tbody.insertBefore(row, tbody.firstChild);
  60.  
  61. let pageleft = document.getElementById("pageleft");
  62. pageleft.insertBefore(table, pageleft.children[4]);
  63. })();