Splatoon3の戦績をstat.inkに自動アップロードするGitHub Actions
GitHub Actions上で実行すると環境を持たなくてよいメリットとともに最新のコードでアップロードできるので任天堂側の仕様変更による認証ミスで詰まらずに済むというメリットがあります.(※たぶん)
やり方
s3sを用いてstat.inkにデータをアップロードします.
1. s3sを手元で動かす
手元で動かしてstat.inkにアップロードできるかどうかを試すとともに認証情報を手に入れます.
git clone https://github.com/frozenpandaman/s3s
cd s3s
python3 -m pip install -r requirements.txt
python3 s3s.py -nsr -r
コマンド実行して,
両方入力したら戦績がアップロードされるはずなので待ちます.
s3sディレクトリにconfig.txtが生成されているはずなので開きます.
2. ymlに認証情報を書いてコミットする
適当なリポジトリを作って .github/workflows
以下に 適当なファイル名.yml
を作って以下のコードをペタリしておきます.
11行目以下env部をconfig.txtから同じ名前の部分を置換します.(GitHub ActionsのEnvironment secretsに書くべきな気はする)
Gist
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| name: Splatoon3 Battlelog Uplorder
on: schedule: - cron: '0 19 * * *' workflow_dispatch:
jobs: build: runs-on: ubuntu-latest env: API_KEY: "***" ACC_LOC: "***" GTOKEN: "***" BULLETTOKEN: "***" SESSION_TOKEN: "***" F_GEN: "***"
name: Splatoon3 Battlelog Uploader steps: - name: Set up Python 3.11 uses: actions/setup-python@v4 with: python-version: 3.11
- name: Checkout frozenpandaman/s3s uses: actions/checkout@v3 with: repository: 'frozenpandaman/s3s' path: s3s
- name: Generate config.txt working-directory: s3s run: | echo '{"api_key": "${{ env.API_KEY }}", "acc_loc": "${{ env.ACC_LOC }}", "gtoken": "${{ env.GTOKEN }}", "bullettoken": "${{ env.BULLETTOKEN }}", "session_token": "${{ env.SESSION_TOKEN }}", "f_gen": "${{ env.F_GEN }}" }' > config.txt cat config.txt - name: Install s3s requirements working-directory: s3s run: | pip install -r requirements.txt - name: Run s3s working-directory: s3s run: | python3 s3s.py -nsr -r
|
コミットすると毎朝4時に自動で戦績がアップロードされます.