「小説家になろう」のepub化スクリプトを書いてみたなど

ども私です。

相変わらず小説家になろうでのコンテンツあさりは継続していますが、最近は10本ほど更新をおっかけているだけで、新規に読もうとする事はあまりないんですが、久々に新規で読んでみたいと思える作品に出会ったので、いつものようにepub化してiBookで読もうとしたんです。

いつも使ってた、epub化サービスを提供してくださるサイトがメンテ(障害?)で使えない事が判明。

んもーーーー

仕方ないので、別の方法でepub化しようとしたわけなんですけども、世間にはruby製のnarou.rbってのがあって、gemからインストール出来るって話なんですが、gemからインストールにこける。失敗する。なんでや。

しかもこのnarou.rb、javaが必要って事で非常に萎える。javaなんか滅んでしまえ。

と言うわけで、悩んだあげく。自作しました。4時間ほどで。

つーても、epub化処理のプログラミングなんか非常に大変なので、そこはありものを使います。

Re:VIEWっていう国産のデジタル出版ツールを使って、epub化します。

Re:VIEW http://reviewml.org/ja/

このRe:VIEWは独自のフォーマットを用いてますけど、小説家になろうに掲載されてる文字列は、ルビさえ気をつければ問題ないようなものです。

処理の流れとしてはこんな感じ

  1. Re:VIEW作業フォルダの初期化
  2. 小説家になろうのncodeから該当の小説情報を取得し、各話のリンクを取得
  3. HTMLスクレイピングして各話の本文を取得
  4. ルビの処理と改行の処理をしてRe:VIEWのフォルダにぶち込む
  5. Re:VIEWのconfig.ymlとcatalog.ymlをプログラムから修正
  6. epub化する際のstyle.cssをプログラムから修正
  7. Re:VIEWのreview-epubmakerを使ってepub化

やってることは大したことがないので、私は4時間ほどで作れましたけど、普通のプログラマなら1時間程度で作れるんじゃないですかね?

プログラム自体はrubyを主体に、全体的な処理にshell scriptを書いてます。

エラー処理とか無視無視

画像を読み込まないとか、禁則処理がどうだとか、数字の表記がちょっと変だとか問題はありますが、とりあえず読めるので一旦満足してます。

というわけで、おやすみなさい。