|
pyShelf Open Source Ebook Server 0.8.0
FOSS E-Book Server, https://pyshelf.com
|
Public Member Functions | |
| __init__ (self, config) | |
| get_connection_string (self) | |
| create_tables (self) | |
| insert_book (self, book) | |
| book_paths_list (self) | |
| list() | parse_collections_from_path (self, dict() book) |
| make_collections (self) | |
| get_books (self, collection=None, skip=None, limit=None) | |
| get_book (self, id) | |
| get_collections (self) | |
| get_collection (self, name) | |
| dict | parse_advanced_query (self, str query) |
| fuzzy_search_books (self, str query, int limit=30) | |
Public Attributes | |
| config = config | |
| sql = self.config.catalogue_db | |
| user = self.config.user | |
| password = self.config.password | |
| db_host = self.config.db_host | |
| db_port = self.config.db_port | |
| engine | |
Create a new Storage object.
>>> db = Storage(config)
Parameters
----------
config : Config()
Main program configuration.
Attributes
----------
config : Stores configuration
sql : Database Name
user : Database User Name
password : Database Password
db_host : Database Host
db_port : Database Port
engine : sqlalchemy.create_engine(url, executor, kw)
| src.backend.lib.storage.Storage.__init__ | ( | self, | |
| config ) |
Initialize storage object.
| src.backend.lib.storage.Storage.book_paths_list | ( | self | ) |
Get file paths from database for comparison to system files. Returns ------- _result : ScalarResult Object
| src.backend.lib.storage.Storage.create_tables | ( | self | ) |
Create table structure.
| src.backend.lib.storage.Storage.fuzzy_search_books | ( | self, | |
| str | query, | ||
| int | limit = 30 ) |
| src.backend.lib.storage.Storage.get_book | ( | self, | |
| id ) |
Get book from database.
Parameters
----------
id : int
Book ID to filter by.
Returns
-------
_result : ScalarResult Object
| src.backend.lib.storage.Storage.get_books | ( | self, | |
| collection = None, | |||
| skip = None, | |||
| limit = None ) |
Get books from database.
Parameters
----------
collection : int or None
Collection ID to filter by.
skip : int or None
Number of records to skip (offset).
limit : int or None
Maximum number of records to return.
| src.backend.lib.storage.Storage.get_collection | ( | self, | |
| name ) |
Get collection from database. Returns ------- _result : ScalarResult Object
| src.backend.lib.storage.Storage.get_collections | ( | self | ) |
Get collections from database. Returns ------- _result : ScalarResult Object
| src.backend.lib.storage.Storage.get_connection_string | ( | self | ) |
Get connection string. Engine type references config.json:DB_ENGINE. Returns ------- str : sqlalchemy Connection String
| src.backend.lib.storage.Storage.insert_book | ( | self, | |
| book ) |
Insert a new book into the database.
Parameters
----------
book: dict()
Book object to insert.
Returns
-------
bool
True on success False on failure
| src.backend.lib.storage.Storage.make_collections | ( | self | ) |
Ensure collections exist and link them to books (many-to-many).
| dict src.backend.lib.storage.Storage.parse_advanced_query | ( | self, | |
| str | query ) |
Parse a query like 'title:"dark tower" author:king tags:fantasy'
| list() src.backend.lib.storage.Storage.parse_collections_from_path | ( | self, | |
| dict() | book ) |
Parse book path's to determine common folder structure.
Stores collections based on shared paths.
Parameters
----------
book : dict()
Book object to parse.
Returns
-------
collections : list()
List of collections.
| src.backend.lib.storage.Storage.config = config |
| src.backend.lib.storage.Storage.db_host = self.config.db_host |
| src.backend.lib.storage.Storage.db_port = self.config.db_port |
| src.backend.lib.storage.Storage.engine |
| src.backend.lib.storage.Storage.password = self.config.password |
| src.backend.lib.storage.Storage.sql = self.config.catalogue_db |
| src.backend.lib.storage.Storage.user = self.config.user |