hayagrivan.dj's blog

By hayagrivan.dj, history, 22 months ago, In English

Hey everyone at Codeforces!!

Codeforces is a really well structured website, it is really easy to navigate to a problem and track your peers.

Atcoder on the other hand, though it does has some cool features feel hollow when compared to Codeforces. It is like being surrounded by walls.

So I have implemented a few features which are already present on Codeforces in AtCoder. I used Kenkoooo API to fetch rating for each problem and did get some inspiration from CF Analytics. Here are the features and the link to extension of course!!

Link for the extension: AC Analytics

Key Features

  1. Activity Calander : Is added to better track your progress like in Github and Codeforces.

  2. Problems Solved by Rating : See what you had been solving and up solve when needed.

  3. Unsolved Problems : Easily identify and tackle unsolved problems to improve your skills.

  4. Submission History: Access your submissions and others enabling you to monitor everyone's performance

  5. Additional Stats: Gain valuable insights with a range of extra statistics.

  6. Bookmark Problems: Save problems for later review or practice, ensuring you never lose track of important challenges.

  7. Problem Set with Filters: Browse and filter all problems from the AtCoder platform to find exactly what you need.
  8. Daily Reminders: Set daily reminders to stay consistent and disciplined in your problem-solving practice.

Updates:

  • 2/7/24: Reported bugs fixed, filter by solved problems added, option to disable rating in task page is added. CP companion extension still doesn't work, will look into it.

Please do suggest if any features are needed and report any bugs if found! As far as I know the reminders has some trouble working consistently which I'll fix on the next patch.

Thanks for reading this blog :)

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

| Write comment?
»
22 months ago, hide # |
 
Vote: I like it +5 Vote: I do not like it

In problemset filters please make max rating inclusive 

»
22 months ago, hide # |
 
Vote: I like it +4 Vote: I do not like it

nice, thanks.

»
22 months ago, hide # |
 
Vote: I like it +3 Vote: I do not like it

It's working. Would be good if you can add topic-wise filter

  • »
    »
    22 months ago, hide # ^ |
     
    Vote: I like it +3 Vote: I do not like it

    Unfortunately there are no tags in atcoder problems so that cant be done. I would request atcoder hqs to start tag system as in codeforce.

»
22 months ago, hide # |
 
Vote: I like it +4 Vote: I do not like it

Good Job Bro!

»
22 months ago, hide # |
 
Vote: I like it +4 Vote: I do not like it

Awesome. Thanks for this!

»
22 months ago, hide # |
 
Vote: I like it +3 Vote: I do not like it

Very cool, thanks for making this.

»
22 months ago, hide # |
 
Vote: I like it +12 Vote: I do not like it

Its great extension, but please add it in firefox add-ons too, as it is only available to chromium users.

»
22 months ago, hide # |
 
Vote: I like it +4 Vote: I do not like it

Amazing. Do you have any plans for making it available on firefox ?

»
22 months ago, hide # |
Rev. 2  
Vote: I like it +2 Vote: I do not like it

Thanks for the extension.

Feature Request:

  • In the problemset section, mark the solved problems as green and unsolved (problems that I tried but could not solve) problems as red.
  • Add an option to hide or show solved problems (similar to codeforces).
»
22 months ago, hide # |
 
Vote: I like it +3 Vote: I do not like it

very helpful, Thanks.

»
22 months ago, hide # |
Rev. 2  
Vote: I like it +1 Vote: I do not like it

Nice extension!

Bug: The coloring of 2300~2700 seems to be wrong.

»
22 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

What is the tech — stack you used to build it, also if you don't mind can you share the documentation? Thankyou!

»
22 months ago, hide # |
 
Vote: I like it +6 Vote: I do not like it

Great extension! You should add hide problem rating too. Sometimes seeing the rating make solving problem unnatural.

»
22 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Do you have a github repository for this project? I'd like to see it… Thx a lot for your tool

»
22 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Good initiative

»
22 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

helpfull

