在庫通知アプリ Free（Stock Watcher Windows版）
バージョン: 10.5（アプリ内表示: v0.10.5）

ソフトの概要:
Web上の商品ページを定期的に確認し、在庫状況の変化から在庫復活の可能性を通知するWindows向けアプリです。
Free版では監視対象の商品を1件まで登録できます。
取得したページの文章と判定キーワードを使って確認するため、すべてのサイトで正確に在庫判定できるとは限りません。

作者情報・連絡先:
作者名: MotaNear Lab
お問い合わせ先: motanear@gmail.com
不具合報告やご質問は上記メールアドレスまでお願いいたします。
不具合報告の際は、アプリのバージョン、Windowsのバージョン、操作内容、表示されたエラーをお知らせください。
設定ファイルやログを送る場合は、通知先のトピック名、Webhook URLなどの秘密情報を取り除いてください。

取り扱い種別:
フリーソフト（無料）
Free版では監視対象の商品を1件まで登録できます。
複数商品の監視に対応した有料版は今後提供予定です。

動作環境:
Windows 10 / Windows 11（64bit）
Webブラウザとインターネット接続が必要です。
配布版にはPythonと必要な実行ライブラリを同梱しています。Pythonや追加ランタイムを別途インストールする手順は不要です。
スマホへのntfy通知を使う場合は、スマホ側のntfyアプリなどで通知を受け取る設定が必要です。
Discord通知を使う場合は、Discord側でWebhookを作成する必要があります。

インストール方法:
1. ZIPファイルを右クリックし、「すべて展開」などでフォルダ全体を展開します。
2. 展開したフォルダを、設定ファイルを書き込める場所に置きます。
3. StockWatcher.exe と _internal フォルダなどを一緒に置いたまま使用してください。
ZIPファイルの中から直接起動したり、StockWatcher.exe だけを取り出したりしないでください。

起動方法:
1. StockWatcher.exe をダブルクリックします。
2. ブラウザで http://127.0.0.1:8501 が開きます。
3. 開かない場合は、手動で http://127.0.0.1:8501 を開いてください。
通常は上記のアドレスですが、8501番ポートが使用中の場合は8502番以降の空きポートで起動します。
その場合は、起動時に開いたブラウザのアドレスを使用してください。
操作画面とアプリ本体は利用者自身のPC上で動作します。
商品ページの確認や外部サービスへの通知にはインターネットを使用します。

初回設定:
画面上部に表示される案内に沿って、商品URL、通知先、通知テスト、1回だけチェック、監視開始の順に進めてください。
画面左側にはアプリのバージョン番号が表示されます。
具体的には、次の順に設定してください。
1. 「設定」タブで商品名と商品URLを入力し、「監視する」にチェックを入れます。
2. 「通知先」で使用する通知方法を選び、必要な項目を入力します。
   PC内通知: 「PC内通知を使う」にチェックを入れます。
   ntfy通知: サーバーURLとトピック名を入力し、スマホ側でも同じトピック名を購読します。
   Discord通知: 使用するチャンネルのWebhook URLを入力します。
3. 「設定を保存」を押します。Free版では、商品URLを2件以上入力した状態では保存できません。
4. 左側の「通知テスト」を押し、設定した通知先に届くか確認します。
   通知テストは、代表として1番目の商品で送信します。在庫判定の結果とは関係なく行うテストです。
5. 「1回だけチェック」を押し、「状態とログ」タブで判定結果と理由を確認します。
6. 問題なければ「監視開始」を押します。停止する場合は「監視停止」を押します。
   通信処理中に停止した場合、実行中の確認処理がすぐには終わらないことがあります。

チェック間隔と判定キーワード:
「共通設定」でチェック間隔を設定できます。初期値は600秒、設定できる最短間隔は300秒です。
サイトごとに在庫表示の言葉が異なります。「1回だけチェック」の結果が想定と違う場合は、商品ページに表示されている言葉を確認してください。
必要に応じて「判定キーワード」の「在庫なし系キーワード」または「在庫あり系キーワード」に、1行に1つずつ追加してください。
変更後は「設定を保存」を押し、もう一度「1回だけチェック」で確認してください。
通常の在庫通知は、保存済みの判定が「在庫なし」から「在庫ありの可能性あり」に変わった場合に送信します。
初回チェックで在庫ありの可能性を検出した場合は、状態の保存のみ行い、在庫通知は送りません。

商品ページを開く:
設定タブまたは状態とログタブの「商品ページを開く」ボタンから、登録した商品ページを開けます。

