→Pythonに戻る


これなあに?

ひとことでいえば、 ネット小説をコンソールで読んだり、ダウンロードして 縦書きepub 文書にするPythonスクリプト です。

サイト『小説家になろう』および『カクヨム』を愛用していますが、直接読む以上に読み上げツールで音読する場面が多いのです。 特に運転時!!

専用ソフトを使う方法もありますが、流しっぱなしに対応しているものは意外に少なく、ダウンロードで epub化した後、読み上げツールに読ませるか、Google Playにアップロードして Androidスマホで読むかの二択となります。

しかし自作小説ならepub作成も自在ですが、よその方の作品を読み上げるのはたいへん結構面倒なものです。特に先日、愛用していたAndroid版のepub化ダウンローダが開発終了になってしまったのには困ってしまいました。

──ないならば作るだけよ。それが○○○なのでしょう?

おっと、ン十年ぶりかに変な電波喰らいましたか。

まぁそんなわけで、以前スクレイピングの勉強で試作した、コンソールなろうビューワの魔改造をはじめた次第です、はい。

更新履歴

novel.py

novel_core.py

どんな機能があるの?

以下の3つの機能があります。

どんな環境で作っているの?

Linux(メイン)

Windows

動作確認環境

動作制限について

無保証です。

 この手のツールのお約束ですが改めて。

 本ツールは全くの無保証であり、本ツール利用により発生する利害その他に一切の保証をいたしません。

 また『小説家になろう』『カクヨム』様のご意向により公開停止の可能性もございます。そもそも個人の趣味のツールであり、その際にはご容赦ください。

画像は無視します。

テキスト要素のみを取り出すものなので。

epubそのものはもちろん対応しているのですが、うちは対応しておりません。

レイアウトが崩れます。

もともと縦書き→横書き変換のうえに画像も読まないってことでデザインもへちまもないですけども、以下のような事もします。

テキストが以下のように編集されます。

「お待ちください。
 我ら四十七名は命など惜しくはありませぬ。 
 只々、主の無念を晴らす事こそ我らが望み」

↓

「お待ちください。我ら四十七名は命など惜しくはありませぬ。只々、主の無念を晴らす事こそ我らが望み」

あと字下げも行いますが、カッコ類から始まる行は字下げしません(問題があれば知らせてください)

そのほか、今まで観測された不具合

なんか前読んだページがエラーになります

キャッシュが古い?
30日の保管期限をつけましたが、--force で強制更新もお試しください。 特にその話が以前の最終話だった場合、次話ができている事があります

突然に表示がおかしくなった。

サイトのメンテ中の可能性があります。
この場合、キャッシュに保存済みの作品だけ快適に読めます。
過去の例でいきますと、セキュリティ強化で直接アクセスできなくなったケースもありました。
こういうケースの時はケースバイケースで、スクリプトの思い切った構造変更で、うちではすぐに対応できないケースもありえます。

アクセスできるのだが次ページが辿れない、変なごみが入るなど細かい不具合が出る。

 サイト構成が変わった可能性があります。当方も見つけ次第対応いたしますが、サイト構成はサイト『小説家になろう』『カクヨム』様のご意向で変わりますので、対応するまでおかしくなってしまうのはどうしようもありません。

必要な環境

ダウンロード

インストール方法

使い方

普通にテキスト表示

novel URL

ただし、なろうの短編だけは自動判定がうまくないので現状、以下のようにしてください

novel --short URL

ビューワには、環境変数 PAGER で指定したビューワが使われます。なければ less の利用を試みます。

次のページがあると、自動的にクリップボードに novel 次のページのURL がコピーされますので、ペーストして実行すれば次々読めます。

なお、こうすると逆に前話をたどれます。

novel --reverse URL

連続ダウンロード(epub化)

pandocをインストールしたうえで、以下のようにします。

novel --site --author="著者" 第一話のURL

ちなにみに著者を略すと作者が「名無しさん」になります。

モノは揃ってるのに動かない?

以下を試してください。それぞれ、固定URL用と連続ダウンロード時の履歴を保管しています。

touch ~/.novelrc
touch ~/.novel2rc
mkdir ~/.noveldir

キャッシュは以下に保存されます。古いのを削除したり適宜どうぞ。

$HOME/.noveldir

nlist.py 支援スクリプトについて

用途

$HOME/.novelrcに記録されている過去のアクセスURLとメインタイトルを羅列します。

使い方

パスの通ったところに置いて実行してください。

nlist.py download

雑記

2024/10/30 古文拡張とかどうなってんでしょ?

なろう限定なのは、縦書きで見栄えがアレなのの対策テストだからです。半角だけ文字が横倒しになるのは縦書き文書作成歴のある方なら「ああ」と思うでしょう。古くはLaTeXの時代からあるものです。

そういえば昔、LaTeXの日本語古文用拡張ありましたね。あれって pandoc ベースの環境では使えるのですかね?

2024/10/29 キャッシュの有効期限について

従来は無期限にしてたんですが、利便性を考えると期限を設けた方がなさげですね。

ためしに期限一か月くらいにしてみますか。(古くなると更新メッセージと共にサイトから読み直すようにします。しばしお待ちを)

お問い合わせは、こちらへ。

https://mooa9.hatenablog.jp/entry/2024/10/17/072714


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS