家に適当に転がっているRaspberry Piを使って何か出来ないか、ということで…小説家になろう定期ダウンローダーを仕立ててみる事に。
世の中にはNarou.rbという便利な物が公開されています。これはRubyで書かれたなろう専用ダウンローダーとでも言うべき代物であり、AozoraEpub3と連携して.epubに変換する事も可能な便利ツール。今回の目的にピッタリ、大変便利です。作者様に感謝ですね。
Raspberry Piでの制限として、kindlegenを用いた.mobiの出力が出来ません。kindlegenがARM向けには提供されていませんので。
Kindle向けに使うにはWindowsで別途変換する等の一工夫が必要になりますね。
以下はNarou.rbをとりあえずRaspbian上で動かすまでの記録です。
なお、Raspbianの導入や初期設定等はここでは割愛します。
2.Raspbian Jessie Lite
3.Oracle Java8 JDK (Linux ARM 32 Hard Float ABI)
4.Ruby + RubyGems
5.AozoraEpub3
6.Narou.rb
必要なバージョンはJava8、作業時のARM対応最新版は8u91だった。
ダウンロードした"jdk-8u91-linux-arm32-vfp-hflt.tar.gz"を展開し、/usr/lib/jvm/以下にディレクトリを配置した後、alternativesでパスを設定する。
使用するバージョンによってファイル名は適時読み替えの事。
>~$ tar zxvf jdk-8u91-linux-arm32-vfp-hflt.tar.gz
>~$ sudo mkdir /usr/lib/jvm
>~$ sudo mv jdk1.8.0_91/ /usr/lib/jvm/
>~$ sudo update-alternatives --install "/usr/local/bin/java" "java" "/usr/lib/jdk1.8.0_91/bin/java" 0
インストール後、java -versionにて正常にバージョンが表示されれば完了。
>~$ java -version
>java version "1.8.0_91"
>Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
>Java HotSpot(TM) Client VM (build 25.91-b14, mixed mode)
Narou.rb公式では出来るだけ最新版推奨との事だが、ここでは手軽にapt-getからインストールした。
作業時のRaspbianにおいて導入されるrubyはすでに2.1以降であるため問題はない。
>~$ sudo apt-get install ruby ruby-dev
こちらも念のため、Ruby及びRubyGemsのバージョンを確認する。
>~$ ruby -v
>ruby 2.1.5p273 (2014-11-13) [arm-linux-gnueabihf]
>~$ gem -v
>2.2.2
正常に表示されれば完了。
>~$ mkdir AozoraEpub3
>~$ unzip AozoraEpub3-1.1.0b45.zip -d AozoraEpub3
>~$ sudo AozoraEpub3 /usr/local/
これは展開したディレクトリごとコピーするだけで完了。
これはRubyGemsで一発OK。
>~$ sudo gem install narou
インストールが完了したら初期設定。
Narou.rbで使用するディレクトリを作成する。
今回は/home/pi/以下にnarouディレクトリを作成したが、出来ればUSBメモリ等を使ってシステムのSDカードから分離したほうが良いかもしれない。
>~$ mkdir narou
>~$ cd narou
>~/narou$ narou init
>.narou/ を作成しました
>小説データ/ を作成しました
>------------------------------
>AozoraEpub3の設定を行います
> !!!WARNING!!!
>AozoraEpub3の構成ファイルを書き換えます。narouコマンド用に別途新規インストールしておくことをオススメします
>
>AozoraEpub3のあるフォルダを入力して下さい:
>(未入力でスキップ)
>>/usr/local/AozoraEpub3
>
>(次のファイルを書き換えました)
>/usr/local/AozoraEpub3/chuki_tag.txt
>
>(次のファイルをコピーor上書きしました)
>/usr/local/AozoraEpub3/AozoraEpub3.ini
>/usr/local/AozoraEpub3/template/OPS/css_custom/vertical_font.css
>AozoraEpub3の設定を終了しました
>初期化が完了しました!
>現在のフォルダ下で各種コマンドが使用出来るようになりました。
>まずは narou help で簡単な説明を御覧ください。
これで最小限の初期設定が完了し、/home/pi/narou/ディレクトリ内でnarouコマンドが使用可能になる。
ここでは特定のデバイス向けの設定は行わないが、この場合デフォルトで.epubの出力が行われる。
有名どころとして、アニメ化もされた橙乃ままれ先生のログ・ホライズンで試してみる。
>~/narou$ narou download http://ncode.syosetu.com/n8725k/
>ID:0 ログ・ホライズン のDL開始
~省略~
>ID:0 ログ・ホライズン の変換を開始
>小説状態の調査結果を 調査ログ.txt に出力しました
>縦書用の変換が終了しました
>AozoraEpub3でEPUBに変換しています..........................................................................................................................................変換しました
>[橙乃ままれ] ログ・ホライズン.epub を出力しました
>EPUBファイルを出力しました
>小説の保存フォルダを開きますか (y/n)?: n
エラー無く終了すれば完了。
小説データディレクトリ以下にデータが保存される。
Narou.rbのアップデート処理をcronを用いて定期実行させる事で、小説の保存を自動化する。
これでは都合が悪いので設定で無効にする。
>~/narou$ narou setting convert.no-open=true
> convert.no-open を true に設定しました
これで表示されなくなる。
その為、narouディレクトリに移動した後、アップデートを実行するシェルスクリプトを作成する。
ここではエディタにviを用いているが、nanoだろうが何でも構わない。
>~/narou$ vi narou-update.sh
>#!/bin/sh
>cd /home/pi/narou
>/usr/local/bin/narou update
>~/narou$ chmod +x narou-update.sh
>~$ crontab -e
crontabの内容がエディタで表示されたら都合の良いように編集する。
>0 1 * * * /home/pi/narou/narou-update.sh
この場合だと、毎日1時に実行される。
あまりに頻繁に実行するとなろうのサーバーに負荷が掛かると思われるので、頻度はほどほどに抑える方が良いだろう。
cronの記法については別途確認の事。
以上で、当初の予定であるなろう定期ダウンローダーとしては完成。
後は好きな小説をどんどん登録しておけば勝手にダウンロードしてローカルを最新に保ってくれます。
その他、Narou.rb自体の使い方は公式のドキュメントを参照して下さい。
素直にWindowsで動かす方が賢いかもしれません。
ともあれ、LinuxでNarou.rbを動かす参考にはなるかも知れません。
Debian系ならほぼ同様の手順で導入できるでしょう。
世の中にはNarou.rbという便利な物が公開されています。これはRubyで書かれたなろう専用ダウンローダーとでも言うべき代物であり、AozoraEpub3と連携して.epubに変換する事も可能な便利ツール。今回の目的にピッタリ、大変便利です。作者様に感謝ですね。
Raspberry Piでの制限として、kindlegenを用いた.mobiの出力が出来ません。kindlegenがARM向けには提供されていませんので。
Kindle向けに使うにはWindowsで別途変換する等の一工夫が必要になりますね。
以下はNarou.rbをとりあえずRaspbian上で動かすまでの記録です。
なお、Raspbianの導入や初期設定等はここでは割愛します。
■利用した環境及び導入するソフトウェア
1.Raspberry Pi Model B2.Raspbian Jessie Lite
3.Oracle Java8 JDK (Linux ARM 32 Hard Float ABI)
4.Ruby + RubyGems
5.AozoraEpub3
6.Narou.rb
■導入の手順
1.Javaのインストール
OracleのHPからARM対応のJava JDKをダウンロードする。必要なバージョンはJava8、作業時のARM対応最新版は8u91だった。
ダウンロードした"jdk-8u91-linux-arm32-vfp-hflt.tar.gz"を展開し、/usr/lib/jvm/以下にディレクトリを配置した後、alternativesでパスを設定する。
使用するバージョンによってファイル名は適時読み替えの事。
>~$ tar zxvf jdk-8u91-linux-arm32-vfp-hflt.tar.gz
>~$ sudo mkdir /usr/lib/jvm
>~$ sudo mv jdk1.8.0_91/ /usr/lib/jvm/
>~$ sudo update-alternatives --install "/usr/local/bin/java" "java" "/usr/lib/jdk1.8.0_91/bin/java" 0
インストール後、java -versionにて正常にバージョンが表示されれば完了。
>~$ java -version
>java version "1.8.0_91"
>Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
>Java HotSpot(TM) Client VM (build 25.91-b14, mixed mode)
2.Rubyのインストール
Ruby2.1.0以降をインストールする。Narou.rb公式では出来るだけ最新版推奨との事だが、ここでは手軽にapt-getからインストールした。
作業時のRaspbianにおいて導入されるrubyはすでに2.1以降であるため問題はない。
>~$ sudo apt-get install ruby ruby-dev
こちらも念のため、Ruby及びRubyGemsのバージョンを確認する。
>~$ ruby -v
>ruby 2.1.5p273 (2014-11-13) [arm-linux-gnueabihf]
>~$ gem -v
>2.2.2
正常に表示されれば完了。
3.AozoraEpub3のインストール
AozoraEpub3を/usr/local/以下にインストールする。>~$ mkdir AozoraEpub3
>~$ unzip AozoraEpub3-1.1.0b45.zip -d AozoraEpub3
>~$ sudo AozoraEpub3 /usr/local/
これは展開したディレクトリごとコピーするだけで完了。
4.Narou.rbのインストールと初期設定
いよいよNarou.rbのインストール。これはRubyGemsで一発OK。
>~$ sudo gem install narou
インストールが完了したら初期設定。
Narou.rbで使用するディレクトリを作成する。
今回は/home/pi/以下にnarouディレクトリを作成したが、出来ればUSBメモリ等を使ってシステムのSDカードから分離したほうが良いかもしれない。
>~$ mkdir narou
>~$ cd narou
>~/narou$ narou init
>.narou/ を作成しました
>小説データ/ を作成しました
>------------------------------
>AozoraEpub3の設定を行います
> !!!WARNING!!!
>AozoraEpub3の構成ファイルを書き換えます。narouコマンド用に別途新規インストールしておくことをオススメします
>
>AozoraEpub3のあるフォルダを入力して下さい:
>(未入力でスキップ)
>>/usr/local/AozoraEpub3
>
>(次のファイルを書き換えました)
>/usr/local/AozoraEpub3/chuki_tag.txt
>
>(次のファイルをコピーor上書きしました)
>/usr/local/AozoraEpub3/AozoraEpub3.ini
>/usr/local/AozoraEpub3/template/OPS/css_custom/vertical_font.css
>AozoraEpub3の設定を終了しました
>初期化が完了しました!
>現在のフォルダ下で各種コマンドが使用出来るようになりました。
>まずは narou help で簡単な説明を御覧ください。
これで最小限の初期設定が完了し、/home/pi/narou/ディレクトリ内でnarouコマンドが使用可能になる。
ここでは特定のデバイス向けの設定は行わないが、この場合デフォルトで.epubの出力が行われる。
■Narou.rbの動作確認
実際に何か適当ななろう小説をダウンロードして.epubに変換してみる。有名どころとして、アニメ化もされた橙乃ままれ先生のログ・ホライズンで試してみる。
>~/narou$ narou download http://ncode.syosetu.com/n8725k/
>ID:0 ログ・ホライズン のDL開始
~省略~
>ID:0 ログ・ホライズン の変換を開始
>小説状態の調査結果を 調査ログ.txt に出力しました
>縦書用の変換が終了しました
>AozoraEpub3でEPUBに変換しています..........................................................................................................................................変換しました
>[橙乃ままれ] ログ・ホライズン.epub を出力しました
>EPUBファイルを出力しました
>小説の保存フォルダを開きますか (y/n)?: n
エラー無く終了すれば完了。
小説データディレクトリ以下にデータが保存される。
■cronを用いて定期実行させる
なろうのWeb小説はある日突然削除される事がままある為、お気に入りの小説はローカルに保存しておくと安心出来る。Narou.rbのアップデート処理をcronを用いて定期実行させる事で、小説の保存を自動化する。
1.Narou.rbの設定
デフォルトの設定では、小説のダウンロード後に「保存フォルダを開きますか」プロンプトが表示され、ユーザーがy/nを入力するまで処理が止まってしまう。これでは都合が悪いので設定で無効にする。
>~/narou$ narou setting convert.no-open=true
> convert.no-open を true に設定しました
これで表示されなくなる。
2.シェルスクリプトを作成する
narouコマンドは、narou initを実行したディレクトリでしか使用できない。その為、narouディレクトリに移動した後、アップデートを実行するシェルスクリプトを作成する。
ここではエディタにviを用いているが、nanoだろうが何でも構わない。
>~/narou$ vi narou-update.sh
>#!/bin/sh
>cd /home/pi/narou
>/usr/local/bin/narou update
>~/narou$ chmod +x narou-update.sh
3.cronに登録する
作成したシェルスクリプトをcronに登録する。>~$ crontab -e
crontabの内容がエディタで表示されたら都合の良いように編集する。
>0 1 * * * /home/pi/narou/narou-update.sh
この場合だと、毎日1時に実行される。
あまりに頻繁に実行するとなろうのサーバーに負荷が掛かると思われるので、頻度はほどほどに抑える方が良いだろう。
cronの記法については別途確認の事。
以上で、当初の予定であるなろう定期ダウンローダーとしては完成。
後は好きな小説をどんどん登録しておけば勝手にダウンロードしてローカルを最新に保ってくれます。
その他、Narou.rb自体の使い方は公式のドキュメントを参照して下さい。
■最後に…
ここまでやっておいて何ですが、初代のRaspberry Piではダウンロードはともかく.epubへの変換がかなり重いです。素直にWindowsで動かす方が賢いかもしれません。
ともあれ、LinuxでNarou.rbを動かす参考にはなるかも知れません。
Debian系ならほぼ同様の手順で導入できるでしょう。
コメント
コメントを投稿