ac-score-table-ja

AtCoder(beta.atcoder.jp)の日本語版で配点表を表示します.

  1. // ==UserScript==
  2. // @name ac-score-table-ja
  3. // @namespace https://github.com/rsk0315/
  4. // @version 0.1.2
  5. // @description AtCoder(beta.atcoder.jp)の日本語版で配点表を表示します.
  6. // @author rsk0315
  7. // @license MIT
  8. // @include /^https?://beta\.atcoder\.jp\/contests\/[^\/]+\/?(?:\?.*)?$/
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. function isJapanesePage() {
  13. // URL を見て判断できる保証が無いので右上の国旗を見て判断します.
  14. // ところで一般に国旗で言語を示す UI はアとされていますが
  15.  
  16. // フラグ,bool 的な意味ではなく国旗です
  17. // この要素が確実に目的のものを指しているかがアレなのですが,まぁ大丈夫でしょう
  18. var flag = $($('.dropdown-toggle')[0]).children()[0].src;
  19. if (flag.match(/ja\.png$/)) return true;
  20. return false;
  21. }
  22.  
  23. function hasScoreTable() {
  24. var haiten = $('h3:contains(配点)')[0]; // ガバガバ判定
  25. if (haiten !== undefined) return true;
  26. return false;
  27. }
  28.  
  29. (function() {
  30. /* 'use strict'; */
  31.  
  32. // My code here...
  33. if (!(isJapanesePage() && !hasScoreTable())) return;
  34.  
  35. // 英語用の配点表が無ければ帰ります.
  36. // ところでなぜ同じページ内にあるのに英語版だけしか見せないんでしょう
  37. var $pv = $('h3:contains(Point Values)');
  38. if ($pv.length == 0) return;
  39.  
  40. // これにマッチする別のテーブルがあるとアなんですが,まぁアレです.
  41. // たぶん $pv の次とかにあるやつを指定するといいんですが,
  42. // 地の文に邪魔されたりしないかがわからないため,問題が起こるまでは
  43. // このままでいってみます.
  44. // テーブルがたくさんあっても配点が出てくればいいでしょ,みたいな気持ちで
  45. var $table = $('.row>.span4>table');
  46. if ($table.length == 0) return;
  47.  
  48. // これは AGC 020 などの公式で出ているやつに合わせています.
  49. // 他のコンテストでは他の位置だったりするかもしれませんので,
  50. // 必要があればそのうち変えるかもしれません.
  51. var $toInsert = $('.lang-ja>h3:contains(過去問&その他コンテスト)');
  52. if ($toInsert.length == 0) {
  53. // もし見つからなければ「その他」であろう最後の要素の直前に入れます.
  54. // この辺ガバガバなのでそのうち変えるかもしれません.
  55. $toInsert = $('.lang-ja>h3:last');
  56. }
  57. $toInsert.before('<h3>配点</h3>');
  58. $toInsert.before('<p>これはUserscriptによって追加された表です.</p>');
  59. $toInsert.before($table);
  60. // XSS に対してアなはずなんですが,AtCoder 社を信じるみたいなことをします
  61.  
  62. // AtCoder Scores でコメント芸が人気だったのでコメントを多めに書いています.
  63. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址