TransferTimeTokyo / 東京乗換隊 0.1.5 Windows版
================================================

概要
----

Windows Updaterで登録した最大15件の鉄道駅・バス停の時刻表をPalmへ送り、
Palm本体の時計から次の発車までを毎秒表示します。Palm側は通信しません。

これは経路検索、乗換保証、遅延・運休・列車位置を扱うアプリではありません。
保存した予定時刻とPalm時計から残時間を計算します。

ZIPの内容
-----------

- TransferTimeUpdater.exe
- TransferTimeTokyo_0.1.5_JP.prc
- TransferTimeTokyo_0.1.5_EN.prc
- README-Windows.txt
- PROVIDERS.md
- DATA_FORMAT.md
- THIRD_PARTY_NOTICES.txt
- THIRD_PARTY_LICENSES\（依存ソフトウェアの実ライセンス本文）
- SHA256SUMS.txt

TransferTimeData.pdb、取得済み時刻表とcache、ODPT tokenは同梱していません。
各利用者のPCが取得し、ローカルでPDBを生成します。

初回セットアップ
----------------

1. Palm Desktop / HotSync Managerをインストールし、Palmユーザーを作成します。
2. 日本語版または英語版のPRCをPalm Quick Installへ登録し、先にHotSyncします。
3. TransferTimeUpdater.exeを起動します。
4. 画面に従ってPalmユーザーと最大15件の登録を選びます。1件は
   「事業者×路線/系統×駅/停留所×方面」です。
5. ODPT Basicを利用する場合だけ、自分で取得したODPT developer tokenを設定します。
6. 「今すぐ更新」で時刻表と祝日を取得し、PDB生成結果とHotSyncキュー結果を
   それぞれ確認します。
7. Palm本体でHotSyncを実行します。UpdaterはHotSyncそのものを自動開始しません。

新しいPDBを使うPRCを先に導入してください。日本語版と英語版を同じPalmへ同時に
入れることはできません。どちらも同じcreatorを使用します。

Palmの一覧は1画面5件、最大3画面です。Page Upまたは5-way上・左で前画面、
Page Downまたは5-way下・右で次画面へ移動し、両端ではループします。詳細画面の
Page Up / Page Downまたは5-way上下は、画面の区切りをまたいで全登録を前後移動し、
全登録の両端でもループします。詳細ヘッダーには現在位置を表示します。

同じ事業者・路線・駅／停留所・方面を複数回登録して、別の画面や位置へ配置できます。
完全に同じ設定は更新時に1回だけ取得し、PDBには登録した件数どおり収録します。

データ登録
----------

「主要4事業者」から東京メトロ、都営地下鉄、都営バス、JR東日本を選べます。
東京メトロは `personal` profileだけで、公式の印刷用時刻表PDFを使います。駅ナンバリング
（例: Y21、M17、Mb03）を入力すると現行版を確認するため、ODPT tokenは不要です。
版情報と意味検証済みPDFは24時間cacheし、通信や検証に失敗した場合は検証済みlast-goodを
使います。ODPT Basicは利用者tokenを使う任意の代替経路です。都営地下鉄・都営バスは
token不要の公開ODPTを使います。JR東日本は `personal` profileだけで、公式駅時刻表の
公開HTMLを低頻度に取得します。

ODPT CKANのGTFS専用バスはBasic/open、完全な有効期間、公式download URLを
確認して自動候補にします。GTFSデータリポジトリAPI v2は東京都で当日有効な
CC0/CC BY feedを検索し、更新時に当日のresourceへ解決し直します。Challengeデータは
これらの自動候補に採用しません。利用者がURLまたはローカルZIPを指定するGTFS-JP、
利用者CSVも登録できます。事業者ごとの公開範囲、認証、提供期間、利用条件は
PROVIDERS.mdと最新の配布元カタログを確認してください。

個人用と公開用は別のEXE/PRCではありません。同じアプリで `personal` / `public`
profileを切り替えます。`public` は東京メトロ公式PDF、JR、ODPT Basic、Challenge、
権利未確認CSVをエラーにします。公開配布ZIPにPDB、時刻表cache、tokenは同梱しません。

CSVは1ファイルにつき1登録、UTF-8 BOM付きRFC 4180です。必須列は
calendar,departureです。

calendarの値:
  weekday          平日
  saturday         土曜
  holiday          日曜・祝日
  weekend_holiday  土曜と日曜・祝日へ同じ時刻を展開

departureはHH:MMで、00:00から29:59まで指定できます。

例:

calendar,departure
weekday,06:01
weekday,06:13
saturday,06:10
holiday,06:20
weekend_holiday,24:07

自動更新
--------

