Skip to content

cooViewer 2.0b37

Pre-release
Pre-release

Choose a tag to compare

@shunnag shunnag released this 15 Sep 02:41
· 38 commits to master since this release
e76afd2

書庫エンジンが KaitoKit だけになりました

書庫の読み込みとファイル名の文字コード判定を KaitoKit(MIT) だけで行うようにし、XADMaster と UniversalDetector(LGPL 2.1)への依存をなくしました。アプリには LGPL のコンポーネントが含まれなくなり、ソースの取得にサブモジュールは不要です。

変わること

  • 分割 ZIP(.z01 … .zip)が KaitoKit で開けます。 WinZip / PKZIP / Info-ZIP zip -s が作る分割書庫(ZIP64、100 巻以上、.zx01 … .zipx を含む)に対応しました。最終巻でも途中巻でも開けます。欠けた巻がある場合は開けません(以前と同じ)。
  • ファイル名の文字コード判定が 39 言語・54 のコードページに広がりました。 日本語の判定精度は維持しつつ、ヘブライ語、アラビア語、ペルシア語、タイ語、ベトナム語、ギリシャ語、キリル文字各語、バルト・北欧・中東欧の各語などの旧コードページ名を判定します。UniversalDetector で誤判定していたタイ語・ベトナム語・ギリシャ語の名前(実測)は正しく表示されます。
  • 設定の「詳細」から「書庫エンジン」の選択が無くなりました。 以前に XADMaster を選んでいた場合も、この版では KaitoKit で開きます(設定値は書き換えないので、旧版に戻せば選択は残ります)。
  • 「Archive Engine Status…」(Debug メニュー)は、使用中のエンジンと、メモリマップ読み込みに失敗してファイル読み込みへ切り替えた回数を表示するようになりました。
  • 開発者向け: --audit-archives <folder> で手元の書庫コレクションを GUI なしで一括検査し、開けない書庫や名前・内容のハッシュを TSV に出せます(開発ガイド §2.1)。旧エンジンとの比較オラクルは別リポジトリ cooViewer-bench に移しました。

互換性の注意

  • 名前の付いていないエントリを含む書庫は、そのエントリだけを飛ばして残りを表示します。
  • 開けない書庫は以前のようにフォールバックせず、そのまま「読み込めない」扱いになります。手元の書庫で開けないものがあれば、上記の監査 CLI の出力(該当行と kaito list --raw の結果)を添えてお知らせください。

1.x に戻す場合(データ消去手順)

本の状態(しおり・本ごとの設定・最近開いた項目)は v2 ストア ~/Library/Application Support/jp.coo.cooViewer/BookStates/ に保存されます。v2 ストアを消去する場合は、アプリを終了してからこのフォルダを削除してください。1.x の旧設定は一度だけ取り込まれ、その後は変更されません。

To roll back to 1.x: this app stores per-book state (bookmarks, per-book settings, recents) under ~/Library/Application Support/jp.coo.cooViewer/BookStates/. Quit the app and remove that folder to clear the v2 store; the legacy 1.x keys were imported once and left untouched.