Greasy Fork is available in English.

atcoder-tasks-page-colorizer

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

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey, Greasemonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Userscripts.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een gebruikersscriptbeheerder nodig.

(Ik heb al een user script manager, laat me het downloaden!)

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

(Ik heb al een beheerder - laat me doorgaan met de installatie!)

  1. // ==UserScript==
  2. // @name atcoder-tasks-page-colorizer
  3. // @namespace https://twitter.com/kymn_
  4. // @version 1.1.2
  5. // @description tasksページにおいて、提出した問題に色付けを行います。
  6. // @author keymoon
  7. // @license MIT
  8. // @supportURL https://twitter.com/kymn_
  9. // @match https://atcoder.jp/contests/*/tasks
  10. // @require https://greatest.deepsurf.us/scripts/437862-atcoder-problems-api/code/atcoder-problems-api.js?version=1004082
  11. // ==/UserScript==
  12.  
  13. if (moment() < endTime) return;
  14.  
  15. $('#main-div thead th:last-child').before('<th width="10%" class="text-center">最終提出</th>');
  16. getSubmissions(userScreenName).then(colorize);
  17.  
  18. function colorize(problems_info) {
  19. $('#main-div tbody tr').each((x,y) => {
  20. let problem_id = y.querySelector('td:nth-child(2) a').getAttribute('href').split('/').pop();
  21. let trial = problems_info.filter(x => x.problem_id == problem_id);
  22. colorize_row(y,trial);
  23. })
  24.  
  25. function colorize_row(row, trial) {
  26. var submitted = trial.length != 0;
  27. var is_accepted = trial.map(x => x.result).includes('AC');
  28. var last_submit = !submitted ? null : trial.reduce((x,y) => x.epoch_second > y.epoch_second ? x : y);
  29. $(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>`);
  30. if(submitted) row.classList.add(is_accepted ? 'success' : 'warning');
  31. }
  32. }