https://github.com/qryxip/snowchains
Tools for online programming contests.
https://github.com/qryxip/snowchains
Last synced: 4 months ago
JSON representation
Tools for online programming contests.
- Host: GitHub
- URL: https://github.com/qryxip/snowchains
- Owner: qryxip
- License: apache-2.0
- Created: 2017-06-28T04:33:47.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-03-25T00:59:58.000Z (almost 2 years ago)
- Last Synced: 2024-04-23T20:42:55.782Z (10 months ago)
- Language: Rust
- Homepage:
- Size: 2.44 MB
- Stars: 18
- Watchers: 1
- Forks: 6
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# Snowchains
[](https://github.com/qryxip/snowchains/actions?workflow=CI)
[](https://crates.io/crates/snowchains)
[](https://crates.io/crates/snowchains)Tools for online programming contests.
## Features
- Scrapes sample cases as YAML
- Tests a source file with downloaded sample cases
- Submits a source file
- Downloads source file you have submitted| | Register to a contest | Get sample test cases | Get system test cases | Submit | Get submissions | Watch submissions |
| :--------: | :-------------------: | :-------------------: | :-------------------: | :----------------: | :-------------: | :----------------: |
| AtCoder | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: |
| Codeforces | :x: | :heavy_check_mark: | N/A | :heavy_check_mark: | :x: | :x: |
| yukicoder | N/A | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: |## Instrallation
### GitHub Releases
### `cargo install` (Crates.io)
```console
$ cargo install snowchains
```### `cargo install` (GitHub)
```console
$ cargo install --git https://github.com/qryxip/snowchains
```## Usage
```console
$ snowchains -h
snowchains 0.5.2
Ryo Yamashita
Tools for online programming contestsUSAGE:
snowchainsFLAGS:
-h, --help Prints help information
-V, --version Prints version informationSUBCOMMANDS:
init Create a new config file [aliases: i]
login Logges in to a service [aliases: l]
participate Participates in a contest
retrieve Retrieves data [aliases: r]
download Alias for `retrieve testcases` [aliases: d]
watch Watches data [aliases: w]
judge Tests code [aliases: j, test, t]
submit Submits code [aliases: s]
xtask Runs a custom subcommand written in the config file [aliases: x]
help Prints this message or the help of the given subcommand(s)
$ snowchains r -h
snowchains-retrieve 0.5.2
Ryo Yamashita
Retrieves dataUSAGE:
snowchains retrieveFLAGS:
-h, --help Prints help information
-V, --version Prints version informationSUBCOMMANDS:
languages Retrieves list of languages [aliases: l]
testcases Retrieves test cases [aliases: t]
submission-summaries Retrieves submission summaries [aliases: ss]
help Prints this message or the help of the given subcommand(s)
$ snowchains w -h
snowchains-watch 0.5.2
Ryo Yamashita
Watches dataUSAGE:
snowchains watchFLAGS:
-h, --help Prints help information
-V, --version Prints version informationSUBCOMMANDS:
submissions Watches your submissions [aliases: s]
help Prints this message or the help of the given subcommand(s)
``````console
$ snowchains i .
Wrote `/home/ryo/src/local/a/snowchains.dhall`
$ snowchains x setup -h
usage: snowchains xtask setup [-h] [-p [PROBLEM [PROBLEM ...]]] service contest {cpp,rs} {code,vim,emacs}positional arguments:
service
contest
{cpp,rs}
{code,vim,emacs}optional arguments:
-h, --help show this help message and exit
-p [PROBLEM [PROBLEM ...]], --problems [PROBLEM [PROBLEM ...]]
$ echo "$ATCODER_USERNAME\n$ATCODER_PASSWORD" | snowchains x setup atcoder practice cpp code
GET https://atcoder.jp/contests/practice/tasks ... 404 Not Found
GET https://atcoder.jp/contests/practice ... 200 OK
Username: Password: GET https://atcoder.jp/login ... 200 OK
POST https://atcoder.jp/login ... 302 Found
GET https://atcoder.jp/settings ... 200 OK
GET https://atcoder.jp/contests/practice ... 200 OK
GET https://atcoder.jp/contests/practice/tasks ... 200 OK
GET https://atcoder.jp/contests/practice/tasks_print ... 200 OK
A: Saved to /home/ryo/src/local/a/.snowchains/tests/atcoder/practice/a.yml (2 test cases)
B: Saved to /home/ryo/src/local/a/.snowchains/tests/atcoder/practice/b.yml (interactive problem)
Opening https://atcoder.jp/contests/practice/tasks/practice_1 ...
Opening https://atcoder.jp/contests/practice/tasks/practice_2 ...
```

## License
Dual-licensed under [MIT](https://opensource.org/licenses/MIT) or [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0).