Skip to content

sreedevk/opdstui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TUI OPDS Browser

Introduction

I wanted a way to browse my E-Book library hosted on self-hosted instance of kavita via a TUI interface and read the books using zathura, thus eliminating the need to download books from kavita web interface before being able to read them using zathura. I couldn't find a tool that offered a TUI interface to browser OPDS catalogs, so i decided to write one myself.

This project does not aim to implement the whole OPDS specification.

demo

Sources

This project is hosted on

  • Github - sreedevk/opdstui
  • Radicle - rad:z4QBXcbUuZuJKkN57ysdWbr5iGGZK

Pre Requisites

Runtime Dependencies

  1. zathura
  2. An OPDS Source

Build Dependencies

  1. Nim Compiler
  2. GNU Make
  3. Git

Caveats

I consider this tool feature complete for my own use and any development would just be small improvements to the tool. But if things don't work as expected for you, feel free to open an issue, I'll try and fix / improve things. Please refer to the TODO section on this page to make sure you're not reporting already known issues. As always, pull requests are welcome, but please open an issue before you start working.

Installation

Build From Source

# clone the repository from radicle
rad clone rad:z4QBXcbUuZuJKkN57ysdWbr5iGGZK

# or clone the repository from github
git clone https://github.com/sreedev/opdstui

# cd into opdstui directory
cd opdstui

# (optional) switch to the latest version
git checkout v0.1.4

# run make to ensure that you're able to build the tool first
make 

# copy the binary to /usr/local/bin
sudo make install

Usage

OPDS TUI Browser v0.1.4
Author: Sreedev Kodichath <[email protected]>
OPDS Feed TUI Browser

Usage: opdstui [-h] [-v] [-c=configfile] [-u=opdsurl] [-g]

Required arguments:


Optional arguments:
    -h, --help                          Show this help message and exit.
    -v, --version                       Show version number and exit.
    -c=configfile, --config=configfile  configuration file
    -u=opdsurl, --url=opdsurl           opds url
    -g, --generate-conf                 generate & store configuration

Examples

Persist the options passed, in a configuration file for reuse

opdstui -g -u="https://kavita.selfhosted.something/opds/not-accidentally-leaking-my-key-again/"

Launch OPDS TUI using a url other than the configured url

opdstui -u="https://kavita.selfhosted.something/opds/not-accidentally-leaking-my-key-again/"

Launch OPDS TUI with the url and options in configuration

opdstui

TODO

  1. [BUG] Graceful exit after zathura process has been kicked off
  2. [BUG] List Overflows the UI boundary
  3. [IMPROVE] Write Unit Tests
  4. [-] [FEAT] Add a Search Filter
    • a. [x] [FEAT] Add Search UI
    • b. [ ] [FEAT] Load Search Results Page
    • c. [ ] [IMPROVE] Make Search Spec Parsing Global to Session not Per Page