Skip to content

xtbconv

watamario15 edited this page Aug 16, 2023 · 2 revisions

xtbconv は、XTBook 辞書生成につきまとう以下の作業を自動化し、1 コマンドで辞書ファイルを得られるスクリプトです。

記事の場合:

  1. 辞書の XML ダンプファイルのダウンロード・展開
  2. MkXTBWikiplexus
  3. YomiGenesis
  4. MkXTBIndexDB
  5. MkRax
  6. 不要な一時ファイルの削除
  7. Info.plist ファイルの配置
  8. (公開用の tarball 生成)

画像の場合:

  1. 画像のダンプファイルのダウンロード・展開
  2. サイズとファイル形式の変換
  3. MkImageComplex
  4. MkXTBIndexDB
  5. 不要な一時ファイルの削除
  6. Info.plist ファイルの配置
  7. (公開用の tarball 生成)

以下に対応します。

  • Wikimedia 財団の wiki(Wikipedia など)の記事
  • Uncyclopedia 財団の wiki(Uncyclopedia など)の記事と画像
    • 記事は公開されているダンプデータが壊れている場合、変換できません
  • Fandom の wiki(Brain Wiki など)の記事
    • ダンプファイルが公開されている wiki に限ります
  • 手動でダウンロードした XML ダンプファイル

準備

予め、MkXTBWikiplexus の環境構築を行っておきます。また、追加で Fandom には 7-Zip(コマンドライン)、画像の変換には ImageMagick が必要です。

xtbconv はこちらに同梱しています。PATH の通っている場所(/usr/local/bin など)に移動しておくと、xtbconv コマンドとして使用できるようになり便利です。

まず、以下の環境変数を設定します。

  • DICTDIR:辞書ファイルの生成先
    • 例:export DICTDIR='/path/to/dictionary'
    • 指定しない場合は、カレントディレクトリに生成されます
  • PLIST:Info.plist 集の場所
    • 例:export PLIST='/path/to/info-plists'
    • xtbconv に同梱しているので、これを展開して適当な場所に配置し、そのパスを指定します
  • WIKIMEDIA_MIRROR:Wikimedia 財団の Wiki をダウンロードする際に使用するミラーサーバ
    • 例:export WIKIMEDIA_MIRROR='https://mirror.accum.se/mirror/wikimedia.org/dumps'
    • 指定しない場合は、公式サーバ(https://dumps.wikimedia.org)が使用されます
  • MECAB_DICT:使用する MeCab 辞書の場所
    • 例:export MECAB_DICT='/var/lib/mecab/dic/ipadic'
    • MeCab 辞書が典型的な場所に配置されている場合や、MkXTBWikiplexus を自分でコンパイルしており mecabrc で辞書の場所が適切に設定されている場合は、この設定は不要です

この設定は、~/.profile に記載しておくことで永続化できます。このファイルに記載した内容は . ~/.profile を実行するか、ターミナルを開き直すことで反映できます。

変換

以下の形式で使用します。エラーが発生した場合はそこで中止するので、エラー出力を確認してやり直してください。なお、同梱の Info.plist は主要なもののみを用意しているため、用意していないものについては Info.plist の追加をスキップした旨のメッセージが出力されます。その場合は、手動で Info.plist を作成して辞書に追加してください。Info.plist 集のフォルダに自作のものを置いておくと、次回以降はそれが使われます。

xtbconv <wiki 提供元> <wiki 短縮名> <日付> [分割サイズ]

以下に使用例を示します。

xtbconv wikimedia jawiki 20230101 1900M    # 2023 年 1 月 1 日の Wikipedia 日本語版記事(配布用 tarball は 1900 MB を上限に区切る)
xtbconv uncyclomedia jaunwiki 20230101 2G  # 2023 年 1 月 1 日の Uncyclopedia 日本語版記事(配布用 tarball は 2 GB を上限に区切る) 
xtbconv uncyclomedia jaunwikiimg 20230101  # 2023 年 1 月 1 日の Uncyclopedia 日本語版画像(日付は出力フォルダ名の決定のみに使用)
xtbconv fandom jabrain 20230101            # 2023 年 1 月 1 日の Brain Wiki(日付は出力フォルダ名の決定のみに使用)
xtbconv wiki.xml somewiki 20230101         # 2023 年 1 月 1 日の somewiki を、事前にダウンロードした wiki.xml から変換(日付は出力フォルダ名の決定のみに使用、wiki 名は出力フォルダ名の決定と Info.plist ファイルの選択に使用)

Wikimedia 財団の wiki の短縮名は、こちらで確認します。Uncyclomedia 財団の wiki の短縮名は、記事は「言語 2 文字 + unwiki」、画像は「言語 2 文字 + unwikiimg」となります。言語 2 文字はこちらで確認します。Fandom の wiki の短縮名は、Special:Statistics(特別:統計)ページ下部のダンプファイルのダウンロードリンクから確認します。例えば、Brain Wiki ではこちらのページです。

Clone this wiki locally