nes_recycle
ネスプレッソの使用済みカプセル回収フォームを、CLI から補助する macOS 向けツールです。
このツールはブラウザ自動操作ではなく、HTTP POST ベースで動作します。
- 初回起動時にプロフィール情報を登録
- プロフィールは macOS Keychain に保存
- カプセル種類のデフォルト値も Keychain に保存
- カプセル種類は 数字 1〜3 で選択
- 実行時は可変項目だけを指定
- まず確認画面相当を生成して主要項目を CLI に表示
Yes/NoでYesを選んだときだけ本送信
フォーム側の HTML が古く、ブラウザ自動化に頼りづらいため、この方式を採用しています。
前提
- macOS
- Homebrew
- フォームサイトへ HTTPS アクセスできること
インストール
Homebrew でインストールします。
brew install rioriost/tap/nes_recycle
使い方
基本実行例:
nes_recycle
日付・時間帯・バッグ数を指定する例:
nes_recycle --date 2026-03-15 --time 午前 --bags 2
カプセル種類を数字で指定する例:
nes_recycle --capsule-type 2
確認画面相当の生成だけ行い、本送信しない例:
nes_recycle --preview-only
確認プロンプトを省略して本送信まで進む例:
nes_recycle --date 2026-03-15 --time 午前 --bags 2 --yes
通信せず、設定内容だけ確認する例:
nes_recycle --dry-run
ヘルプを確認する場合:
nes_recycle --help
動作フロー
この CLI は次の流れで動きます。
- Keychain から保存済みプロフィールを読み込む
--date--time--bags--capsule-typeなどの可変項目を受け取る- フォームの確認画面相当を HTTP POST で生成する
- 主要項目を CLI に表示する
y/nで確認するyのときだけ本送信する
主なオプション
--dateYYYY-MM-DD- 省略時は、引数解析の後でフォームサイトの
get_cal_dayレスポンスを取得して、その時点で指定可能な最小日付を自動設定 - そのため、起動直後ではなく、実際に実行へ進む段階で日付解決を行います
--time指定なし / 午前 / 14時~16時 / 16時~18時 / 18時~21時
--capsule-type1 / 2 / 3- 省略時は Keychain に保存したデフォルト値を使用
- 対応は次の通り
1: オリジナル2: ヴァーチュオ3: オリジナルとヴァーチュオ
--bags1以上10以下- 省略時の初期値は
1
--preview-only- 確認画面相当の生成だけ行い、本送信しない
--yes- 確認プロンプトを省略して本送信まで進む
--dry-run- 通信を行わず、読み込まれた設定内容だけ確認する
--reset-profile- 保存済みプロフィールを破棄して再登録する
プロフィール保存について
このツールは profile.json のようなファイルを使わず、プロフィール情報を macOS Keychain に保存します。
- サービス名:
st.rio.nes_recycle - アカウント名:
profile
保存される項目:
- ネスプレッソのお客様番号
- 姓
- 名
- 郵便番号
- 回収先住所(都道府県から番地まで)
- 回収先住所(アパート・マンション名と部屋番号)
- 電話番号
- メールアドレス
- カプセル種類のデフォルト値
カプセル種類のデフォルト値
カプセル種類は、Keychain には文字列ではなく数字で保存されます。
1: オリジナル2: ヴァーチュオ3: オリジナルとヴァーチュオ
たとえば 2 が保存されていれば、--capsule-type を省略した実行時は ヴァーチュオ として送信されます。
初回起動時
Keychain にプロフィールが未登録の場合、CLI 上で各項目の入力を求められます。
入力後、その内容は Keychain に保存され、次回以降は再利用されます。
カプセル種類のデフォルト値は、次の数字で入力します。
1: オリジナル2: ヴァーチュオ3: オリジナルとヴァーチュオ
再初期化されるケース
保存済みプロフィールに問題がある場合は、再入力フローが始まります。
例:
- 保存済みデータが壊れている
- 必須項目が欠けている
- 値の形式が不正
再登録時の既定値再利用
プロフィールを再登録する場合、既存の保存内容が読めれば、各項目に既定値として表示されます。
そのまま使いたい項目は Enter のみで確定し、変更したい項目だけ入力し直せます。
カプセル種類のデフォルト値は、たとえば 1:オリジナル のような形で既定値表示される想定です。
入力値の簡易バリデーション
初期設定時には、以下の簡易チェックを行います。
- お客様番号
- 7桁または8桁の数字
- 7桁で入力した場合は、保存時に先頭へ
0を補って 8 桁化
- 郵便番号
- 7桁の数字
- 電話番号
- 10桁または11桁の数字
- メールアドレス
- 簡易的なメールアドレス形式
- カプセル種類のデフォルト値
1 / 2 / 3のいずれか
なお、郵便番号や電話番号は、ハイフン付きで入力しても内部で数字のみに正規化されます。
バッグ数は Keychain には保存せず、CLI 実行時に指定します。省略時の初期値は常に 1 です。
日付のデフォルト値について
--date を省略した場合、このツールは固定ロジックを使わず、フォームサイト側のカレンダー設定を取得してデフォルト日付を決めます。
この取得処理は、引数定義時ではなく、引数解析後に必要なときだけ実行されます。
具体的には、フォームトップを取得したうえで get_cal_day のレスポンスを参照し、少なくとも次の値を使って最小指定可能日を計算します。
- 締切時刻(
shime_time_h,shime_time_m) - 何日後から指定可能か(
afer_day_text) - カレンダー制御を使うかどうか(
flg_use_calender)
そのため、従来のような「午前なら翌日、午後なら翌々日」という固定挙動ではなく、フォームサイトがその時点で許可している最小日付に追従します。
また、--date を明示した場合でも、指定日がその最小日付より前なら CLI 側でエラーにします。
この方式により、フォームサイトの一時的な通信失敗があっても、少なくとも引数解析そのものでは落ちにくくなっています。
dry-run について
--dry-run では通信を行わず、現在使用される設定だけを表示します。
nes_recycle --dry-run
出力にはマスク済みのプロフィール情報が含まれます。
画面共有やログ保存時には取り扱いに注意してください。
capsule_type はコードと表示名の両方を確認できる形式を想定しています。
preview-only について
--preview-only では、フォームの確認画面相当を生成し、主要項目を CLI に表示します。
本送信は行いません。
nes_recycle --preview-only
送信前の内容確認に向いています。
Keychain での確認・削除
macOS の「キーチェーンアクセス」アプリや security コマンドで確認・削除できます。
保存内容の確認例:
security find-generic-password -s st.rio.nes_recycle -a profile -w
削除例:
security delete-generic-password -s st.rio.nes_recycle -a profile
削除後に再度 nes_recycle を実行すると、プロフィール再登録フローが始まります。
CLI から再登録したい場合:
nes_recycle --reset-profile
注意事項
- このツールは外部フォームの現行仕様に依存します
- フォーム側の HTML や POST パラメータ仕様が変わると、動作しなくなる可能性があります
- 確認画面の生成に成功しても、本送信後の完了判定はフォーム側表示に依存します
- 最終的には受信メールや実際の受付結果も確認してください
トラブルシューティング
確認画面生成時に入力エラーになる
フォーム側のバリデーション結果が CLI に表示されます。
特に次を確認してください。
- 郵便番号が実在するか
- 電話番号の桁数が正しいか
- 回収希望日が、その時点でフォームサイト側に許可されている最小日付以降か
- バッグ数が
1〜10の範囲か - カプセル種類が
1〜3の範囲か
保存済みプロフィールを修正したい
次のコマンドで再登録できます。
nes_recycle --reset-profile
Keychain の読み込みや保存に失敗する
- macOS の
securityコマンドが利用できるか確認してください - キーチェーンへのアクセス許可ダイアログが出た場合は許可してください
- いったん登録情報を削除して再登録してください
security delete-generic-password -s st.rio.nes_recycle -a profile
nes_recycle --reset-profile
本送信後に成功判定できない
フォーム側の完了画面文言が変わると、自動判定できないことがあります。
その場合は次を確認してください。
- 受信メール
- 実際の受付結果
- フォーム側の表示内容
ライセンス
MIT
Metadata
Release files for nes_recycle 0.0.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| nes_recycle-0.0.6.tar.gz | 37.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nes_recycle-0.0.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 53.0 kB
Release files / nes_recycle-0.0.6.tar.gz
| Download URL | nes_recycle-0.0.6.tar.gz |
|---|---|
| Size | 37.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
152252b71042389cb2d80ada6c7609c24112dec1b59ee16b2fe8643185ad7f6a
|
|
BLAKE2b-256 checksum How to use checksums |
270c88d49ae518e5253f97dd28b633afcb2c08335dfa32c0efdf64c5e2f4f4ce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / nes_recycle-0.0.6-py3-none-any.whl
| Download URL | nes_recycle-0.0.6-py3-none-any.whl |
|---|---|
| Size | 15.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6de57283ccf8a79ab71b82898d63999b7b6c37eb3d0eaa41a9612fe5ff7861c1
|
|
BLAKE2b-256 checksum How to use checksums |
33bc627f033fc10135fa8a7c894ef443a25d65cb3bcf5301ee7b98968cfdc31d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for nes_recycle 0.0.6
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.