作ったもの
aocli(AOJ submission tool on CLI)
使い方
セットアップ
Python2.7で動きます。
環境変数からクレデンシャルを取得するので、必要な変数を登録します。
install.shはエイリアスを.bashrcに書き込んでいるだけです。
PyPIに登録したのでpipからインストールできるようになりました
$ pip install aojcli
$ echo 'export AOJCLI_ID=your_user_id_of_AOJ' >> ~/.bashrc
$ echo 'export AOJCLI_PASSWORD=your_password_of_AOJ' >> ~/.bashrc
submit
問題のID、記述言語、ソースコードファイルを指定するだけです。
$ aojcli submit ITP1_1_D C++11 ITP1_1_D.cpp
[submit success]
Access token for checking result : a3d80b96-4fda-432d-a6b2-3af1c6ff043d
status
問題のIDを指定してstatusが確認できます。
$ aojcli status ITP1_1_D
[Status of submission(ITP1_1_D)]
+----------+----------------+-------+---------------------+---------------------+
| judge id | status | lang | submit date | judge date |
+----------+----------------+-------+---------------------+---------------------+
| #2791323 | STATE_ACCEPTED | C++11 | 2018-04-17 23:18:02 | 2018-04-17 23:18:03 |
+----------+----------------+-------+---------------------+---------------------+
作った背景
仕事はじめてから趣味プログラミングする時間がなくなりました。
ちゃんとした開発はまとまった時間がないと厳しいので、問題集解いてみたりすることにしました。
AOJは過去に使ったことがあるので、まずはそこで適当に色々と解いてみることにしましたが、
解答の提出をするのに毎回ブラウザにコピペするの面倒くさい。
あと、Linux ServerにSSHしてVimでコードを書くのが今の僕の開発スタイルなので、そもそもファイルが今操作してるマシン上にない事が多いです。
というわけで、開発環境からそのままコマンドひとつで、回答を提出できるツールを作ることにしました。
その他
AOJのAPIの制限が厳しく、短時間に複数回認証を行うと弾かれてしまいます。
submitしたらすぐにstatus確認したい気持ちはありますが、10秒程度お待ち下さい。。
自分が使うために作ったので、イケてないのときっとバグがたくさんあります。ご利用は自己責任で。
あと、これ以上の機能拡張は今の所考えていないです。
[参考]
AOJ API Reference