Colorful Course

Try and see

当前为 2024-09-03 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Colorful Course
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.3.2
  5. // @description Try and see
  6. // @author Ajax
  7. // @match https://zhjwxk.cic.tsinghua.edu.cn/xkBks.xkBksZytjb.do*
  8. // @match https://zhjwxkyw.cic.tsinghua.edu.cn/xkBks.xkBksZytjb.do*
  9. // @icon https://www.google.com/s2/favicons?sz=64&domain=tsinghua.edu.cn
  10. // @grant none
  11. // @license MIT
  12. // ==/UserScript==
  13.  
  14. function colorOne(td, sum, available) {
  15. var l = td.text.split(",");
  16.  
  17. if (l[0][0] === '(') {
  18. l = l[0].substr(1, l[0].length - 1).split(")").concat(l.slice(1));
  19. }
  20.  
  21. var html = "";
  22. for (var i=0; i<l.length; ++i) {
  23. l[i] = Number(l[i]);
  24.  
  25. if (sum > available) {
  26. html += `<span style="color:red">${l[i]}</span>,`;
  27. }
  28. else if ((sum += l[i]) > available) {
  29. html += `<span style="color:orange">${l[i]}(${l[i] - (sum - available)})</span>,`;
  30. }
  31. else {
  32. html += `<span style="color:green">${l[i]}</span>,`;
  33. }
  34. }
  35.  
  36. td.innerHTML = html.substr(0, html.length - 1);
  37. return sum;
  38. }
  39.  
  40. (function() {
  41. 'use strict';
  42.  
  43. window.onload = function() {
  44. console.log("Colorful script attached.")
  45.  
  46. if (document.body.innerHTML.search("p_lrdwnm") !== -1)
  47. {
  48. console.log("Found undergraduate course list");
  49. document.getElementsByClassName("trr2").forEach((tr) => {
  50. var available = Number(tr.children[4].text);
  51. var total = Number(tr.children[5].text);
  52. var sum = 0;
  53.  
  54. sum = colorOne(tr.children[6], sum, available);
  55. sum = colorOne(tr.children[7], sum, available);
  56. sum = colorOne(tr.children[8], sum, available);
  57. });
  58. console.log("Done");
  59. }
  60.  
  61. else if (document.body.innerHTML.search("tbzySearchTy") !== -1) {
  62. console.log("Found undergraduate PE course list");
  63. document.getElementsByClassName("trr2").forEach((tr) => {
  64. var available = Number(tr.children[3].text);
  65. var total = Number(tr.children[4].text);
  66. var sum = 0;
  67.  
  68. sum = colorOne(tr.children[5], sum, available);
  69. });
  70. console.log("Done");
  71. }
  72. };
  73. })();