All Projects → tmplt → bookwyrm

tmplt / bookwyrm

Licence: MIT license
ncurses utility for downloading publicly available ebooks, plugin support

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
python
139335 projects - #7 most used programming language
shell
77523 projects
Nix
1067 projects

Projects that are alternatives of or similar to bookwyrm

Dte
A small, configurable console text editor (moved to https://gitlab.com/craigbarnes/dte)
Stars: ✭ 98 (+216.13%)
Mutual labels:  tui, ncurses
Tuicss
Text-based user interface CSS library
Stars: ✭ 167 (+438.71%)
Mutual labels:  tui, ncurses
Tig
Text-mode interface for git
Stars: ✭ 10,497 (+33761.29%)
Mutual labels:  tui, ncurses
Pacmixer
an alsamixer alike for PulseAudio.
Stars: ✭ 78 (+151.61%)
Mutual labels:  tui, ncurses
todo list rust
Simple Ncurses Todo List ☑
Stars: ✭ 19 (-38.71%)
Mutual labels:  tui, ncurses
Turbo
An experimental text editor based on Scintilla and Turbo Vision.
Stars: ✭ 78 (+151.61%)
Mutual labels:  tui, ncurses
Neix
neix - a RSS/Atom feed reader for your terminal.
Stars: ✭ 128 (+312.9%)
Mutual labels:  tui, ncurses
Nnn
n³ The unorthodox terminal file manager
Stars: ✭ 13,138 (+42280.65%)
Mutual labels:  tui, ncurses
Cursive
A Text User Interface library for the Rust programming language
Stars: ✭ 2,613 (+8329.03%)
Mutual labels:  tui, ncurses
Goaccess
GoAccess is a real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems or through your browser.
Stars: ✭ 14,096 (+45370.97%)
Mutual labels:  tui, ncurses
Flow
A realtime log analyzer
Stars: ✭ 69 (+122.58%)
Mutual labels:  tui, ncurses
NCURSES-Programming-HOWTO-examples
CMake examples for code in http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/index.html
Stars: ✭ 114 (+267.74%)
Mutual labels:  tui, ncurses
Tvision
A modern port of Turbo Vision 2.0, the classical framework for text-based user interfaces. Now cross-platform and with Unicode support.
Stars: ✭ 612 (+1874.19%)
Mutual labels:  tui, ncurses
Pulseaudio Mixer Cli
Interactive python/ncurses UI to control volume of pulse streams
Stars: ✭ 86 (+177.42%)
Mutual labels:  tui, ncurses
Termox
C++17 Terminal User Interface(TUI) Library.
Stars: ✭ 306 (+887.1%)
Mutual labels:  tui, ncurses
Pspg
Unix pager (with very rich functionality) designed for work with tables. Designed for PostgreSQL, but MySQL is supported too. Works well with pgcli too. Can be used as CSV or TSV viewer too. It supports searching, selecting rows, columns, or block and export selected area to clipboard.
Stars: ✭ 1,749 (+5541.94%)
Mutual labels:  tui, ncurses
croatoan
Common Lisp bindings for the ncurses terminal library.
Stars: ✭ 111 (+258.06%)
Mutual labels:  tui, ncurses
mushu
Mushu is a minimalist MPD client with a TUI and an incremental fuzzy finder for your music library
Stars: ✭ 30 (-3.23%)
Mutual labels:  tui, ncurses
Mandown
man-page inspired Markdown viewer
Stars: ✭ 173 (+458.06%)
Mutual labels:  tui, ncurses
Cuishark
A protocol analyzer like a wireshark on CUI. cuishark is using libwireshark to analyze packets. https://cuishark.slankdev.net
Stars: ✭ 208 (+570.97%)
Mutual labels:  tui, ncurses

📜 Bookwyrm

This project has been archived: due to the moving-target nature of ebook sources and a lost interest in the utility I will no longer maintain the code base as it is presented here. Consider this repository abondonware.


bookwyrm(1) is a ncurses utility for downloading ebooks and other publications that are available on the Internet. Given some input data via command line options, bookwyrm will search for any matches and present them to you in a text user interface. Items are found by the help of plugins that parses sources of these items. Currently, the following sources are queried:

  • Library Genesis

Selected items can be viewed for details, printing all bookwyrm knows about the item. When it is implemented, additional details will be fetched from some external database (unless the source itself holds enough data to satisfy), such as the Open Library or WorldCat.

Both bookwyrm and plugins may print logs during run-time. These can be viewed by pressing TAB. All unread logs are printed to stderr upon program termination.

For example, one might run bookwyrm as follows:

$ bookwyrm --title "discrete mathematics" --extension pdf

asciicast

Dependencies

Aside from a C++17-compliant compiler and CMake 3.4.3, bookwyrm depends on a few libraries:

  • fmtlib, for a lot of string formatting;
  • ncurses, for the TUI;
  • pybind11, for Python plugins, and
  • fuzzywuzzy, for fuzzily matching found items with what's wanted.
  • Python 3, for Python plugin support.
  • libcurl, for downloading items over HTTP.

All libraries that are not in bold font are non-essential and may be subject to removal later in development. Some dependencies are submodules in lib/; external dependencies are ncurses, Python 3 and libcurl.

Furthermore, the available Python plugins depend on some external packages. These are listed in etc/requirements.txt.

If you're using Nix(OS), all dependencies are declared in etc/default.nix. A suitable development environment can be generated by sourcing etc/shell.nix with nix-shell(1).

Building instructions

$ git clone https://github.com/tmplt/bookwyrm.git && cd bookwyrm
$ git submodule update --init --recursive
$ mkdir build && cd build
$ cmake .. && make
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].