Skip to content
SkyLake-gitPublic

About

Testcase Scraper & Executor for AtCoder

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Compete

AtCoder 用のテストケースユーティリティー
*Windows のみ動作確認済み

Features

  • テストケースを問題ページから取得
  • 全てのテストケースを自動実行
    • 実行可能ファイル (.exe) が必要
  • 全てのテストケースを自動実行し、全て AC だった場合提出

How to use

知識がある方は仮想環境を作成することをお勧めします。以下は作成しない場合の工程です

  1. 必要なライブラリをインストール: pip install -r requirements.txt
  2. 実行 python main.py <command> または python -m main <command> (コマンドについて)
  3. これだけ

実行すると、 main.py が置かれているディレクトリに resources/ ディレクトリが追加され、
設定関連のファイルが生成されます (preferences.json など)

Commands

credentials

エイリアス: cred

サイト別に認証情報を手動で登録します
(現在 AtCoder のみ対応)

サイト別の認証情報の取得方法については こちら

preferences

エイリアス: pref

設定を変更します
設定キーの詳細については こちら

start [problem_id]

問題ページをスクレイピングし、テストケースを取得します
problem_id は以下の形式で入力する必要があります: CONTEST_X
AtCoder Beginner Contest 400 の A問題 の場合、 abc400_a と入力すればよいです

test

実行可能ファイルに対して、全てのテストケースを実行します
提出は行いません

watch

現在のコンテストにおけるあなたの提出を確認します
定期的に更新されます

submit

実行可能ファイルに対して、全てのテストケースを実行します
全てのテストケースにおいて AC だった場合、自動で提出します
提出に成功後、全ての提出の WJ が解消されるまで watch します

Important

自動提出は、進行中のコンテストのみ可能です。
その他のコンテストへの提出は Cloudflare Turnstile により不可能です。

Tip

ソースコードファイルに以下のようにコメントを追加することで、提出するコードの範囲を指定することができます。

// compete BOF          (提出ソースコードの始まりを指定)
write your code here
// compete EOF          (提出ソースコードの終わりを指定)

コマンド実行時に必要なセットアップが出来ていない場合セットアップウィザードに移行します。

How to get credential information

AtCoder

(Google Chrome の場合)

  1. AtCoder にログインしているブラウザーで AtCoder サイトを開く
  2. 開発者ツールを開く
  3. タブの アプリケーション を選択
  4. 左リストの ストレージ から Cookie を選択
  5. https://atcoder.jp を選択
  6. 右リスト内の REVEL_SESSION を選択し、下に出てくる Cookie Value の内容が認証情報
  7. 完了

Preferences

キー 型 デフォルト値 説明
executable_path string null 実行可能ファイルを指定する
source_path string null ソースコードファイルを指定する
language_id int null 提出する際の言語を指定する
request_dbg_remain_tail boolean true true の場合、通信の結果をコンソールに残します
submit_delay int 2 submit コマンドにて提出するまでの遅延を設定します
0 に設定すると即座に提出します
cpp_expand_include_files boolean false (C++のみ、g++.exe が環境変数に入っている必要があります、環境により正常に動作しない可能性があります)
submit コマンドにて提出する際に、includeしている自作ライブラリを提出コード内に展開します
このオプションが有効になってから初めて提出する時、5秒ほどの初期処理が走ります
このオプションはコンパイラのプリプロセス機能を使用していることに留意してください(マクロ展開などが行われます)
cpp_project_directory string null cpp_expand_include_files でプリプロセスする際のincludeディレクトリを指定する

executable_pathと source_path を指定しない場合、このライブラリの親ディレクトリにある
CMakeLists.txt を読み取り自動で指定します。

language_id を指定しない場合、提出の際にエラーが発生します。

Language Ids

Language ID 説明
0 C++ (GCC)
1 C++ (Clang)

About

Testcase Scraper & Executor for AtCoder

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages