mirror of
https://github.com/jo1gi/grawlix.git
synced 2026-07-09 17:15:13 -06:00
eBook cli downloader
* Fix Nextory: bump X-App-Version and handle null series
The Nextory API now rejects the old X-App-Version "5.4.1" with an
AppDeprecateError. Bump it to "2026.05.4" (current Android app version).
Also, the product API can return {"series": null} for standalone books
(not just omit the key entirely). The previous `"series" in product_info`
check passed in that case and we crashed on a NoneType subscript.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Add urllib3 as explicit dependency
grawlix/sources/storytel.py imports urllib3.util.parse_url but urllib3
was only pulled in transitively. Fresh installs (e.g. via uv tool) fail
at import time with ModuleNotFoundError.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Fix invalid escape sequence warning in saxo regex
f"\d+$" produced a SyntaxWarning on Python 3.12 (and will become a
SyntaxError in a future release). The string has no interpolation, so
the raw form r"\d+$" is the right fix.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
||
|---|---|---|
| grawlix | ||
| .gitignore | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| pyproject.toml | ||
| README.md | ||
| setup.py | ||
grawlix
CLI ebook downloader
Supported services
grawlix currently supports downloading from the following sources:
- DC Universe Infinite
- eReolen
- fanfiction.net
- Flipp
- Internet Archive
- Manga Plus
- Marvel Unlimited
- Nextory
- Royal Road
- Saxo
- Storytel / Mofibo
- Webtoons
Installation
From pypi (recommended)
pip install grawlix
From repo (unstable)
git clone https://github.com/jo1gi/grawlix.git
cd grawlix
python3 setup.py install
Authentication
Authentication can either be done with login (username and password) or cookies. Not all sources support both methods.
Login
Some sources require authentication, which can be done either with cli arguments or a config file.
Cli example
grawlix --username "user@example.com" --password "SuperSecretPassword" <url>
Config file example
[sources.name]
username = "user@example.com"
password = "SuperSecretPassword"
Config file should be placed in ~/.config/grawlix/grawlix.toml
Cookies
Some sources can be authenticated with Netscape cookie files. I use this extension to export my cookies from my browser.
Cookies can be placed in current dir as cookies.txt or be given with the
--cookie argument.
Download books
To download a book run:
grawlix [options] <book url>