This is a commandline tool to download and convert novels from numerous sources to epub files
Project description
NovelSave
This is a tool to download and convert webnovels from popular sites to epub.
v0.6.+ is not compatible with previous versions
Install
pip install novelsave
or
pip install git+https://github.com/mHaisham/novelsave.git
Usage
Basic
The most common arguments you'll be using are
-u
--update
- downloads novel webpage and updates novel information on disk. This includes title, author and chapters (including pending chapters).-p
--pending
- download all the pending chapters. Typically uses 4 threads to download chapter pages unless otherwise specified (--thread-count <count>
).-c
--create
- packs the (downloaded chapters of) novel into an epub file.
novelsave <url> -u -p -c
By combining these 3 flags you can update, download, and create epub in a single line.
Pipe
If you are calling novelsave via another program or want to pipe the output to another program like grep
, add the --plain
flag.
This ensures that the output would be as concise as possible.
novelsave --plain <url> -u -p -c
Configurations
You can check the programs configurations as shown below
novelsave config
Banner
___
/\_ \
___ ___ __ __ __\//\ \ ____ __ __ __ __
/' _ `\ / __`\/\ \/\ \ /'__`\\ \ \ /',__\ /'__`\ /\ \/\ \ /'__`\
/\ \/\ \/\ \L\ \ \ \_/ |/\ __/ \_\ \_/\__, `\/\ \L\.\_\ \ \_/ |/\ __/
\ \_\ \_\ \____/\ \___/ \ \____\/\____\/\____/\ \__/.\_\\ \___/ \ \____\
\/_/\/_/\/___/ \/__/ \/____/\/____/\/___/ \/__/\/_/ \/__/ \/____/
v(version) - https://github.com/mHaisham/novelsave
Banner is by default displayed at start-up of the program unless its run in plain mode.
You can change the display settings of banner as shown below.
novelsave config --toggle-banner
Save directory
Novels are by default saved to folder novels
in user home.
Change the novels download directory as shown below.
novelsave config --save-dir <dir>
Help
novelsave --help
usage: novelsave [-h] [--plain] [--no-input] {novel,list,config} ...
This is a tool to download and convert webnovels from popular sites to epub
positional arguments:
{novel,list,config}
novel download, update, and delete novels
list manipulate currently existing novels
config update and view user configurations
optional arguments:
-h, --help show this help message and exit
--plain restrict display output in plain, tabular text format
--no-input don’t prompt or do anything interactive
novelsave novel --help
usage: novelsave novel [-h] [-u] [-p] [-c] [--meta META] [--remove-meta] [--force-cover] [--force-create] [--force-meta] [--username USERNAME]
[--password PASSWORD] [--force-login] [--cookies-from COOKIES_FROM] [--threads THREADS] [--timeout TIMEOUT] [--limit LIMIT]
url
positional arguments:
url url of the specific novel
optional arguments:
-h, --help show this help message and exit
--threads THREADS number of download threads
--timeout TIMEOUT webdriver timeout
--limit LIMIT amount of chapters to download
actions:
-u, --update update novel details
-p, --pending download pending chapters
-c, --create create epub from downloaded chapters
--meta META metadata source url
--remove-meta remove current metadata
--force-cover download and overwrite the existing cover
--force-create force create epub ignoring update status
--force-meta force update metadata ignoring previous metadata
auth:
--username USERNAME username or email field
--password PASSWORD password field; not recommended, refer to README for more details
--force-login remove existing cookies and login
--cookies-from COOKIES_FROM
use cookies from specified browser
novelsave list --help
usage: novelsave list [-h] [--novel NOVEL] [--reset | --delete] [--yes]
optional arguments:
-h, --help show this help message and exit
--novel NOVEL takes the url of the novel and displays meta information
--reset remove chapters and metadata. to be used with --novel
--delete remove everything including compiled epub files. to be used with --novel
--yes skip confirm confirmation used in --reset and --delete
novelsave config --help
usage: novelsave config [-h] [--save-dir SAVE_DIR] [--toggle-banner]
optional arguments:
-h, --help show this help message and exit
--save-dir SAVE_DIR directory for saving novels
--toggle-banner Toggle show and hide for title banner
Login and cookies
Two methods of accessing authenticated content are provided
Browser cookies (Recommended)
Uses cookies from available browsers access content
use syntax --use-cookies [browser]
. for example
novelsave <url> -u -p -c --cookies-from firefox
Requires to be Signed in, in the browser of choice
Available
chrome
firefox
chromium
opera
edge
Login
Username and password are sent to the website server to authenticate.
Cookies are persisted and stored at config's location.
Novelsave attempts to use the available cookies unless:
-
any of the cookies from relevant domains are expired
-
user provides the flag
--force-login
refer to sources to check supported sites.
Module
from novelsave import NovelSave
if __name__ == '__main__':
save = NovelSave(url)
Methods
NovelSave
has 6 methods
update(self, force_cover=False):
metadata(self, url, force=False):
remove_metadata(self, with_source=True):
download(self, thread_count=4, limit=None):
create_epub(self, force=False):
cookie_auth(self, cookie_browser: Union[str, None] = None)
credential_auth(self)
Database
you can access the database by using the db
attribute of NovelSave
save.db
Sources
Sources have been moved to its own package.
pip install novelsave-sources
Disclaimer
We are not affiliated, associated, authorized, endorsed by, or in any way officially connected with the any of the sources mentioned above.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for novelsave-0.7.0a3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dcc986124e76d282b03b53bf8d5847afb5401a08d2b77c44591a439943dea852 |
|
MD5 | fb43cddf91311d4537c97ab21fefff89 |
|
BLAKE2b-256 | 85e6b1417d83befb4d7257a51bfbc1d4493e7cb37e2f2bec6b392398ae7ab677 |