CLI command for claiming Honkai: Star Rail HoYoLAB daily check-in rewards.
Project description
hsr-login
崩壊:スターレイルのWebログインボーナスを取得するCLIコマンドです。
現在のバージョンは 0.3.1 です。
HoYoLAB の Web 版デイリーチェックインのうち、ゲーム名が「崩壊:スターレイル」のものだけを対象にします。原神やゼンレスゾーンゼロのチェックイン API は呼びません。
クイックインストール
macOS / Linux:
pipx install hsr-login
Windows PowerShell:
pipx install hsr-login
インストール後は hsr-login コマンドで実行します。
pipx を使うと、専用の仮想環境に PyPI 版の hsr-login を入れ、コマンドだけを普段の PATH から呼び出せます。hsr-login コマンドが見つからない場合は、PATH の設定を確認してください。
使い方
初回だけ HoYoLAB のログイン Cookie を保存します。
hsr-login login --check
hsr-login login --check では、自動取得用のブラウザーで「崩壊:スターレイル」のチェックインページを開きます。HoYoLAB にログインすると、CLI がブラウザー内の Cookie を検出して保存します。
保存後は次のコマンドで本日のログインボーナスを受け取れます。
hsr-login claim
サブコマンドを省略した場合も claim として動作します。
hsr-login
受け取り状態だけを確認する場合は次を使います。
hsr-login status
保存した Cookie を削除する場合は次を使います。
hsr-login logout
ログインのオプション
ブラウザー自動取得
既定では --browser auto として動作します。Chrome / Chromium / Edge / Brave / Comet / Arc などの Chromium 系ブラウザーを順に探し、macOS では Chromium 系ブラウザーが見つからない場合に Safari も候補にします。
Chromium 系ブラウザーを明示する場合は --browser chromium を指定します。
hsr-login login --browser chromium --check
Chrome が自動検出できない場合は、実行ファイルを指定できます。
macOS:
hsr-login login --browser-command "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --check
Windows PowerShell:
hsr-login login --browser-command "C:\Program Files\Google\Chrome\Application\chrome.exe" --check
Safari を明示して使う場合は --browser safari を指定します。
hsr-login login --browser safari --check
Safari 自動取得は macOS の safaridriver を使います。初回は Safari の開発メニューで「リモートオートメーションを許可」を有効にするか、次を実行してください。
safaridriver --enable
Safari WebDriver は通常の Safari プロファイルではなく隔離された自動化ウィンドウを使うため、普段使いの Safari に保存済みの Cookie は読み取りません。表示された Safari ウィンドウで HoYoLAB にログインしてください。
safaridriver の場所を明示する場合は --safaridriver-command を使います。
hsr-login login --browser safari --safaridriver-command /usr/bin/safaridriver --check
手動入力
自動取得を使わず、従来どおり開発者ツールから Request Headers の Cookie: 以降を貼り付ける場合は --manual を使います。
hsr-login login --manual --check
インストール詳細
Homebrew 版 Python など PEP 668 に対応した環境では、グローバルな python3 -m pip install --user ... が externally-managed-environment で失敗することがあります。CLI として使う場合は、専用 venv を自動で管理する pipx を推奨します。
PyPI からインストールする
PyPI に公開済みのリリースは、次のコマンドでインストールできます。
pipx install hsr-login
更新する場合は次を使います。
pipx upgrade hsr-login
すでに自分で作った venv の中に入れる場合は、通常の pip install も使えます。
python -m pip install hsr-login
ローカルリポジトリからインストールする
未公開の開発版をこのリポジトリから入れる場合は、専用 venv に pip install して hsr-login コマンドだけを呼べるようにするローカルインストーラを使えます。
macOS / Linux:
./scripts/install-local.sh
Windows PowerShell:
.\scripts\install-local.ps1
インストール後は hsr-login コマンドで実行します。
hsr-login --help
バージョンを確認する場合は次を使います。
hsr-login --version
PATH の設定
hsr-login コマンドが見つからない場合は、macOS / Linux では ~/.local/bin、Windows では $HOME\.local\bin を PATH に追加してください。
export PATH="$HOME/.local/bin:$PATH"
PowerShell では次のように追加できます。
$env:Path = "$HOME\.local\bin;$env:Path"
インストール先を変える
インストール先を変えたい場合は、次の環境変数を使えます。
HSR_LOGIN_VENV_DIR=~/.venvs/hsr-login HSR_LOGIN_BIN_DIR=~/bin ./scripts/install-local.sh
PowerShell:
$env:HSR_LOGIN_VENV_DIR = "$HOME\.venvs\hsr-login"
$env:HSR_LOGIN_BIN_DIR = "$HOME\bin"
.\scripts\install-local.ps1
既存の venv を使う
すでに venv を使っている場合は、その venv の中で通常の pip install も使えます。
python3 -m venv .venv
.venv/bin/python -m pip install .
.venv/bin/hsr-login --help
PowerShell:
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install .
.\.venv\Scripts\hsr-login.exe --help
この venv 直下のインストールでは、Python の console script として .\.venv\Scripts\hsr-login.exe が作成されます。上の install-local.ps1 が $HOME\.local\bin に作成する hsr-login.cmd とは別です。
pipx でローカル版を使う
pipx でも、ローカルリポジトリから開発版を CLI としてインストールできます。
pipx install .
Windows の実行ファイル名
Windows PowerShell 版のインストーラは、既定では $HOME\.local\bin に hsr-login.cmd と hsr-login.ps1 を作成し、内部から専用 venv の Scripts\hsr-login.exe を呼びます。
対話的に実行する場合は、$HOME\.local\bin を PATH に追加しておけば hsr-login と入力できます。タスク スケジューラなどで実行ファイルのフルパスを指定する場合は、hsr-login.cmd を指定してください。
PyPI 公開手順
このリポジトリは pyproject.toml の project.scripts で hsr-login = "hsr_login:main" を公開します。wheel / sdist を作る場合は次を実行します。
python -m pip install --upgrade build
python -m build
公開は GitHub Actions の Publish to PyPI ワークフローを使います。PyPI 側で Umichang/hsr-login に対する Trusted Publishing を設定してから、GitHub Release を publish するか、手動で workflow dispatch を実行してください。
リリース前には、hsr_login.py の __version__、README 冒頭の現在バージョン、GitHub Release のタグを同じバージョンにそろえてください。
Cookie の保存先
既定では次の場所に保存します。
~/.config/hsr-login/config.json
Windows では次の場所です。
%APPDATA%\hsr-login\config.json
保存ファイルは可能な環境では 0600 にします。Chromium 系ブラウザーの自動取得用プロファイルは、既定では設定ファイル横の browser-profile に保存します。このプロファイルにもログイン情報が含まれるため、共有やコミットはしないでください。
Safari 自動取得では browser-profile は使いません。Safari WebDriver の隔離された自動化セッションでログインし、そのセッションから Cookie を取得します。
保存先を変える場合は --config または HSR_LOGIN_CONFIG を使ってください。
hsr-login --config ~/.config/hsr-login/main.json login
HSR_LOGIN_CONFIG=~/.config/hsr-login/main.json hsr-login claim
PowerShell:
hsr-login --config "$env:APPDATA\hsr-login\main.json" login
$env:HSR_LOGIN_CONFIG = "$env:APPDATA\hsr-login\main.json"
hsr-login claim
Cookie はログイン情報そのものです。共有リポジトリへコミットしたり、チャットやログへ貼り付けたりしないでください。
定時実行
hsr-login login --check で Cookie を保存したあとは、hsr-login claim を定時実行できます。
macOS / Linux では cron を使えます。まず hsr-login の実行ファイルの場所を確認します。
which hsr-login
crontab -e で cron の設定を開き、たとえば毎日 5:10 に実行する場合は次のように追加します。cron は通常のシェルより PATH が短いため、hsr-login はフルパスで指定してください。
10 5 * * * /Users/yourname/.local/bin/hsr-login claim >> /Users/yourname/.local/state/hsr-login.log 2>&1
設定ファイルの場所を明示したい場合は、HSR_LOGIN_CONFIG を同じ行で指定できます。
10 5 * * * HSR_LOGIN_CONFIG=/Users/yourname/.config/hsr-login/config.json /Users/yourname/.local/bin/hsr-login claim >> /Users/yourname/.local/state/hsr-login.log 2>&1
Windows では cron の代わりに「タスク スケジューラ」を使えます。操作画面から登録する場合は、毎日実行するトリガーを作り、操作として hsr-login.cmd のフルパスと claim 引数を指定してください。
PowerShell から登録する場合は、次のようにタスクを作成できます。
$action = New-ScheduledTaskAction -Execute "$HOME\.local\bin\hsr-login.cmd" -Argument "claim"
$trigger = New-ScheduledTaskTrigger -Daily -At 5:10
Register-ScheduledTask -TaskName "hsr-login claim" -Action $action -Trigger $trigger
HSR_LOGIN_CONFIG を使う場合は、PowerShell 経由で環境変数を指定してから実行します。
$command = "`$env:HSR_LOGIN_CONFIG = '$env:APPDATA\hsr-login\config.json'; & '$HOME\.local\bin\hsr-login.cmd' claim"
$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-NoProfile -Command `"$command`""
$trigger = New-ScheduledTaskTrigger -Daily -At 5:10
Register-ScheduledTask -TaskName "hsr-login claim" -Action $action -Trigger $trigger
対象ページ
このスクリプトは HoYoLAB の「崩壊:スターレイル」チェックインページで使われている hkrpg 用の act_id=e202303301540311 を使います。
https://act.hoyolab.com/bbs/event/signin/hkrpg/index.html?act_id=e202303301540311
HoYoLAB 側の CAPTCHA / リスク判定が出た場合は、CLI では受け取りに失敗します。その場合はブラウザーで手動確認してください。
FAQ
Q. なぜ原神やゼンレスゾーンゼロには対応していないの?
A. どちらも作者が引退状態で、不具合が出た際に即座に対応できないからです。仕組みとしては同じなので、どなたか面倒を見てくださる方がいればワンチャンはあります。自分からはやりません。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hsr_login-0.3.1.tar.gz.
File metadata
- Download URL: hsr_login-0.3.1.tar.gz
- Upload date:
- Size: 18.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
211414bab601e19577a0a972520d603f7f91bda299458a26779deb85142e3673
|
|
| MD5 |
baac230e4cdfa5b019cb7d9837d11433
|
|
| BLAKE2b-256 |
bd0eaa07eb3d13ceb61efee0ffe779bcfd23931a2501d6e51b5e22d858a443bc
|
Provenance
The following attestation bundles were made for hsr_login-0.3.1.tar.gz:
Publisher:
publish.yml on Umichang/hsr-login
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hsr_login-0.3.1.tar.gz -
Subject digest:
211414bab601e19577a0a972520d603f7f91bda299458a26779deb85142e3673 - Sigstore transparency entry: 1651349293
- Sigstore integration time:
-
Permalink:
Umichang/hsr-login@d44da7c3b1586abb358864035261542317a7c878 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/Umichang
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d44da7c3b1586abb358864035261542317a7c878 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file hsr_login-0.3.1-py3-none-any.whl.
File metadata
- Download URL: hsr_login-0.3.1-py3-none-any.whl
- Upload date:
- Size: 16.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a1bb27b5c6a2ad36a054f6a71aca0abb2866cbc7a6f617872b0b689088eaac7b
|
|
| MD5 |
7ecd3b254a73535398c9ae289688803d
|
|
| BLAKE2b-256 |
ca2fc96aeaddf1b1842dc733b9e76d42fdb607ad9ec5990cd01ef84583647db8
|
Provenance
The following attestation bundles were made for hsr_login-0.3.1-py3-none-any.whl:
Publisher:
publish.yml on Umichang/hsr-login
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hsr_login-0.3.1-py3-none-any.whl -
Subject digest:
a1bb27b5c6a2ad36a054f6a71aca0abb2866cbc7a6f617872b0b689088eaac7b - Sigstore transparency entry: 1651349424
- Sigstore integration time:
-
Permalink:
Umichang/hsr-login@d44da7c3b1586abb358864035261542317a7c878 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/Umichang
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d44da7c3b1586abb358864035261542317a7c878 -
Trigger Event:
workflow_dispatch
-
Statement type: