Metadata-Version: 2.1
Name: lspace
Version: 0.2.0
Summary: a ebook manager built around isbnlib
Home-page: https://github.com/puhoy/lspace
Author: jan
Author-email: stuff@kwoh.de
License: UNKNOWN
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: Natural Language :: English
Classifier: Topic :: Utilities
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3
Description-Content-Type: text/markdown
Requires-Dist: alembic (==1.0.10)
Requires-Dist: Click (==7.0)
Requires-Dist: colorama (==0.4.1)
Requires-Dist: EbookLib (==0.17.1)
Requires-Dist: Flask (==1.0.3)
Requires-Dist: Flask-Migrate (==2.5.2)
Requires-Dist: Flask-SQLAlchemy (==2.4.0)
Requires-Dist: flask-whooshee (==0.7.0)
Requires-Dist: html2text (==2018.1.9)
Requires-Dist: isbnlib (==3.9.8)
Requires-Dist: itsdangerous (==1.1.0)
Requires-Dist: Jinja2 (==2.10.1)
Requires-Dist: lxml (==4.3.4)
Requires-Dist: Mako (==1.0.12)
Requires-Dist: MarkupSafe (==1.1.1)
Requires-Dist: PyPDF2 (==1.26.0)
Requires-Dist: python-dateutil (==2.8.0)
Requires-Dist: python-editor (==1.0.4)
Requires-Dist: python-slugify (==3.0.2)
Requires-Dist: PyYAML (==5.1.1)
Requires-Dist: six (==1.12.0)
Requires-Dist: SQLAlchemy (==1.3.4)
Requires-Dist: text-unidecode (==1.2)
Requires-Dist: typing (==3.6.6)
Requires-Dist: Werkzeug (==0.15.4)
Requires-Dist: Whoosh (==2.7.4)
Provides-Extra: dev
Requires-Dist: pytest (==4.5.0) ; extra == 'dev'
Requires-Dist: pytest-cov (==2.7.1) ; extra == 'dev'
Requires-Dist: pytest-cover (==3.0.0) ; extra == 'dev'
Requires-Dist: codecov (==2.0.1) ; extra == 'dev'
Requires-Dist: ipython (==7.5.0) ; extra == 'dev'
Requires-Dist: doit (==0.31.1) ; extra == 'dev'
Provides-Extra: test
Requires-Dist: pytest (==4.5.0) ; extra == 'test'
Requires-Dist: pytest-cov (==2.7.1) ; extra == 'test'
Requires-Dist: pytest-cover (==3.0.0) ; extra == 'test'
Requires-Dist: codecov (==2.0.1) ; extra == 'test'

# L-space

a cli ebook manager built around [isbnlib](https://github.com/xlcnd/isbnlib)

currently supports epub and pdf


[![Build Status](https://travis-ci.org/puhoy/lspace.svg?branch=master)](https://travis-ci.org/puhoy/lspace)

[![codecov](https://codecov.io/gh/puhoy/lspace/branch/master/graph/badge.svg)](https://codecov.io/gh/puhoy/lspace)

## requirements

python >=3.4 and pip should be fine


## installation

`pip install lspace`


## setup 

after installation, you should run

`lspace init`

this will setup a new configuration file, which you can edit to specify the structure of your library, for example.

a default config file would look like this:
```
database_path: sqlite:////home/USER/.config/lspace/lspace.db
file_format: '{SHELVE}/{AUTHORS}_{TITLE}'
library_path: ~/library
loglevel: error
default_shelve: misc
default_author: no author
default_language: no language
default_publisher: no publisher
```

#### database path

path to your database. 
the project uses sqlalchemy, so all databases supported by sqlalchemy should be fine.

#### file_format

template string for storing the plain files in the library.

`{SHELVE}/{AUTHORS}_{TITLE}` would produce files like `scifi/cixin-liu_three-body-problem.epub`

author and title will be automatically slugified for this.

possible variables to use are: AUTHORS, TITLE, SHELVE, YEAR, LANGUAGE, PUBLISHER

#### library path

where the imported files are stored

#### loglevel

#### default_{shelve, author, language, publisher}

the default field names, in case nothing is specified in import


## usage

### importing

`lspace import path/to/ebook.epub`

`lspace import path/to/folder/*`

### searching your library

`lspace list QUERY [--path]`

for example, 

`lspace list programming --path`

would return something like

    /home/USER/library/donald-e-knuth/art-of-computer-programming-volume-2.pdf
    /home/USER/library/donald-e-knuth/the-art-of-computer-programming-volume-1-fascicle-1.pdf

and 

`lspace list dwarf`

would return return

    Peter Tyson - Getting Started With Dwarf Fortress

### removing stuff

`lspace remove QUERY`

this command will ask you before it actually deletes stuff :)

    Peter Tyson - Getting Started With Dwarf Fortress
    /home/USER/library/peter-tyson/getting-started-with-dwarf-fortress.epub
    delete this book from library? [y/N]:

### exporting books


`lspace export QUERY ~/some/folder/ --format mobi`

would convert all books matching on QUERY to 'mobi' and export them to ~/some/folder

to actually export to another format, you need "ebook-convert", which is part of [calibre](https://calibre-ebook.com/)!

## why "L-space"?

its named after discworlds [library-space](https://en.wikipedia.org/wiki/List_of_dimensions_of_the_Discworld#L-space) dimension :)

