txlib

Crates.iotxlib
lib.rstxlib
version0.2.1
sourcesrc
created_at2023-05-07 16:54:40.560998
updated_at2024-10-04 17:17:12.113404
descriptiontext based epub library
homepagehttps://codeberg.org/gneb000/txlib
repositoryhttps://codeberg.org/gneb000/txlib
max_upload_size
id859275
size72,812
gneb000 (gneb000)

documentation

https://docs.rs/crate/txlib/latest

README

txlib

Text based epub library manager.

The program recursively scans the provided directory for epub files and creates a table with the following fields (read from the epub metadata):

  • Date (timestamp of date when book was added, YYMMDD format)
  • Read
  • Title
  • Author
  • Pages (page count based on 2000 chars per page)
  • Series (blank by default)
  • Path

The table with the library data is:

  1. printed to stdout (for piping to other programs)

  2. stored in the provided plain text file, that can be manually edited with your preferred text editor. Existing book information has to be edited this way.

A plain text library allows for easy extensibility and integration into any workflow. Some ideas are provided in the Tips section.

Everytime the program runs, removed epub files are deleted from the generated table and new epub files are added.

Usage

$ txlib [OPTIONS] --lib-db <LIB_DB> <EPUB_DIR>

Arguments:

<EPUB_DIR>  Root directory containing epub files

Options:

-l, --lib-db <LIB_DB>  File path to read/store epub library data
-s, --sort <SORT>      Sort by: date, title, author, read, pages or series [default: date]
-r, --reverse          Reverse sorting order
-n, --no-save          Print output without saving to DB
-h, --help             Print help
-V, --version          Print version

Tips

  • The delimiter for the table columns is /, however, the columns are also separated by double-spacing. Thus, if you require to differentiate the delimiter slash from the path slashes (e.g., when piping to another program), you can use ␣␣/ as the delimiter.
  • The ebook library can be queried with fzf while also limiting the search to certain fields. Like in the example below, where the path field is being excluded:
    $ txlib | fzf --reverse --delimiter="/" --nth=..5 --header-lines=1
    
Commit count: 0

cargo fmt