»
22 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Why aren't certain submissions during the contest counted?

»
22 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Good job

»
5 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

not work now

»
5 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Is there an extension that helps to sort based on tags on AtCoder?

»
5 months ago, hide # |
Rev. 2  
Vote: I like it 0 Vote: I do not like it

Thanks for letting me know this extension, it is really useful

»
4 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

So, I solved some of the questions of 900 and 1000, but i am not able to see on my profile problem chart. Neither it is getting green on my activity calendar.

Is this API problem, but using your extension I can see problem ratings on task page. So, please fix it or help me why i am not able to see.

  • »
    »
    4 months ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    I believe this is an API problem. My extension is dependent on the third-party API kenkoooo, however, it seems his data collector has been down for a while now. I will try hosting my own scraper, but I found it to be much slower than kenkoooo's API since I needed to use IP rotation otherwise. It will take time though :(

»
4 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

hayagrivan.dj

Issue: CompetitiveCompanion — Atcoder Parser kept failing because of installing AC Analytics.

Could you please edit manifest of this extension to not work on Problem Page? Or like make it compatible with CompetiveCompanion Extension.?

Could you please opensource it? — It would make it easier to maintain and fix issues for me.

  • »
    »
    4 months ago, hide # ^ |
    Rev. 4  
    Vote: I like it 0 Vote: I do not like it

    I found a workaround.

    • Find Install path of extension using Extension ID

      • Windows: C:\\Users\\[YourUsername]\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Extensions\\{ExtensionID}
      • Linux: ~/.config/google-chrome/Default/Extensions/{ExtensionID}
    • Edit Manifest.json — It's better to copy extension folder to another folder and then edit.

    add below line afer every "matches":[]

          ,"exclude_matches": [
            "https://atcoder.jp/contests/*/tasks/*"
          ],
    }
    
    • Load Unpacked.
    • »
      »
      »
      4 months ago, hide # ^ |
       
      Vote: I like it 0 Vote: I do not like it

      Hi!! I hope the errors you face while using CompetitiveCompanion are the following

      Image1 Image2

      The problem occurs due to the rating being inserted in the page, which seems to render the CompetitiveCompanion Atcoder Problem Parser useless. If I exclude this page then this feature has to be removed.

      There is a provision to disable this feature in the AC Analytics extension's pop-up as shown in the image below. This worked for me, but if you do face more difficulties let me know by personal chat.

      Image3

»
3 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Hey, I guess it is not working currently ??

  • »
    »
    82 minutes ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    I guess you're using the latest version of Chrome.

»
84 minutes ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Bug Report: Extension fails to render on latest Chrome due to implicit Promise in onMessage listener

Hi Developer,

First of all, thank you for creating this amazing extension! I’ve been using it for a while, and it’s incredibly helpful.

I recently encountered an issue where the extension stopped working on the latest versions of Google Chrome. The background script was returning null to the content script, resulting in the following console error: TypeError: Cannot read properties of null (reading 'htmlResponse')

After some debugging, I found that the root cause is related to how the latest Manifest V3 Chrome handles Promises in chrome.runtime.onMessage listeners.

In your background script (where the popup alarm listener is defined), there is this line:

chrome.runtime.onMessage.addListener((request,sender,sendResponse) => update(request,sender,sendResponse));

Because this arrow function lacks curly braces {}, it implicitly returns the result of the update() function. In recent Chrome updates, if an onMessage listener returns a Promise, Chrome immediately assumes the channel is asynchronous and takes over the response handling. This interrupts the return true; logic in the other appendHTML listener, forcing the channel to close prematurely and sending a null response back to the frontend.

The Fix: Simply wrapping the update function in curly braces cuts off the implicit return, and it perfectly resolves the crash on my end:

chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
    update(request, sender, sendResponse);
});

I've tested this fix locally as an unpacked extension, and everything works flawlessly again.

Could you please apply this minor fix in the next update? Thanks again for your hard work!

Best regards, A regular user

»
11 minutes ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Great!! Waiting for something like this.