CS-TableLayouter

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

  1. // ==UserScript==
  2. // @name CS-TableLayouter
  3. // @namespace jp.gr.java_conf.kyu49.cstl
  4. // @version 1.0.3
  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. // @license MIT
  9. // ==/UserScript==
  10. (function(){
  11. let tables = document.getElementsByClassName("gamelist")[0];
  12. const pokemonNum = tables.tBodies[0].getElementsByClassName("chart").length;
  13.  
  14. let table = document.createElement("table");
  15. table.classList.add("gamelist");
  16. let tbody = document.createElement("tbody");
  17. table.appendChild(tbody);
  18. for(let i = 0; i < pokemonNum; i++){
  19. let row = document.createElement("tr");
  20. row.classList.add("chart");
  21. tbody.appendChild(row);
  22. }
  23.  
  24. for(let i = 0; i < 4; i++){
  25. let charts = tables.tBodies[i].getElementsByClassName("chart");
  26. for(let j = 0; j < charts.length; j++){
  27. let chart = charts[j];
  28. let rank = chart.children[0];
  29. let link = chart.children[1];
  30. let score = chart.children[2];
  31.  
  32. if(i == 0){
  33. let pokemonName = document.createElement("td");
  34. pokemonName.appendChild(document.createTextNode(link.innerText.replaceAll(/\s/g,"")));
  35. tbody.children[j].appendChild(pokemonName);
  36. }
  37.  
  38. let td = document.createElement("td");
  39. let small = document.createElement("small");
  40. td.appendChild(small);
  41. for(let k = 0; k < rank.children.length; k++){
  42. small.appendChild(rank.children[k].cloneNode(true));
  43. }
  44. let newLink = link.getElementsByTagName("a")[0].cloneNode(true);
  45. newLink.innerText = score.innerText.replace(/\n/g, "");
  46. td.appendChild(newLink);
  47. tbody.children[j].appendChild(td);
  48. }
  49. }
  50.  
  51. let row = document.createElement("tr");
  52. row.classList.add("group");
  53. row.classList.add("standard");
  54. row.appendChild(document.createElement("td"));
  55. for(let i = 0; i < 4; i++){
  56. let td = document.createElement("td");
  57. td.appendChild(document.createTextNode((i+1)+"★"));
  58. row.appendChild(td);
  59. }
  60. tbody.insertBefore(row, tbody.firstChild);
  61.  
  62. let pageleft = document.getElementById("pageleft");
  63. pageleft.insertBefore(table, pageleft.children[4]);
  64. })();