CS-TableLayouter

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

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

  1. // ==UserScript==
  2. // @name CS-TableLayouter
  3. // @namespace jp.gr.java_conf.kyu49.cstl
  4. // @version 1.0.1
  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));
  34. tbody.children[j].appendChild(pokemonName);
  35. }
  36.  
  37. let td = document.createElement("td");
  38. td.appendChild(rank.firstChild.cloneNode(true));
  39. let newLink = link.getElementsByTagName("a")[0].cloneNode(true);
  40. newLink.innerText = score.innerText.replace(/\n/g, "");
  41. td.appendChild(newLink);
  42. tbody.children[j].appendChild(td);
  43. }
  44. }
  45.  
  46. let row = document.createElement("tr");
  47. row.classList.add("group");
  48. row.classList.add("ranked");
  49. row.appendChild(document.createElement("td"));
  50. for(let i = 0; i < 4; i++){
  51. let td = document.createElement("td");
  52. td.appendChild(document.createTextNode((i+1)+"★"));
  53. row.appendChild(td);
  54. }
  55. tbody.insertBefore(row, tbody.firstChild);
  56.  
  57. let pageleft = document.getElementById("pageleft");
  58. pageleft.insertBefore(table, pageleft.children[4]);
  59. })();