Блог пользователя rishiraj22

Автор rishiraj22, история, 6 лет назад, По-английски

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

  • Проголосовать: нравится
  • +169
  • Проголосовать: не нравится

»
6 лет назад, # |
  Проголосовать: нравится +9 Проголосовать: не нравится

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 лет назад, # ^ |
      Проголосовать: нравится +6 Проголосовать: не нравится

    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 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

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

      • »
        »
        »
        »
        6 лет назад, # ^ |
          Проголосовать: нравится +6 Проголосовать: не нравится

        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 лет назад, # ^ |
      Проголосовать: нравится +6 Проголосовать: не нравится

    Any plans to support more judges?

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

    • »
      »
      »
      6 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится +18 Проголосовать: не нравится

      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 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

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

»
6 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

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

»
6 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

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