1 unstable release
0.1.0 | Sep 18, 2024 |
---|
#1462 in Command line utilities
91KB
1.5K
SLoC
ncopds
ncopds
is a TUI program for navigating OPDS directories, written in Rust with cursive. By setting up a configuration file, any number of OPDS directories can be visited. From the main interface, users can get a preview of the books available on the catalog and download them directly to a directory of their choice. OPDS search is also supported.
The interface is designed to be responsive, using multiple threads to manage the data coming in from the OPDS server and drive the UI. Locally, ncopds
allows users to manage their downloads directory through a set of basic operations, allowing them to rename and delete files. Downloaded books are opened using your system's preferred handler for .pdfs / .epubs. ncopds
does not store metadatain sqlite databases or clutter up your downloads directory in any way, unlike other ebook managers.
Servers requiring authentication are supported. ncopds
does not store your passwords anywhere. Instead, it relies on your system's keyring to store passwords.
This is still alpha software. Please feel free to submit bugs using the issue tracker and improve upon what you see here.
Using ncopds
There are several menus at the top of the screen. Clicking ncopds
at the top of the screen shows you a help menu with information similar to this README.
View
allows you to add / change connections to OPDS catalogs. When you add a new connection to ncopds
, it will appear at the bottom of the View
menu. Clicking it will render the contents of that catalog in the main view which you can then browse and download to your heart's content.
Edit
lets you change information about a connection, including its name, URL and login credentials. These features are alternatives to directly editing the config file that is located at $HOME/.config/ncopds/config.toml
.
Configuration
The only field that is required for ncopds
to work is the download_directory
field. If you want to add a connection manually, you can write them in this way:
[servers.{NICKNAME_FOR_YOUR_SERVER}]
base_url = "https://example.com/opds" (MUST BE FIRST OPDS PAGE, NOT JUST THE DOMAIN)
username = "rostyhn" (OPTIONAL)
You cannot store a password inside the configuration file. If you include a username inside a connection, ncopds
will ask you for the password the next time you run it.
Configuring the theme
You can also edit the cursive theme by editing the theme file located at $HOME/.config/ncopds/theme.toml
. More documentation on the options is available here. Otherwise, ncopds
will just use your default terminal colors.
Hotkeys
There are some hotkeys available.
Key | Action | Context |
---|---|---|
o | Opens a file | Only when viewing local directory |
d | Deletes a file | Only when viewing local directory |
r | Renames a file | Only when viewing local directory |
/ | Search catalog | Both online and in local directories; only if online directory supports it |
? | Open help screen | Anywhere |
Project TODO
- Support all OPDS acquisition types
- Make search async
- Achieve reasonable test coverage
- Provide more metadata when browsing locally without resorting to storing additional information
- Support for windows / mac
- Improve book rendering
Dependencies
~22–38MB
~600K SLoC