初回設定で自動更新を有効にすると、現在のWindowsユーザー専用・最小権限の
タスクを登録します。Windowsログオン時と毎日03:00頃に起動し、同じ処理が
重なった場合は新しい実行を開始しません。ネットワークが使えないときは、次回まで
最後の正常なPDBを保護します。

一過性のtimeoutとHTTP 408/429/500/502/503/504は最大3回取得を試します。
404、証明書・許可host違反、不正JSON、時刻表の意味検証失敗は再試行しません。
ODPT公開カタログは10秒の取得間隔を守るため、1回の取得内では再試行しません。
タスク全体が失敗した場合も、10分間隔で最大3回再実行します。

Updaterをもう一度起動すると、登録路線・Palmユーザーの変更、今すぐ更新、
自動更新の解除ができます。

保存場所
--------

設定、正常な祝日・東京メトロ・JRのcache、最新PDB、log、自動実行用EXEは次へ保存されます。

%LOCALAPPDATA%\DoroDango\TransferTimeTokyo

タスク名:
DoroDango - TransferTimeTokyo Update

ODPT tokenはPDB、log、release ZIP、Git管理ファイルへ保存しません。token設定は
Updaterが案内する現在のWindowsユーザー用の保護領域を使ってください。

日付とダイヤ
------------

ODPT Specific CalendarまたはGTFSの例外日があるときは、通常の曜日や国民の祝日より
優先します。お盆・年末年始・催事日などに専用ダイヤまたは運休となるためです。
例外日がなければ内閣府の祝日CSV、土曜、平日の順で判定します。

24:07などは前サービス日の24時超便として保持します。Palmの時計と日付、timezoneは
日本標準時に正しく設定してください。

通信・検証失敗時
----------------

HTTP 200でもJSON/CSV/ZIP/PDFの構造、適用日、時刻順、文字コード、PDB全体が不正なら
更新を失敗にします。生成bytesを厳格なPDB readerで検証した場合だけ、一時ファイル経由で
最新PDBを原子的に置換するため、途中の取得失敗で以前の正常なPDBを壊しません。

「PDB生成成功」と「Palm DesktopのHotSyncキュー投入成功」は別の結果です。
後者が失敗した場合も、保存場所のTransferTimeData.pdbは残ります。

Challenge 2026の注意
--------------------

Challenge対象データは、単なる私的利用枠ではありません。公共交通オープンデータ
チャレンジ2026へ応募する意思と応募作品の開発目的がある場合だけ、明示的に有効化して
ください。応募締切は2027-01-11 23:59 JST、データ利用許諾は2027-03-14で終了します。
データ区分は利用者が最新のODPTカタログで確認してください。

期限後、UpdaterはChallenge bitを含む既存PDBを削除してエラーにします。設定にChallenge
登録が残る場合も出力PDBを削除して失敗し、該当路線を除いて自動再生成しません。該当登録を
削除した後、更新を再実行してください。0.1.5はODPT/GTFS時刻表responseをcacheしません。
東京メトロの現行版情報と意味検証済みPDFは24時間、JR公式HTMLは6時間cacheします。
構造または時刻表としての意味検証に失敗した応答はlast-goodを置換しません。
Challenge時刻表やそれを復元できるPDBを第三者へ配布しないでください。

個人用データと公開配布
----------------------

東京メトロ公式PDFから取得した時刻表、cache、それを収録したPDBは第三者へ配布しません。
`public` profileではこの登録を拒否します。公開配布物にはPRC、Updater、文書だけを含め、
各利用者の `personal` profileでローカル生成してください。

ODPT基本ライセンスの時刻表を含むPDBは第三者へ配布しません。PRCとUpdaterだけを
配布し、各利用者が自分のtokenでPDBをローカル生成してください。THIRD_PARTY_NOTICES.txtは
一般的な取得元を示します。dataset固有の帰属条件は選択したカタログやfeedで確認し、公開時に
必要な表示を追加してください。

利用者CSVは既定でpersonal_onlyです。第三者へ配る場合は、入力データと生成物を
配布できる権利を利用者自身で確認してください。

Windowsの警告とSHA256
---------------------

このEXEにはデジタル署名がありません。Windows SmartScreenの確認が表示された場合は、
配布元とSHA256SUMS.txtを確認してから実行してください。ZIP内のSHA256SUMS.txtは
ZIP内各ファイルを、dist同梱のSHA256SUMS.txtはrelease artifactを検証します。

Updaterへ組み込まれたCPython、PyInstallerとhooks、Pillow、pypdf、cryptography、
cffi、pycparser、tzdata、Tcl/Tkの実ライセンス本文は
THIRD_PARTY_LICENSES\に収録しています。LICENSE_INDEX.txtには、ビルド時に確認した
各依存のversionと、収録したライセンス本文のSHA-256を記録しています。

Copyright (C) 2026 DoroDango(TM). All rights reserved.
https://dorodango.biz
