A tool to download all your successful codechef solutions in one go

Hi all,

tl;dr: I have created a web crawler tool that can download all your AC solutions in one go. Just provide the username and it will download all the code for you.

To fit the use case when we often try to view or download other people’s solutions to learn more, or when we try to download our own solutions and like to archive them (the latter especially being a very cumbersome task, due to which people rarely try it):

I have created a web crawler tool for CodeChef. It can download all AC solutions of a CodeChef user. Just provide the username and that’s it. It will download everything for you. It has some decent features, and I’ll be rolling out new features in the future hopefully.

Here is the github repository link: Mayank Bhura’s github project.
Please feel free to try it out, and any feedback is welcome.
Usage instructions etc are given in the repository README.

It is just a jar file, so just download it and get started! :slight_smile:
Feedback link: here.

Thank you all :slight_smile:

Mayank Bhura (@mb1994)

17 Likes

That sound so AWESOME!!!

I can see a good use of it in reference purposes, like a user thinks “This XYZ is good. Lets download all his soln as reference, so when I get stuck, I can look at them.”

Wow yr! This tool is absolutely awesome! Good job… I expect more like these from you!

+1. Btw have you seen this: http://codeforces.com/blog/entry/18084 (spoj,cf and codechef)
or this: https://github.com/ideamonk/spojbackup or this: https://github.com/codenirvana/spoj-solutions. There are quite a few pet projects like these, but I don’t know if they are reliable.

Edit: This needs java 1.8+

Codechef site changed, so this is not working any more. I have made changes to the crawler along with some feature additions :slight_smile:

→ Makes separate directories for every contest, and saves the associated submissions in the corresponding directories.

→ Previously, crawler would only fetch the last AC solution, but this logic might fail in case of long contest. Now the crawler will fetch single best solution considering the score, time and memory (Fetches an AC submission with best score, minimum time and minimum memory usage).

Github Link:

3 Likes

The jar file is not opening please help!!!

1 Like

Thanks so much!
Please share it among your friends if you want.

Hey mb1994, We would like to get on a call with you and discuss the entire functionality or your project and the effect it might have on CodeChef. So, could you please send us your contact details at: feedbcak[at]codechef[dot]com

2 Likes

I got this error:

Exception in thread “main” java.lang.NumberFormatException: For input string: “H
idde”
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at sun.misc.FloatingDecimal.parseDouble(Unknown Source)
at java.lang.Double.parseDouble(Unknown Source)
at CodechefCrawler.getLanguageAndProblemId(CodechefCrawler.java:163)
at CodechefCrawler.fetchSubmissionIDs(CodechefCrawler.java:180)
at CodechefCrawler.crawl(CodechefCrawler.java:51)
at Main.main(Main.java:23)

1 Like

Well that is strange, I tested this for 7 users and I was successfully able to download the solutions contest wise (for each user).
I guess I missed an edge case :P. I will look into the issue and get back to you on this.

2 Likes

There is nothing wrong with the crawler. For this contest ISCC2017, the time and memory is hidden (for all submissions) ,whereas the crawler expects these attributes to be a double datatype, thus it is throwing an error.

I guess its an external contest, so the organisers would have some reason to hide these attributes.

It passed for other users since they didn’t participate in this contest. Moreover crawler don’t expect such attributes in submission page.

I will definitely modify the crawler for such cases. I never expected the time and memory to be hidden!

Thank you for pointing this :slight_smile:

2 Likes

Pushed the changes.

I was successfully able to download your solutions now :slight_smile:

Make sure you again download the updated jar file.

1 Like

Hey! Thanks. It works like a charm! It is AWESOME!

1 Like

Amazing software @flappy

I am also getting same error bro.

Exception in thread “main” java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at CodechefCrawler.getLanguageAndProblemId(CodechefCrawler.java:177)
at CodechefCrawler.fetchSubmissionIDs(CodechefCrawler.java:187)
at CodechefCrawler.crawl(CodechefCrawler.java:50)
at Main.main(Main.java:23)