Skip to content

🤖 AtCoder でACしたソースコードをGitHub上 or ローカルに保存します

License

Notifications You must be signed in to change notification settings

ivgtr/atcoder-ac-archive

Repository files navigation

AtCoder AC Archive

CI Test Publish to npm

AtCoder で AC したソースコードを GitHub 上 or ローカルに保存します

GitHub Actions を利用した自動収集とローカルでの実行が可能です

動いているデモ

Usages

Local

setup
$ npm install --global a3-cli
  1. a3 init を実行し、初期設定を行ってください
  2. a3 config <PROPERTIES> で設定を書き換える事ができます
  3. a3 config open で設定ファイルのディレクトリが開くので直接設定を書き換えることもできます:
    • config.user_id: 利用する AtCoder の ID
    • config.archive_dir: ソースコードの保存先、指定しない場合は実行場所に保存される
    • config.github_id: commit に使用する GitHub ID
    • config.github_email: commit に使用する GitHub Email
  4. a3 archive でコードを収集します
info
$ a3 [COMMAND] -h

GitHub Actions

Setup
  1. このリポジトリ を Fork します
  2. .github/workflows/schedule.yml環境変数 を編集します:
    • USER_ID: 利用する AtCoder の ID
    • GH_ID: commit に使用する GitHub の ID
    • GH_EMAIL: commit に使用する GitHub の Email
  3. 環境変数はリポジトリの Secrets に登録しても直接書き換えても問題ないです
  4. リポジトリの Actions タブを開き、GitHub Actions を有効化し、Update Workflows を有効化してください
  5. スケジュール毎にコードが収集され、Fork したリポジトリのatcoder.jp/<USER_ID> ブランチに push されます

補足

  • AtCoder Problems API へのリクエストと AtCoder へのスクレイピングを行っており、負荷軽減のためどちらも 1~1.5 秒程スリープを挟んで叩くようにしています
  • AtCoder への負荷軽減と GitHub Actions のリミットの兼ね合いで、CI はスクレイピングの実行時間が 5 分を超えたタイミングで終了します
    • AC 数が多い方は全てのコードを取得するまでに GitHub Actions を何度か実行する必要があるかもしれません

License

MIT ©ivgtr

Twitter Follow Github Follow MIT License Donate

About

🤖 AtCoder でACしたソースコードをGitHub上 or ローカルに保存します

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published