Splatoon3の戦績をstat.inkに自動アップロードするGitHub Actions

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

コマンド実行して,

  • stat.incの鍵をコピー&ペーストします.

  • 生成された Nintendo.com のリンクを開いてこの人にするを右クリックしてリンクをコピーして貼り付けます.

両方入力したら戦績がアップロードされるはずなので待ちます.

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 * * *' # 朝4時
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
# python3 s3s.py -osr -r

コミットすると毎朝4時に自動で戦績がアップロードされます.

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×