# nvl-cli `nvl-cli` is mainly a program to store local copies of online webnovels. Chapters of these novels are stored on disk for later perusing. The main use case for this is to be able to read them without an active and persistent Internet connection. It supports multiple webnovel sources, such as [RoyalRoad], [FreeWebNovel] and [LibRead]. Support for these backends is provided by [`libwebnovel`](https://codeberg.org/paulollivier/libwebnovel). It also has been built in the idea of not trusting the source: chapters may be revised (which is good!) or deleted outright (which is less good for the reader, better for the author), for instance in the case of a publishing deal. There are already quite a few similar efforts made by people worldwide (including me! That's not my first attempt at solving the offline reading issue), but I have often been disappointed, whether due to a lack of documentation, difficulty in adapting the code, or missing features. ## Installation ### From releases You can have a look at the [release page](https://codeberg.org/paulollivier/nvl/releases) and grab the corresponding binary for your platform. ### With cargo ``` $ cargo install nvl-cli $ nvl --help A program to download webnovels Usage: nvl Commands: update Update all novels with their new chapters, downloading them as necessary add Add a novel to be watched list List all currently watched novels delete Delete a novel from watch list self-update Attempts to update itself if a new version is available help Print this message or the help of the given subcommand(s) Options: -h, --help Print help -V, --version Print version ``` ## Usage Add some novels to follow: $ nvl add https://www.royalroad.com/fiction/21220/mother-of-learning Then periodically call `nvl update` (either by hand or a scheduled task by your OS): $ nvl update The chapter files are in your `$XDG_DATA_DIR`, for instance `$HOME/.local/share` on many linuxes. EPUB generation is planned, as well as a simple way to read the chapters in your browser. ## TODO - [x] implement CRUD for novel list: - [x] add novel - [x] delete novel - [x] list novels - [ ] improve CLI interface, for instance with colors. - [x] download images for the chapters/novels. Most of these novels have at least a cover image. - [x] handle chapter collisions, where a chapter may be changed and/or deleted. Print a pretty diff & let the user decide whether to update those chapters. - [ ] add ebook generation - [ ] add the ability to open the system's web browser to read chapters: - [ ] open a chapter from CLI - [ ] open a webui with an iframe wrapping the chapter and buttons enabling chapter browsing - [x] provide self-update - [ ] provide OS packages I also have the kinda stupid dream of making a TUI with [`ratatui`](https://ratatui.rs/) to add, list, delete novels and read chapters. [RoyalRoad]: https://www.royalroad.com/ [FreeWebNovel]: https://freewebnovel.com/ [LibRead]: https://libread.com/