Releases: toruhashimoto/lapclip-timing-visualizer
v2.1.0 — 全日本選手権ロードレース対応
v2.1.0 — 全日本選手権ロードレース対応
第94回 全日本自転車競技選手権大会 ロード・レース(新潟県南魚沼市・三国川ダム周回コース)に対応しました。
判定・表示
- 「ロード・レース」タイトル(TT語なし)を明示的に マススタート として判定し、TT経路への誤吸着を防止
- 選手セルの 「氏名/チーム名」形式(2026) を分離。
[CODE]名前(TOJ)・氏名のみ(2025)も継続対応 - DNF/DNS/OTL/リタイア/降車 等の未知ステータスは原文を保持して表示し、勝手にDNF扱いしない
- 着順は公式の「位」を尊重(タイムから推定しない)
プレビュー
- SPA
?mock=jprr:カテゴリタブ(Men Elite / MM / Men U23 / Women Elite+WU23 / WM)+周回遅れ(-N周)・集団状況(逃げ/メイン集団/遅れ)の合成データ
検証
- 実2026ライブ(
evt=260628_jprr/ Men U23)でmass_start判定・氏名/チーム分離・集団状況(逃げ3名 / メイン集団97名)を実走データで確認。全テスト 82 件緑
成果物(プラットフォーム別)
lapclip-visualizer.user.js— PC / Android:Tampermonkey ユーザースクリプトlapclip-visualizer-ios.js— iPhone / iPad:ショートカット「Web ページで JavaScript を実行」に全文貼り付け(手順 → ios-shortcut/README.md)lapclip-visualizer-ios-bookmarklet.txt— iPhone / iPad:Safari ブックマークレット(手順 → ios-bookmarklet/README.md)
v2.0.0 — 全日本選手権 個人TT・チームTT 対応
全日本自転車競技選手権大会 個人TT・チームTT 対応
明日(6/6–6/7・宮崎)の 全日本選手権 個人タイムトライアル/チームタイムトライアル に対応しました。
追加
- チームTTの自動判定を拡張:従来の TOJ 大鹿(
ctg=004)に加え、ページのタイトル/見出しに「チームTT / Team Time Trial / TTT」を含む全日本TTTページを team_tt として自動判定(looksLikeTeamTT)。ctg が英字コードでも、サブ秒タイムで個人TTと紛らわしくても正しく判定します。個人TT(「個人タイムトライアル」)は誤判定しません。自動が外れても 個人/チーム 手動トグル で切替可能。 - コース周回数のイベント連動:
teamLaps()が全日本TT(evt=…_jptt)を 2周(28.4km = 14.2km×2)、TOJ 大鹿を 3周 として扱い、チームタワーの Lap 列数・周回タイム取得に反映。
推定(2026 実施要項より, 1周 = 14.2km)
| カテゴリ | 距離 | 周回 |
|---|---|---|
男子エリート 個人TT (ME-T) |
42.6km | 3周 |
男子U23 個人TT (MU-T) |
28.4km | 2周 |
女子E+U23 個人TT (WE-T) |
14.2km | 1周 |
| チームTT | 28.4km | 2周 |
当日の TTT 実 ctg コード/タイトル表記が想定と異なる場合は手動トグルで対応できます。
インストール
- Tampermonkey:
lapclip-visualizer.user.js(自動更新対応) - PCブックマークレット:
lapclip-bookmarklet.js - iOSブックマークレット:
lapclip-ios-bookmarklet.txt - Android WebView:
lapclip-overlay-android.js
v1.3.0 — Team TT: Lap 1/2/3 per-lap splits + Finish total
変更内容
チームTT表示を修正(大鹿ステージ対応)
修正前: Lap 1 / Lap 2 / Finish(3周目タイムが欠落)
修正後: Lap 1 / Lap 2 / Lap 3 / Finish
| 列 | 表示内容 |
|---|---|
| Lap 1 | 1周目タイム(区間) |
| Lap 2 | 2周目タイム(区間) |
| Lap 3 | 3周目タイム(区間・差分計算) |
| Finish | トータルタイム(LapClip FINISH直読み) |
Note: LapClip result.php の FINISH フェーズはトータルタイムを示す。3周目区間タイムは lapsCumMs[2] − lapsCumMs[1] で計算。
アセット
| ファイル | 用途 |
|---|---|
| lapclip-visualizer.user.js | Tampermonkey ユーザースクリプト |
| lapclip-bookmarklet.js | ブックマークレット(PC/Android/iOS) |
v1.2.0 — チームTT 周回タイム自動取得
変更内容
新機能:FINISHチームの周回タイム自動取得
チームTTビューでFINISHしたチームの LAP1/LAP2/LAP3 タイム を laptimes.php から自動取得してタイミングタワーに表示します。
- バックグラウンドで静かに取得(表示をブロックしない)
- 取得済みデータはセッション中キャッシュ(再描画のたびに再取得しない)
- ブックマークレット・ユーザースクリプト両方に対応
バグ修正
- チームTT中間フェーズ「1/3周」「2/3周」形式の正規表現を修正(v1.1.0 の未修正箇所)
インストール
| プラットフォーム | ファイル |
|---|---|
| PC(Tampermonkey等) | lapclip-visualizer.user.js |
| iOS Safari ブックマークレット | �ookmarklet.txt のコードをコピー |
| iOS ショートカット | lapclip-visualizer-ios.js |
| Android WebView | lapclip-overlay.js |
v1.1.0 — team TT intermediate checkpoint fix
Bug fix
チームTTモードで LAP1/LAP2 の時刻が FINISH 列に表示される問題を修正
原因
classifyPhase() のデフォルトフォールスルーが、未知のフェーズラベル("LAP1", "LAP2" など)を時刻ありの場合に FINISH として扱っていた。
修正内容
classifyPhase()にLAP\d+パターンを追加 → RUNNING/intermediate として正しく分類parseTeam()を修正 → 中間チェックポイントの時刻をlapsCumMs[N-1]の正しいスロットへ格納(lapsCumMs[last]/ finishMs への誤格納を解消)- "LAP N"(英語ラベル)と "N周"(日本語表記)の両方に対応
- 回帰テスト追加(LAP1 / LAP2 / FINISH / 0周 の全パターン)
観測された実際のDOMフェーズ(2026 大鹿ステージ)
| フェーズ | 意味 |
|---|---|
FINISH |
公式フィニッシュタイム |
LAP2 |
中間チェックポイント2通過時の累積タイム |
LAP1 |
中間チェックポイント1通過時の累積タイム |
0周 |
未スタート |
v1.0.0 — 自動更新・ゴール後サマリ・実データ検証
v1.0.0 — 自動更新・ゴール後サマリ・実データ検証
Tour of Japan 2026 いなべステージのライブ運用で検証した安定版です。
新機能・改善
- Tampermonkey 自動更新:
@updateURLで最新リリースを追従。一度 v1.0.0 を入れれば次回から自動更新(初回のみ手動インストール)。 - ゴール後のサマリ表示: 過半数が完走すると「レース状況」を集団リストから 完走 / 先頭集団(同着) / リタイア・周回遅れ / 勝者 のサマリへ自動切替(ゴール後に集団が細分化する問題を解消)。
- 回帰テスト追加: いなべ8周ロードの実データ形状(レース中の 逃げ+集団、最終の FINISH集団・大差グループ・
X/8周 SPnリタイア・周回遅れ)を合成フィクスチャで固定(実リザルトは保存しません)。
ライブ検証(いなべ ctg=003)
- レース中: 逃げ5名 / メイン集団82名(+0:30) を正しく判定、
LAP 0/8、SP通過、異常0件。 - 最終: 82完走・5リタイア(SP1, -2/-3周)、パース異常なし。
インストール
- PC: 最新リリース の
lapclip-visualizer.user.js(v1.0.0 以降は自動更新)。 - 拡張不要:
lapclip-bookmarklet.js(ブックマークレット/Android アプリ基盤)。 - iPhone / iPad:
lapclip-visualizer-ios-bookmarklet.txt(Safari ブックマークレット用のjavascript:ワンライナー。お気に入りに保存して1タップ起動。詳細はios-bookmarklet/README.md)。
非公式の個人観戦用の表示補助です。公式結果は LapClip を確認してください。外部送信・保存・再配信は行いません。
🤖 Generated with Claude Code
v0.9.0 — Tour of Japan 全ステージ対応
v0.9.0 — Tour of Japan 全ステージ対応
LapClip のデータ構造からレース種別を自動判定し、各ステージに最適な表示へ切り替えます。
新機能
- マススタート対応(ロード/クリテリウム): 着順は公式リザルト(位)準拠、トップ差(分/秒)、周回遅れ(-N周)、スプリント通過(SPn)。
- ライブ・レース状況: 逃げ/メイン集団/追走/遅れ の集団自動判定、集団間タイム差、残り周回、通過スプリント地点、★お気に入り選手の所属集団。
- レース種別の自動判定: 個人TT/マススタート/チームTT をページ内容から判定(URL 非依存)。個人TT・チームTT は従来どおり。
検証
- vitest + jsdom で 27 テスト(合成フィクスチャ。実リザルトは保存しません)。
- 当日の いなべステージ(ctg=003)スタート前ページで実地検証(mass_start 判定・全員「出走前」・誤った完走/順位/集団を作らないことを確認)。
インストール
- PC(推奨): Tampermonkey に lapclip-visualizer.user.js をインストール。
- 拡張不要: lapclip-bookmarklet.js(ブックマークレット/Android アプリの基盤)。
非公式の個人観戦用の表示補助です。公式結果は必ず LapClip を確認してください。外部送信・保存・再配信は行いません。
🤖 Generated with Claude Code
LapClip Timing Visualizer v0.1.0 (β)
LapClip 公式ページを F1予選風タイミングUIに変換する非公式の表示補助ツール v0.1.0(β / pre-release)。
ブラウザ内で公式ページの DOM を読むだけ — 外部送信なし・保存なし・再配信なし。
⚠️ β / 一部未検証:個人TTは実ページで描画確認済み。チームTT(大鹿)と各配布物の実機動作は当日/環境で要確認。公式結果は必ず LapClip で確認してください。本ツールは LapClip / マトリックス社 / Tour of Japan / 大会運営とは無関係です。
PC・ユーザースクリプト(Tampermonkey)
Tampermonkey 導入 → lapclip-visualizer.user.js を開いて Install → LapClip の result.php を開くと自動表示。
PC・ブックマークレット(拡張不要)
bookmarklet.txt の「方法B(インライン)」の javascript:… を新規ブックマークの URL に保存 → result.php でクリック。
Android(WebView アプリ・未検証の暫定版)
lapclip-visualizer-debug.apk(デバッグ署名・未検証)をサイドロード(「提供元不明のアプリ」許可が必要)。公式ページをアプリ内 WebView で開き、オーバーレイを注入します。
iPhone / iPad(Safari ショートカット・β)
- ショートカットアプリで新規作成 → アクション 「Web ページで JavaScript を実行」 を追加。
lapclip-visualizer-ios.jsの中身を全文コピペ。- 詳細で 「共有シートに表示」をオン(Safari Web ページ / URL を許可)。
- Safari で
result.phpを開く → 共有 → 作成したショートカットを実行 → オーバーレイ表示。- 初回は matrix-sports.jp へのアクセス許可を「許可」。最新化は公式ページを再読み込み後に再実行。
- 詳細・制限(1回実行型など β 事項)はリポジトリの
ios-shortcut/README.md参照。
使い方(共通)
個人 / チーム 切替、⭐お気に入り、更新、「元の表示に戻す」。チームTTで周回データが無い場合は「FINISH only」(推定値は出しません)。