これなあに?†
サイト『小説家になろう』および『カクヨム』を愛用していますが、音声で読み上げたいニーズがとても多いのです。
しかし自作小説ならともかく、よその方の作品を読み上げるのは結構面倒でしたし、愛用していたAndroid版のepub化ダウンローダは開発中止になってしまったようで。
そこで、自作でぽちぽちと試作しています。
どんな機能があるの?†
以下の3つの機能があります。
- novel URL だけで、コンソールで該当ページを閲覧できます。(ビューワは、環境変数 PAGER で指定してものが使われます)
- 次のページがあったら、終了時にクリップボードに「 novel 次のURL 」がコピーされています。
- novel --site URL で、そのURLを先頭に次のページを探して次々とダウンロードし、タイトルからepubを生成します。
- 上記ふたつの機能でキャッシュを共有し、がんがん通信できない環境でみも快適な閲覧を可能にします(--forceで強制ダウンロードもできます)
必要な環境†
- bash環境。別にLinuxでなくても、なんなら git on bashでもいいです。
- ただし git on bashを使う場合、PythonはUTF-8で動くよう.bashrcに設定する必要があります。
- Python(3.9〜3.10あたりを推奨)
- Pandoc(なくてもダウンロードはできます。Markdown形式ですが)
- Pythonのモジュールは以下を読み込んでいます。なければpipで追加が必要。
- from bs4 import BeautifulSoup (スクレイピング)
- import codecs (あまりつかってないが)
- import datetime
- import os
- import re
- import random (迷惑行為防止用。連続ダウンロード時にランダムな時間をわざと遅延させる)
- import textfile
- import time
- import urllib.request
- import mojimoji (epubアイコン作りの補助用)
- import pyperclip (単体閲覧の時、終了と同時に次のページをクリップボードにコピーする)
- import subprocess
- import sys
ダウンロード†
インストール方法†
- ダウンロードしたら、tar -Jxvf で展開して2つのファイルをパスの通ったところに置きます。
- alias novel=novel.py
モノは揃ってるのに動かない?†
以下を試してください。それぞれ、固定URL用と連続ダウンロード時の履歴を保管しています。
touch ~/.novelrc
touch ~/.novel2rc
キャッシュは以下に保存されます。古いのを削除したり適宜どうぞ。
$HOME/.noveldir