【AtCoder】acc、ojでログインできなくなった時の対処法

AtCoderの自動化ツールのAtCoder CLI(acc)、Online Judge Tools(oj)は便利ですが時々ログインすることができなくなります。
そうなった場合はCookieを保存しているファイルをそれぞれ編集することでloginコマンドを使用せずにログインすることができます。
この記事ではacc、ojにログインするための手順を紹介します。
Cookie情報を取得する
最初にWebブラウザでAtCoderのサイトにアクセスします。
そこで開発者ツールを開き Application > Cookies > https://atcoder.jp を選択します。

そこに表示されるREVEL_SESSION行のValue列の文字をダブルクリックしてすべて選択し、コピーします。

accのsession.jsonファイルの編集
編集するファイル: session.json
まずは設定ファイルのあるディレクトリのパスを確認するため下記コマンドをターミナルなどで入力します。
acc config-dir
パスが分かったら、その配下にあるsession.jsonを任意のテキストエディタで開きます。

REVEL_SESSIONの = から ” の間の値を先ほどWebブラウザでコピーしたものに変更して保存します。

以上でaccにログインした状態となります。
ojのcookie.jarファイルの編集
編集するファイル: cookie.jar
ターミナルで下記コマンドでcookie.jarファイルのパスを確認します。
oj -h

続いてテキストエディタでファイルを編集していきます。
REVEL_SESSIONの値を先ほどWebブラウザでコピーしたものに変更しますが、セミコロンまでがREVEL_SESSIONの値なので、それ以降のpathなどを誤って削除しないよう注意しましょう。

以上でojにログインした状態となります。
おわりに
一度行えばしばらくログインした状態になるので、面倒ですがログインできなくなったらやってしまいましょう。
また、AtCodeをC++で行うためのDocker環境も作ったりしてます。
興味があれば使ってみてください。
