Skip to content

Aven1r/cocra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cocra (Codeforces crawler)

Tool for parsing the problems from codeforces.com website and generate problemsets into markdown format

💻 Technologies

⚙️ Libraries used

✨ Installation

Requirements

To install and run the project, you need to install all libraries mentioned above (except for html2md) with vcpkg dependency manager

Installation and launch of the project

Clone the project and move to the src directory:

git clone https://github.com/Aven1r/cocra.git
cd cocra/src

Start the build with CMake

cmake -DCMAKE_TOOLCHAIN_FILE=[pathToVcpkgToolchain] -B ./build
cmake –build ./build

🧑‍💻 Usage

After build process, the programs will be available for use from the ./src/bin folder

./ProblemParser Parsing Program

Run with command line parameters

./ProblemParser ./path/to/saved/problems lang limit delay

Where

  • ./path/to/saved/problems-path is the path where all problems will be stored
  • lang language of tasks (ru/eng)
  • limit limit on the number of saved tasks (positive number; 0-no limit)
  • delay delay between parsing tasks in milliseconds.

After execution, you can access the folder with tasks and the csv file with their attributes (name, rating, path to .md file)

Program for generating a set of tasks ./SetGenerator

Run with command line parameters

./SetGenerator ./path/to/problems/folder rating tag

Where

  • ./path/to/saved/problems-path is the path where all problems has been saved
  • rating required task rating (can be a range, like 800-2000, or just a number. 0 - no rating restrictions)
  • tag desired task tag (e.g. "math") (You may not write it)

After execution, the file tagdate.md will appear in the folder with tasks (where tag is the selected task tag, and date is the date of generation).

Contributing

if you have any ideas to improve the project or its individual components, then write here or make pull requests

Project Team