終了方法:
画面左側の「アプリ終了」を押してください。
監視中のまま終了した場合、次回起動時に監視中へ自動復帰します。
監視を再開させたくない場合は、終了前に「監視停止」を押してください。
ブラウザのタブを閉じるだけでは、アプリ本体は終了しません。「アプリ終了」を使用してください。

自動起動:
画面左側の「Windows起動時に自動起動」をオンにすると、次回Windows起動時にStock Watcherも起動します。
解除したい場合は同じチェックをオフにしてください。
自動起動は、現在置いてある StockWatcher.exe の場所をWindowsに登録します。
アプリのフォルダを移動・削除する場合は、先に自動起動をオフにしてください。
移動後に使う場合は、新しい場所でアプリを起動してから、もう一度自動起動をオンにしてください。

古い自動起動エラーが出る場合:
1. キーボードで Win + R を押します。
2. shell:startup と入力して Enter を押します。
3. StockWatcherStartup.cmd があれば削除します。
4. StockWatcherStartup.vbs が古い場所を参照している場合も削除します。
5. 新しいStock Watcherを起動し、必要なら自動起動をオンにし直してください。
新しいバージョンを一度起動すると、古い StockWatcherStartup.cmd は自動的に削除されます。

同梱ファイル:
- StockWatcher.exe: アプリ本体
- _internal: Python、実行ライブラリ、アプリの動作に必要なファイル
- config.json: 商品URL、通知先、キーワードなどの設定
- README_FOR_APP.txt: この説明

使用中に保存されるファイル:
- state.json: 前回の在庫状態と、次回起動時の監視再開設定
- stock_watcher.log: 動作記録やエラーのログ
これらと config.json は、StockWatcher.exe と同じフォルダに保存されます。

アンインストール方法:
1. 「監視停止」を押します。
2. 「Windows起動時に自動起動」にチェックが入っている場合は、チェックを外します。
3. 「アプリ終了」を押し、終了してからブラウザのタブを閉じます。
4. 展開したフォルダを削除します。config.json、state.json、stock_watcher.log も一緒に削除されます。
   設定やログを残したい場合は、削除前に別の場所へ保管してください。
アプリを起動できず自動起動を解除できない場合は、Win + R で shell:startup を開き、
StockWatcherStartup.vbs と StockWatcherStartup.cmd があれば削除してください。
スタートアップフォルダは、次の場所です。
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup

PC内通知の登録を完全に削除する場合:
PC内通知を使用すると、通知クリック用の登録がWindowsのレジストリに保存されます。
フォルダの削除だけでは、この登録は削除されません。
ほかのStock Watcherを使用していない場合に限り、必要に応じて次の手順で削除できます。
1. Win + R を押し、regedit と入力してレジストリエディターを開きます。
2. 次のキーを開きます。
   HKEY_CURRENT_USER\Software\Classes\stockwatcher-notification
3. stockwatcher-notification キーだけを削除します。他のキーは削除しないでください。
この登録を残しても、スタートアップ登録を解除していれば、この登録によるWindows起動時の自動起動は行われません。

注意:
- 使用中は config.json と _internal フォルダを削除しないでください。
- state.json には前回の在庫状態と、次回起動時に監視を再開するかどうかが保存されます。
- 通知先のトピック名やWebhook URLは公開しないでください。
- ntfyのトピック名を知っている人は、同じ通知を購読できる可能性があります。短く一般的な名前は避け、推測されにくい長い名前にしてください。
- 通知本文には個人情報や重要な情報を入れないでください。
- このアプリはローカルPC上で動き、ブラウザ画面で操作します。
- アプリを閉じている間は監視と通知は行われません。
- 「アプリ終了」を押した後にブラウザが接続エラー表示になる場合がありますが、アプリ本体が終了したためです。その画面は閉じて問題ありません。
- 対象サイトの利用規約を確認し、短すぎる間隔でアクセスしないでください。
- Webサイトの仕様変更によって、正常に在庫判定できない場合があります。
- 通信状況によって、在庫確認や通知の送信に失敗する場合があります。
- このアプリは、各通販サイト・販売店の公式ソフトではありません。
- 商品の購入や在庫確保、通知の即時性・到達を保証するものではありません。購入前に販売店の商品ページで確認してください。
- Free版で登録できる商品は1件までです。
- 本ソフトの利用により生じる問題については、利用状況に応じて利用者ご自身で判断・対応をお願いいたします。
  不具合やご不明な点は、上記のお問い合わせ先へご連絡ください。
