Narou.rb ― 「小説家になろう」「小説を読もう!」ダウンローダ&縦書用整形スクリプト ============================================================ [![Gem Version](https://badge.fury.io/rb/narou.svg)](http://badge.fury.io/rb/narou) [![Join the chat at https://gitter.im/whiteleaf7/narou](https://badges.gitter.im/whiteleaf7/narou.svg)](https://gitter.im/whiteleaf7/narou?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) 概要 - Summary -------------- このアプリは[小説家になろう](http://syosetu.com/)、[小説を読もう!](http://yomou.syosetu.com/)で公開されている小説の管理、 及び電子書籍データへの変換を支援します。縦書き用に特化されており、 横書き用に特化されたWEB小説を違和感なく縦書きで読むことが出来るようになります。 また、校正機能もありますので、小説としての一般的な整形ルールに矯正します。(例:感嘆符のあとにはスペースが必ずくる) 対応小説サイト: + 小説家になろう http://syosetu.com/ + ノクターンノベルズ http://noc.syosetu.com/ + ムーンライトノベルズ http://mnlt.syosetu.com/ + ミッドナイトノベルズ http://mid.syosetu.com/ + ハーメルン https://syosetu.org/ + Arcadia http://www.mai-net.net/ + 暁 http://www.akatsuki-novels.com/ (※300話以上ある作品は未対応) + カクヨム https://kakuyomu.jp/ コンソールで操作するアプリケーションですが、ブラウザを使って直感的に操作することができる WEB UI も搭載!([デモページ](http://whiteleaf7.github.io/narou/demo/)) 主な機能は小説家になろうの小説のダウンロード、更新管理、テキスト整形、AozoraEpub3・kindlegen連携によるEPUB/MOBI出力です。 詳細な説明やインストール方法は **[Narou.rb 説明書](https://github.com/whiteleaf7/narou/wiki)** を御覧ください。 ![WEB UI ScreenCapture](https://raw.github.com/wiki/whiteleaf7/narou/images/webui_cap.png) ![Console ScreenCapture](https://raw.github.com/wiki/whiteleaf7/narou/images/narou_cap.gif) 更新履歴 - ChangeLog -------------------- 3.0.5.1 : 2017/01/17 -------------------- #### 修正内容 - 小説を管理しているフォルダのフルパスに . が含まれている場合にmailコマンドが エラーを出す不具合 3.0.5 : 2017/01/16 ------------------- #### 仕様変更 - mail で送信するファイル名を `小説ID.拡張子` で固定するように変更しました + メールに添付するファイル名に使えない文字が使われる可能性を排除するため #### 修正内容 - mail コマンドで送信できない小説がある 3.0.4 : 2016/12/22 ------------------- #### 修正内容 - ハーメルンのR18小説がダウンロード出来ない問題 3.0.3 : 2016/12/03 ------------------- #### 仕様変更 - カクヨムの小説の最新話掲載日が今までは「最終更新日」から取得していたのを、 目次の一番新しい話の日付を割り当てるように変更 #### 修正内容 - その他の小説の最新話掲載日を確認しようとするとクラッシュする場合がある問題 + カクヨムの小説が含まれていると発生していた 3.0.2 : 2016/11/29 ------------------- #### 修正内容 - narou init が正常に実行できない場合がある 3.0.1 : 2016/11/28 ------------------- #### 修正内容 - 削除された小説を更新しようとするとクラッシュする場合がある 3.0.0 : 2016/11/25 ------------------- #### 追加機能 - update コマンドに --ignore-all オプションを追加しました + 更新対象小説を指定しない場合の全件アップデート処理を無効にします + `narou l | narou u --ignore-all` のように PIPE で繋いだ時、処理件数が偶然 0件になった場合に意図せず全件更新にならない為に使用します - コマンド使用時に `^tag:NAME` でタグの除外指定が出来るようになりました。 先に実装された WEB UI での除外検索は `-tag:NAME` ですが、コマンドラインでは -tag とするとオプションと誤認識されてしまう問題があり、^ に変更しました。 + これに合わせて、WEB UI でも ^tag: を使えるようになります(従来の -tag も 使えます) - WEB UI 関連 - Update ボタンに「タグを指定して更新」を追加しました - Update ボタンの「最新話更新日を確認」を刷新しました。なろうAPIを使用して 一括で更新されたかを確認することが出来るようになります + コマンドライン版の `narou update --gl` も同様の機能に変わっています。 詳細は narou u -h を参照 + > “実際に小説のデータが修正されてからなろうAPIに反映されるまで平均5分 程度(最大2時間)の誤差があります。” ([公式サイト](http://dev.syosetu.com/man/api/)から引用) + ダイアログ内の各チェックリストの項目を独立させたものが、「な」「他」 「(更新アイコン)」ボタンに独立させてあります。詳細はマウスホーバーの説明 を参照 + 最新話掲載日を確認した結果、新着がありそうな小説には「最新話掲載日」の 日付の左上あたりに目印が表示されます - 小説リストに「話数」を追加しました - 小説リストに「更新チェック日」を追加しました - Linux でも Eject ボタンに対応しました + デスクトップにログインした状態での udisks-daemon または udisksd による 自動マウントにのみ対応しています + 使用中のデスクトップの外部で `narou web` を動かしている場合(例えばOS 起動時に自動起動させた場合やログインし直した場合)、権限の問題により Eject が効かない場合があります - 設定に `normalize-filename` を追加しました。ファイル名をNFCで正規化します。 Dropbox 使用時などに合成文字列関係で問題がある場合などに使用して下さい。 正規化後のファイル名が以前の物と変わった場合、別ファイルと認識されるので理解 の上で有効にして下さい - 調査ログ保存時にエラー・警告・INFOの個数を表示するようにしました。 (`convert.inspect` が false の場合) - setting.ini の title_date_format に、小説のタグを埋め込める書式 $ntag を追加 しました。小説にタグがついている場合、全てのタグをカンマ区切りで埋め込めます #### 仕様変更 - WEB UI の小説リストの初期表示状態を項目数増加に伴い整理しました + 初期ソートを「最新話掲載日」に変更 + 種別、DL、更新チェック日、話数は初期状態では非表示 + 項目追加に伴い表示のカスタマイズがリセットされるので再設定をお願いします - 現在ユーザーフォルダに保存されている .narousetting フォルダ(グローバル設定用) を .narou フォルダと同じ場所に移動/コピーした場合、そちらを優先して読みに 行くようになりました + 全てのデータが一つのフォルダにまとめることが出来るようになるので、別PCへの データ移行がしやすくなります + また、現在はサーバー設定がグローバル設定で保存されているため、小説フォルダ を分けても WEB UI サーバのアドレスが同じになってしまっていましたが、別々の アドレス/ポートにすることが可能になります - 複数のタグを同時に指定した場合、同じ小説が複数回対象になっていたのを一度のみ 対象になるように変更しました + 例) A と B というタグをもつ小説があったとして、`narou u A B` で二度更新され てしまっていたのが、一度のみ更新されるようになる - send --without-freeze オプションを指定時、対象小説を指定した場合でも凍結時は 送信されなくなりました。(send.without-freeze を設定していても同じ) + WEB UI ではこれまでと同様に一括時のみ凍結済みは送信されず、個別指定時は凍結 済みでも送信出来ます - send --without-freeze オプションの短縮形として -w を設定しました - send で送信時、対象小説を指定した/しないに関わらずタイムスタンプを必ず比較 して新しければ送信するように変更しました + 必ず送信したい場合は --force オプションを指定して下さい - 栞のバックアップ・レストア時にタイムスタンプを見て新しい場合のみコピーする ように変更しました #### 修正内容 - カクヨムの情報が一部取得出来なくなっていた - mail コマンド送信時に添付ファイルに @ が付いている場合、全角の@に置換する様 にしました - WEB UI でタグ検索時にフィルター末尾に自動で半角空白を挿入するようにしました - list コマンドで検索やタグによる絞り込みと<limit>の指定による表示個数を制限 を併用した場合に、<limit>で指定した分のみしか絞り込み対象になっていなかった - list --filter series を指定時に一つも連載小説が表示されていなかった - Linux 環境で send コマンドが送信出来ない場合があった #119 - 小説IDが一桁の場合に、download.use-subdirectory で作られるサブフォルダに半角 スペースが含まれてしまっていた - WEB UI のフィルターのおいて、本来表示されない内部データにまでマッチングして しまう不具合 - update.logging オプションが有効な場合に、アップデートをしない時でもログを 保存してしまう場合がある不具合 - その他動作の安定性を向上などの細かい修正 ---- 過去の更新履歴は[こちらを参照](https://github.com/whiteleaf7/narou/blob/master/ChangeLog.md) ---- 「小説家になろう」は株式会社ヒナプロジェクトの登録商標です