stat.ink にバトル結果を自動的にアップロード

バトル結果をアーカイブ保存できて便利です、戦歴を見直して対策を立てられます。
コードの取得
git clone https://github.com/frozenpandaman/s3s.git
実行準備 / python 環境の準備
cd s3s
export PIPENV_VENV_IN_PROJECT=1
pipenv install
pipenv shell
pipenv 環境下で作業をします。
最初に依存モジュールを用意しておきます。
(s3s) pip install -r requirements.txt
APIキーを用意します。
Stat.inkにデータを投稿するためのAPIキーを、Stat.inkから取得します。

初回起動でセッションキーを登録します。
((s3s) ) takuya@:s3s$ ./s3s.py -r
Generating new config file.
s3s v0.1.11
» While s3s is in beta, please update the script regularly via `git pull`.
stat.ink API key: XXXXXXXXXXXXhdAqlouPGxxxxxxxxxx
言語を聞かれるので、en-USでいいと思いますが、ja-JPも使えるみたいなので指定しました。
Default locale is en-US. Press Enter to accept, or enter your own (see readme for list).
ja-JP
リンクが表示されます。表示されたHTTPから始まるリンクをクリック
Checking if there are previously-unuploaded battles/jobs...
Blank token(s).
Please log in to your Nintendo Account to obtain your session_token.
Make sure you have fully read the "Token generation" section of the readme before proceeding.
To manually input a token instead, enter "skip" at the prompt below.
Navigate to this URL in your browser:
https://accounts.nintendo.com/connect/1.0.0/authorize?state=xxxxxxxxxxxxxxx&theme=login_form
認証済みセッションを作ったら、「この人にする」を右クリックして、リンク先をコピーします。

コピーしたリンク先のURL App Schema をコピーして貼り付けます。
Log in, right click the "Select this account" button, copy the link address, and paste it below:
npf71b963c1b7b6d119://auth#session_state=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3VV2ftKJ7lNVxxxxxxxxxxxxx
これで準備は完了です。
初回起動後に、自動的にアップロードが始まります。
次回以降の起動の手順
起動手順は、次の通りになります。これをCron/Systemdなどに登録しておけばいいと思います。
cd /home/takuya/.s3s
HOME=/home/takuya
source ~/.bashrc
eval "$( /home/takuya/.pyenv/bin/pyenv init -)"
export PATH=/home/takuya/.pyenv/shims/:$PATH
echo update ....................
git pull
pipenv run pip install --upgrade pip
pipenv run pip install -r requirements.txt --upgrade
echo uploading .........
echo ''
pipenv run python ./s3s.py -r -t
pipenv run python ./s3s.py -r
pipenv run python ./s3s.py -osr
systemd の例
サービスユニット
s3s.service
[Unit]
Description=Splattoon s3s
[Service]
WorkingDirectory=/home/takuya/.s3s
ExecStartPre=/usr/bin/git pull
ExecStartPre=/home/takuya/.s3s/.venv/bin/python pip install --upgrade pip
ExecStartPre=/home/takuya/.s3s/.venv/bin/python bin/pip install --upgrade -r requirements.txt
ExecStart=/home/takuya/.s3s/.venv/bin/python s3s.py -r
ExecStartPost=/home/takuya/.s3s/.venv/bin/python s3s.py -r
#Restart=always
#RuntimeMaxSec=600
; User=takuya
; Group=takuya
[Install]
WantedBy=default.target
タイマーユニット s3s.timer
タイマーファイル splatnet2ink.timerを作成しておく
[Unit]
Description=Splattoon s3s schedule timer
[Timer]
OnCalendar= hourly
RandomizedDelaySec=10
Unit = s3s.service
[Install]
WantedBy=default.target
ユーザー空間なら、次のところにファイルを作って起動する。
## ユーザ向け
mkdir -p ~/.config/systemd/user/
## または システム
mkdir -p /etc/systemd/user/
systemdをリロードして ユーザー unit を登録
systemctl --user daemon-reload
起動してチェック
systemctl --user status s3s.service
systemctl --user start s3s.timer
systemctl --user status s3s.service
有効化
systemctl --user enable s3s.service
systemctl --user enable s3s.timer
systemctl --user start s3s.timer
サーモンがない。
stat.ink のサーモンランのアップロードが無いの悲しい
バンカラ・マッチはバグが多いので年末まではやらないつもりなので、サーモンランしかやってない。だけどサーモンランの記録を残せない。悲しい。
定期実行時
git のマージの戦略が未設定だと、警告が出てくる。
hint: git config pull.rebase false # merge (the default strategy)
hint: git config pull.rebase true # rebase
hint: git config pull.ff only # fast-forward only
ローカルにクローンしたファイルを触らないのだからマージが必要ない。 その理由からff を選んでおいた。
git config pull.ff only