atcoder-tasks-page-colorizer

tasksページにおいて、提出した問題に色付けを行います。

目前為 2019-03-15 提交的版本,檢視 最新版本

  1. // ==UserScript==
  2. // @name atcoder-tasks-page-colorizer
  3. // @namespace https://twitter.com/kymn_
  4. // @version 1.0.0
  5. // @description tasksページにおいて、提出した問題に色付けを行います。
  6. // @author keymoon
  7. // @license MIT
  8. // @supportURL https://twitter.com/kymn_
  9. // @match https://atcoder.jp/contests/*/tasks
  10. // ==/UserScript==
  11.  
  12. $('thead th:last-child').before('<th width="10%" class="text-center">最終提出</th>')
  13. $.ajax(`https://kenkoooo.com/atcoder/atcoder-api/results?user=${userScreenName}`).done(colorize);
  14.  
  15. function colorize(problems_info) {
  16. $('tbody tr').each((x,y) => {
  17. let problem_id = y.querySelector('td:nth-child(2) a').getAttribute('href').split('/').pop();
  18. let trial = problems_info.filter(x => x.problem_id == problem_id);
  19. colorize_row(y,trial);
  20. })
  21. function colorize_row(row, trial) {
  22. var submitted = trial.length != 0;
  23. var is_accepted = trial.map(x => x.result).includes('AC');
  24. var last_submit = !submitted ? null : trial.reduce((x,y) => x.epoch_second > y.epoch_second ? x : y);
  25. $(row.querySelector('td:last-child')).before(`<td class="text-center">${submitted ? `<a href="https://atcoder.jp/contests/${last_submit.contest_id}/submissions/${last_submit.id}">${moment.unix(last_submit.epoch_second).format("YYYY/MM/DD")}</a>` : '-'}</td>`);
  26. if(submitted) row.classList.add(is_accepted ? 'success' : 'warning');
  27. }
  28. }