AtCoderSubmitSearchSettings

add default settings for submit search

As of 2019-09-23. See the latest version.

  1. // ==UserScript==
  2. // @name AtCoderSubmitSearchSettings
  3. // @namespace https://github.com/refine-P
  4. // @version 1.0.0
  5. // @description add default settings for submit search
  6. // @author fine
  7. // @license MIT
  8. // @include https://atcoder.jp/contests/*/submissions
  9. // ==/UserScript==
  10.  
  11. /*
  12. 使うときは検索の設定を変更してください
  13. 下にパラメータの一覧があるので参考にしてください
  14. */
  15.  
  16. // 検索の設定
  17. var task = "";
  18. var language = "C++14 (GCC 5.4.1)";
  19. var status = "AC";
  20. var user = "";
  21.  
  22.  
  23. /*
  24. 諸々のパラメータ一覧
  25. */
  26.  
  27. // 言語とクエリパラメータの対応関係
  28. // (言語のアップデートでこのあたりが変更されるかも?、Twitter等で教えてもらえれば対応します)
  29. var languageValues = {
  30. '': '',
  31. 'C++14 (GCC 5.4.1)': '3003',
  32. 'Bash (GNU bash v4.3.11)': '3001',
  33. 'C (GCC 5.4.1)': '3002',
  34. 'C (Clang 3.8.0)': '3004',
  35. 'C++14 (Clang 3.8.0)': '3005',
  36. 'C# (Mono 4.6.2.0)': '3006',
  37. 'Clojure (1.8.0)': '3007',
  38. 'Common Lisp (SBCL 1.1.14)': '3008',
  39. 'D (DMD64 v2.070.1)': '3009',
  40. 'D (LDC 0.17.0)': '3010',
  41. 'D (GDC 4.9.4)': '3011',
  42. 'Fortran (gfortran v4.8.4)': '3012',
  43. 'Go (1.6)': '3013',
  44. 'Haskell (GHC 7.10.3)': '3014',
  45. 'Java7 (OpenJDK 1.7.0)': '3015',
  46. 'Java8 (OpenJDK 1.8.0)': '3016',
  47. 'JavaScript (node.js v5.12)': '3017',
  48. 'OCaml (4.02.3)': '3018',
  49. 'Pascal (FPC 2.6.2)': '3019',
  50. 'Perl (v5.18.2)': '3020',
  51. 'PHP (5.6.30)': '3021',
  52. 'Python2 (2.7.6)': '3022',
  53. 'Python3 (3.4.3)': '3023',
  54. 'Ruby (2.3.3)': '3024',
  55. 'Scala (2.11.7)': '3025',
  56. 'Scheme (Gauche 0.9.3.3)': '3026',
  57. 'Text (cat)': '3027',
  58. 'Visual Basic (Mono 4.0.1)': '3028',
  59. 'C++ (GCC 5.4.1)': '3029',
  60. 'C++ (Clang 3.8.0)': '3030',
  61. 'Objective-C (GCC 5.3.0)': '3501',
  62. 'Objective-C (Clang3.8.0)': '3502',
  63. 'Swift (swift-2.2-RELEASE)': '3503',
  64. 'Rust (1.15.1)': '3504',
  65. 'Sed (GNU sed 4.2.2)': '3505',
  66. 'Awk (mawk 1.3.3)': '3506',
  67. 'Brainfuck (bf 20041219)': '3507',
  68. 'Standard ML (MLton 20100608)': '3508',
  69. 'PyPy2 (5.6.0)': '3509',
  70. 'PyPy3 (2.4.0)': '3510',
  71. 'Crystal (0.20.5)': '3511',
  72. 'F# (Mono 4.0)': '3512',
  73. 'Unlambda (0.1.3)': '3513',
  74. 'Lua (5.3.2)': '3514',
  75. 'LuaJIT (2.0.4)': '3515',
  76. 'MoonScript (0.5.0)': '3516',
  77. 'Ceylon (1.2.1)': '3517',
  78. 'Julia (0.5.0)': '3518',
  79. 'Octave (4.0.2)': '3519',
  80. 'Nim (0.13.0)': '3520',
  81. 'TypeScript (2.1.6)': '3521',
  82. 'Perl6 (rakudo-star 2016.01)': '3522',
  83. 'Kotlin (1.0.0)': '3523',
  84. 'PHP7 (7.0.15)': '3524',
  85. 'COBOL - Fixed (OpenCOBOL 1.1.0)': '3525',
  86. 'COBOL - Free (OpenCOBOL 1.1.0)': '3526'
  87. };
  88.  
  89. // 結果のステータス一覧
  90. var statusList = ['', 'AC', 'WA', 'TLE', 'MLE', 'RE', 'CE', 'QLE', 'OLE', 'IE', 'WJ', 'WR', 'Judging'];
  91.  
  92.  
  93. /*
  94. 提出の検索の設定を反映
  95. */
  96. window.addEventListener('load', function(event) {
  97. // クエリパラメータが有効か確認
  98. var messages = [];
  99. if (!(language in languageValues)) {
  100. messages.push(`Language: ${language} doesn't exists!`);
  101. }
  102. if (statusList.indexOf(status) < 0) {
  103. messages.push(`Status: ${status} doesn't exists!`);
  104. }
  105. if (messages.length > 0) {
  106. alert(messages.join('\n'));
  107. return;
  108. }
  109.  
  110. // クエリパラメータを追加
  111. var baseURL = location.href;
  112. var queryParameters = `?f.Task=${task}&f.Language=${languageValues[language]}&f.Status=${status}&f.User=${user}`;
  113. var newURL = baseURL + queryParameters;
  114.  
  115. window.location.href = newURL;
  116. }, false);