rishiraj22's blog

By rishiraj22, history, 6 years ago, In English

Frustrated of staring at your screen waiting for the result of your submissions to pop up? Relax and read the next problem while this extension checks the result continuously and notifies you as soon as the results appear. It uses text to speech to say the result, or if you prefer being silently notified, there is an option for that too.

Supported judges:

  • Codechef
  • Codeforces
  • AtCoder

Screenshot

Firefox addons

Chrome Web Store

Github

Edit

Thanks a ton to majk for adding AtCoder support :)

Edit 2

Added link to Chrome Web Store listing

  • Vote: I like it
  • +169
  • Vote: I do not like it

»
6 years ago, # |
  Vote: I like it +9 Vote: I do not like it

Great!

What's the reason for using different approach for Codeforces and Codechef? Codechef is spawning a page that periodically uses XHR to get the status, whereas Codeforces parses the my submissions page. That means that if I close the status page, I will not get a notification (which is arguably a minor issue, because it's not worse than without the extension).

Another small issue is that due to the server load, it sometimes takes a while to display the status page, and the verdict is present there when this happens. As such, the submission is never in the "waiting" state, and the script ignores it.

Will this also work for the system test?

Any plans to support more judges?

  • »
    »
    6 years ago, # ^ |
      Vote: I like it +6 Vote: I do not like it

    What's the reason for using different approach for Codeforces and Codechef? Codechef is spawning a page that periodically uses XHR to get the status, whereas Codeforces parses the my submissions page. That means that if I close the status page, I will not get a notification (which is arguably a minor issue, because it's not worse than without the extension).

    Codechef uses a simple polling mechanism to poll for the result of submission, so I can easily poll the endpoint from the extension whereas Codeforces uses websocket connection and I couldn't figure out what the packets were doing exactly. So, I lazily decided to go with simple parsing. If someone can figure out an endpoint (they must have it for backward compatibility), and tell me about that, I would surely make an update.

    Another small issue is that due to the server load, it sometimes takes a while to display the status page, and the verdict is present there when this happens. As such, the submission is never in the "waiting" state, and the script ignores it.

    I didn't consider that. I can just make it say the topmost result, but that would be irritating if you want to go through your old submissions for a contest. Moreover, I haven't experienced that with the few contests I have participated in.

    Will this also work for the system test?

    I will have to wait for a contest to try that out.

    • »
      »
      »
      6 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      I think you can use Codeforces API command user.status to be able to track the submission verdict.

      • »
        »
        »
        »
        6 years ago, # ^ |
          Vote: I like it +6 Vote: I do not like it

        Ya, I can parse the user name from the submission page and poll the user.status command. I will definitely try it out once I have some more free time.

  • »
    »
    6 years ago, # ^ |
      Vote: I like it +6 Vote: I do not like it

    Any plans to support more judges?

    Not currently. But, I would love to get some pull requests which add support for other judges :)

    • »
      »
      »
      6 years ago, # ^ |
      Rev. 2   Vote: I like it +18 Vote: I do not like it

      Not currently. But, I would love to get some pull requests which add support for other judges :)

      I hope you're not offended by my JavaScript "skills", but you have an AtCoder support pull request.

      • »
        »
        »
        »
        6 years ago, # ^ |
          Vote: I like it +6 Vote: I do not like it

        Not at all! My javascript isn't good either ;)

»
6 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by rishiraj22 (previous revision, new revision, compare).

»
6 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by rishiraj22 (previous revision, new revision, compare).

»
6 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by rishiraj22 (previous revision, new revision, compare).