Merge pull request #17 from th3r00t/development

Release 0.2.0 to main branch
This commit is contained in:
th3r00t
2019-11-29 22:25:44 -05:00
committed by GitHub
32 changed files with 260 additions and 674 deletions

2
.gitattributes vendored Normal file
View File

@@ -0,0 +1,2 @@
* linguist-vendored
*.py linguist-vendored=false

10
README.md vendored
View File

@@ -1,4 +1,4 @@
# pyShelf 0.1.0
# pyShelf 0.2.0
<p align="center"><b>A simple terminal based ebook server</b></p>
<a href="https://asciinema.org/a/M739CljirFAf9nzeNyNO0113a" target="_blank"><img src="https://asciinema.org/a/M739CljirFAf9nzeNyNO0113a.svg" /></a>
@@ -44,6 +44,14 @@ Currently pyShelf will recursively scan your collection, extract and store some
Django has been implemented to power the frontend experience, and web based database maintenance. The first steps of which are included in this commit. Also the book database has been switched over to reflect this. A properly configured web server is required for hosting the frontend, configuration of which is outside of the scope of this readme. Running via the Django test server might be possible, albeit not recomended.
## New in 0.2.0
* UI
* The UI has moved closer to what I have envisioned for this project, however more features and changes will be coming as needed to both the form and function.
* UX
* Results have now been limited to 20 per page. Currently this is hardcoded in however in the future it will be user definable.
* Previous page & next page buttons have been implemented, and are working.
## In Progress
* UI/UX tweaks, including making the book display responsive. and not so ugly.

2
config.json vendored
View File

@@ -1,6 +1,6 @@
{
"TITLE": "pyShelf E-Book Server",
"VERSION": "0.1.0",
"VERSION": "0.2.0",
"BOOKPATH": "books/",
"DATABASE": "src/db.sqlite3",
"BOOKSHELF": "data/shelf.json"

View File

@@ -1 +1 @@
/home/raelon/Projects/pyShelf/app
/home/raelon/Projects/pyShelf

View File

@@ -1,16 +1,16 @@
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<title>pyShelf Open Source Ebook Server-0.1.0</title>
<title>pyShelf Open Source Ebook Server-0.2.0</title>
<meta name='robots' content='noindex,nofollow' />
<meta name='generator' content='GLOBAL-6.6.3' />
<meta http-equiv='Content-Style-Type' content='text/css' />
<link rel='stylesheet' type='text/css' href='style.css' />
</head>
<body>
<h1 class='title'>pyShelf Open Source Ebook Server-0.1.0</h1>
<h1 class='title'>pyShelf Open Source Ebook Server-0.2.0</h1>
<div class='poweredby'>
Last updated Sun Nov 10 01:10:53 EST 2019<br />
Last updated Fri Nov 29 22:17:44 EST 2019<br />
Powered by <a href='http://www.gnu.org/software/global/' title='Go to the GLOBAL project page.'>GLOBAL-6.6.3</a>.<br />
</div>
<hr />

View File

@@ -1,16 +1,16 @@
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<title>pyShelf Open Source Ebook Server-0.1.0</title>
<title>pyShelf Open Source Ebook Server-0.2.0</title>
<meta name='robots' content='noindex,nofollow' />
<meta name='generator' content='GLOBAL-6.6.3' />
<meta http-equiv='Content-Style-Type' content='text/css' />
<link rel='stylesheet' type='text/css' href='style.css' />
</head>
<body>
<h1 class='title'>pyShelf Open Source Ebook Server-0.1.0</h1>
<h1 class='title'>pyShelf Open Source Ebook Server-0.2.0</h1>
<div class='poweredby'>
Last updated Sun Nov 10 01:10:53 EST 2019<br />
Last updated Fri Nov 29 22:17:44 EST 2019<br />
Powered by <a href='http://www.gnu.org/software/global/' title='Go to the GLOBAL project page.'>GLOBAL-6.6.3</a>.<br />
</div>
<hr />

2
docs/html/HTML/rebuild.sh vendored Executable file → Normal file
View File

@@ -5,4 +5,4 @@
# Usage:
# % sh rebuild.sh
#
cd /home/raelon/Projects/pyShelf/app && GTAGSCONF=':skip=HTML/,HTML.pub/,tags,TAGS,ID,y.tab.c,y.tab.h,gtags.files,cscope.files,cscope.out,cscope.po.out,cscope.in.out,SCCS/,RCS/,CVS/,CVSROOT/,{arch}/,autom4te.cache/,*.orig,*.rej,*.bak,*~,#*#,*.swp,*.tmp,*_flymake.*,*_flymake,*.o,*.a,*.so,*.lo,*.zip,*.gz,*.bz2,*.xz,*.lzh,*.Z,*.tgz,*.min.js,*min.css:langmap=c\:.c.h,yacc\:.y,asm\:.s.S,java\:.java,cpp\:.c++.cc.hh.cpp.cxx.hxx.hpp.C.H,php\:.php.php3.phtml:' htags -g -s -a -n -v -w -t 'pyShelf Open Source Ebook Server-0.1.0' /home/raelon/Projects/pyShelf/docs/html
cd /home/raelon/Projects/pyShelf && GTAGSCONF=':langmap=c\:.c.h,yacc\:.y,asm\:.s.S,java\:.java,cpp\:.c++.cc.hh.cpp.cxx.hxx.hpp.C.H,php\:.php.php3.phtml:skip=HTML/,HTML.pub/,tags,TAGS,ID,y.tab.c,y.tab.h,gtags.files,cscope.files,cscope.out,cscope.po.out,cscope.in.out,SCCS/,RCS/,CVS/,CVSROOT/,{arch}/,autom4te.cache/,*.orig,*.rej,*.bak,*~,#*#,*.swp,*.tmp,*_flymake.*,*_flymake,*.o,*.a,*.so,*.lo,*.zip,*.gz,*.bz2,*.xz,*.lzh,*.Z,*.tgz,*.min.js,*min.css:' htags -g -s -a -n -v -w -t 'pyShelf Open Source Ebook Server-0.2.0' /home/raelon/Projects/pyShelf/docs/html

163
docs/html/index.hhc vendored
View File

@@ -4,169 +4,6 @@
<param name="FrameName" value="right">
</OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Classes"><param name="Local" value="annotated.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Class List"><param name="Local" value="annotated.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="app"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="config"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Config"><param name="Local" value="classapp_1_1config_1_1Config.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="__init__"><param name="Local" value="classapp_1_1config_1_1Config.html#af15b4054633e9a7e8043d2a33b520acb"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="auto_scan"><param name="Local" value="classapp_1_1config_1_1Config.html#aa9aa9dbc4b85147d9c8942034b6fc101"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="book_path"><param name="Local" value="classapp_1_1config_1_1Config.html#ab99604e3c0245e5003a7690af0d6d897"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="book_shelf"><param name="Local" value="classapp_1_1config_1_1Config.html#a56cbc79336b86698a6954a56ee29b167"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="catalogue_db"><param name="Local" value="classapp_1_1config_1_1Config.html#acd81b86d200fed8ea177e16dff358237"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="file_array"><param name="Local" value="classapp_1_1config_1_1Config.html#a0e6130c943b37a28392a2b864670134f"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="TITLE"><param name="Local" value="classapp_1_1config_1_1Config.html#ab98795e4a52ddcde691e5f92ccd9b6f5"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="lib"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="api_hooks"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DuckDuckGo"><param name="Local" value="classapp_1_1lib_1_1api__hooks_1_1DuckDuckGo.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="__init__"><param name="Local" value="classapp_1_1lib_1_1api__hooks_1_1DuckDuckGo.html#ac0c087b439c6b50241b08ee88c44a0d2"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="image_result"><param name="Local" value="classapp_1_1lib_1_1api__hooks_1_1DuckDuckGo.html#ab462c2dc90bdabbea4f885dbffb7d8b5"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="url"><param name="Local" value="classapp_1_1lib_1_1api__hooks_1_1DuckDuckGo.html#a8b5005bada24c559908f9997424ba4ac"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="display"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Frontend"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="__init__"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html#abd77c31f25d1da5035ff7d8aea8c12f9"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="app_body"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html#a8e4f28cd196b0a27f64dcdd98bed0d8c"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="app_footer"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html#acb5a0b8033a7117664e2f35a9c14adf0"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="app_Headers"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html#aec70f2b0df837439d5888feeb4cf484b"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="compile"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html#a8f4d613f2476e124202a62b224d3cc2b"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="html_Headers"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html#ac024ff106efd6c9dd533fb88a982fa5c"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="dimensions"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html#a0aafb783f79a001cb4ef1ebdea5ad701"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="TITLE"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html#ad625c2a8eb2cc4edc168c9559a730c62"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="library"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Catalogue"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="__init__"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a8dcc08440dc107af8d4f8b1afae5f4a3"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="compare_shelf_current"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#ad638411c7d8a2e36102a41384bfe5435"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="extract_content"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#ac8e4c57ce144dc97545f3555ad68df09"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="extract_cover_html"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a00c793aa4f36d6c4623db5509153623a"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="extract_cover_image"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a37bafe1c9580948895f286e85292008b"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="extract_metadata"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#af6d4779a748534f2b6d2226de791a636"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="filter_books"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a342877aaeeceab24e5ccbb746eb276a9"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="import_books"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a7f0c65ef83c057a2954bcf065bf32a18"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="process_book"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#acd24ea8f14df2ef4bdfdb56f5480dea8"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="scan_book"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a91f52410ba00b1472fa91f20162a1e8d"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="scan_folder"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a5e1da43ab392030681852fc911518526"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="books"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a74b9d8ea8187dab68396d11fb4f98542"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="cover_regx"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a800a0daa483d47a48f6408cb0363324e"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="file_list"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#ac315d34880d0e0c979102cd69a8b6114"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="html_regx"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a5b300eec702111b27c7b1ff874fc3d62"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="opf_regx"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a7cc277ffec6fc7c8e92d5a576699eaf4"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="pyShelf"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="BookDisplay"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="__init__"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html#a01985382ff426043aaabefa7a67524c8"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="booksPerPage"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html#a6ea053a288f542ca0c22dbb8f4317a7b"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="nextPage"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html#af6cc14d26687f8fde0f71c9130993409"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="previousPage"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html#aadf769d9a6b619aa349f321f79a5dea2"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="books_per_page"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html#a5fadf5b647c5f27d6ae49c6a68f54923"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="current_page"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html#aff6ec0378811d900c8768354aa08a66b"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="thumbnail_scale"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html#a45ff2e061ddbb99b898ac9b4c1fe1b96"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="thumbnail_size"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html#a8cc5c6844169ecb21e1e2e0eb2f8d4cc"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="total_pages"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html#a3580927488f4d8571fcd4c7bd7ae7481"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="BookServer"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="__init__"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html#ab9842f8c0937e6e23fa9562ff4c9d9b6"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="close"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html#a4b038dcd5db1d7ec8b7c66b9a71e09bc"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="close_prompt"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html#afdf0fe4499eb1e4d462fa24d6f542b90"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="run"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html#a6a62aedc980975e37cd10eb6006b18a3"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="handler"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html#a4281a91a7626aff5f51976bba36d867f"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="httpd"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html#a1bd70f6445acfc4433fb41056d0475e6"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="server_address"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html#a2f9d0ae20161d4ef5e49bdbb95ca813e"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="InitFiles"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1InitFiles.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="__init__"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1InitFiles.html#a8c40ce7b79e78997d50adf97892f4e47"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="CreateFile"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1InitFiles.html#ade78b7d349aed178101324be3c385df4"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="RequestHandler"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1RequestHandler.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="do_GET"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1RequestHandler.html#a1eb370eee172882f2326b061f607ade8"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="path"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1RequestHandler.html#a062e40dcea67408d1cf36b0319316408"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="storage"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Storage"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="__init__"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#aeb4e5e1f4d450de77e71b1b8fd4b30ba"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="book_paths_list"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#aa3319ca207a2d9b087307b71246d13b8"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="close"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#a13cdec64eb57f19ce8722cbdd8d4a643"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="commit"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#a26d852257563516565d99902170bbb22"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="create_tables"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#ab8a381a4ce3f5ab9aa070d286d41d6ec"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="database"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#a660085b886b7ceca2870f5d55b98ac7f"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="insert_book"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#aeef7a8b53b250749b2147649a32f6ec9"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="cursor"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#a9166da1804181b156a264498c6df9301"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="db"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#a0709199a9d06fb733534bc98c5266b40"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="db_file"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#a75b823ba5e218adbcb226fe62c8a4d87"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
</UL>
</UL>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Class Index"><param name="Local" value="classes.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Class Hierarchy"><param name="Local" value="hierarchy.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="app.lib.pyShelf.BookDisplay"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="app.lib.pyShelf.BookServer"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="app.lib.library.Catalogue"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="app.config.Config"><param name="Local" value="classapp_1_1config_1_1Config.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="app.lib.api_hooks.DuckDuckGo"><param name="Local" value="classapp_1_1lib_1_1api__hooks_1_1DuckDuckGo.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="app.lib.display.Frontend"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="app.lib.pyShelf.InitFiles"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1InitFiles.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="app.lib.storage.Storage"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="BaseHTTPRequestHandler"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="app.lib.pyShelf.RequestHandler"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1RequestHandler.html"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Class Members"><param name="Local" value="functions.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="All"><param name="Local" value="functions.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Functions"><param name="Local" value="functions_func.html"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Files"><param name="Local" value="files.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="File List"><param name="Local" value="files.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="app"><param name="Local" value="dir_d422163b96683743ed3963d4aac17747.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="lib"><param name="Local" value="dir_9dc6c7acf21934bbaaf79b41db58c4e7.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="__init__.py"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="api_hooks.py"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="display.py"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="library.py"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="pyShelf.py"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="storage.py"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="__init__.py"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="config.py"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="main.py"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
</UL>
</UL>
</BODY>
</HTML>

329
docs/html/index.hhk vendored
View File

@@ -4,335 +4,6 @@
<param name="FrameName" value="right">
</OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1config_1_1Config.html#af15b4054633e9a7e8043d2a33b520acb"><param name="Name" value="__init__"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1config_1_1Config.html#af15b4054633e9a7e8043d2a33b520acb"><param name="Name" value="app::config::Config"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1api__hooks_1_1DuckDuckGo.html#ac0c087b439c6b50241b08ee88c44a0d2"><param name="Name" value="__init__"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1api__hooks_1_1DuckDuckGo.html#ac0c087b439c6b50241b08ee88c44a0d2"><param name="Name" value="app::lib::api_hooks::DuckDuckGo"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html#abd77c31f25d1da5035ff7d8aea8c12f9"><param name="Name" value="__init__"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html#abd77c31f25d1da5035ff7d8aea8c12f9"><param name="Name" value="app::lib::display::Frontend"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a8dcc08440dc107af8d4f8b1afae5f4a3"><param name="Name" value="__init__"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a8dcc08440dc107af8d4f8b1afae5f4a3"><param name="Name" value="app::lib::library::Catalogue"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html#a01985382ff426043aaabefa7a67524c8"><param name="Name" value="__init__"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html#a01985382ff426043aaabefa7a67524c8"><param name="Name" value="app::lib::pyShelf::BookDisplay"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html#ab9842f8c0937e6e23fa9562ff4c9d9b6"><param name="Name" value="__init__"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html#ab9842f8c0937e6e23fa9562ff4c9d9b6"><param name="Name" value="app::lib::pyShelf::BookServer"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1InitFiles.html#a8c40ce7b79e78997d50adf97892f4e47"><param name="Name" value="__init__"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1InitFiles.html#a8c40ce7b79e78997d50adf97892f4e47"><param name="Name" value="app::lib::pyShelf::InitFiles"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#aeb4e5e1f4d450de77e71b1b8fd4b30ba"><param name="Name" value="__init__"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1config_1_1Config.html"><param name="Name" value="app::config::Config"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1config_1_1Config.html"><param name="Name" value="app::config::Config"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1config_1_1Config.html#af15b4054633e9a7e8043d2a33b520acb"><param name="Name" value="__init__"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1config_1_1Config.html"><param name="Name" value="app::config::Config"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1config_1_1Config.html#aa9aa9dbc4b85147d9c8942034b6fc101"><param name="Name" value="auto_scan"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1config_1_1Config.html"><param name="Name" value="app::config::Config"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1config_1_1Config.html#ab99604e3c0245e5003a7690af0d6d897"><param name="Name" value="book_path"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1config_1_1Config.html"><param name="Name" value="app::config::Config"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1config_1_1Config.html#a56cbc79336b86698a6954a56ee29b167"><param name="Name" value="book_shelf"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1config_1_1Config.html"><param name="Name" value="app::config::Config"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1config_1_1Config.html#acd81b86d200fed8ea177e16dff358237"><param name="Name" value="catalogue_db"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1config_1_1Config.html"><param name="Name" value="app::config::Config"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1config_1_1Config.html#a0e6130c943b37a28392a2b864670134f"><param name="Name" value="file_array"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1config_1_1Config.html#ab98795e4a52ddcde691e5f92ccd9b6f5"><param name="Name" value="app::config::Config"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1api__hooks_1_1DuckDuckGo.html"><param name="Name" value="app::lib::api_hooks::DuckDuckGo"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1api__hooks_1_1DuckDuckGo.html"><param name="Name" value="app::lib::api_hooks::DuckDuckGo"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1api__hooks_1_1DuckDuckGo.html#ac0c087b439c6b50241b08ee88c44a0d2"><param name="Name" value="__init__"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1api__hooks_1_1DuckDuckGo.html"><param name="Name" value="app::lib::api_hooks::DuckDuckGo"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1api__hooks_1_1DuckDuckGo.html#ab462c2dc90bdabbea4f885dbffb7d8b5"><param name="Name" value="image_result"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1api__hooks_1_1DuckDuckGo.html#a8b5005bada24c559908f9997424ba4ac"><param name="Name" value="app::lib::api_hooks::DuckDuckGo"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html"><param name="Name" value="app::lib::display::Frontend"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html"><param name="Name" value="app::lib::display::Frontend"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html#abd77c31f25d1da5035ff7d8aea8c12f9"><param name="Name" value="__init__"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html"><param name="Name" value="app::lib::display::Frontend"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html#a8e4f28cd196b0a27f64dcdd98bed0d8c"><param name="Name" value="app_body"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html"><param name="Name" value="app::lib::display::Frontend"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html#acb5a0b8033a7117664e2f35a9c14adf0"><param name="Name" value="app_footer"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html"><param name="Name" value="app::lib::display::Frontend"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html#aec70f2b0df837439d5888feeb4cf484b"><param name="Name" value="app_Headers"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html"><param name="Name" value="app::lib::display::Frontend"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html#a8f4d613f2476e124202a62b224d3cc2b"><param name="Name" value="compile"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html"><param name="Name" value="app::lib::display::Frontend"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html#a0aafb783f79a001cb4ef1ebdea5ad701"><param name="Name" value="dimensions"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html"><param name="Name" value="app::lib::display::Frontend"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html#ac024ff106efd6c9dd533fb88a982fa5c"><param name="Name" value="html_Headers"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html#ad625c2a8eb2cc4edc168c9559a730c62"><param name="Name" value="app::lib::display::Frontend"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html"><param name="Name" value="app::lib::library::Catalogue"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html"><param name="Name" value="app::lib::library::Catalogue"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a8dcc08440dc107af8d4f8b1afae5f4a3"><param name="Name" value="__init__"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html"><param name="Name" value="app::lib::library::Catalogue"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a74b9d8ea8187dab68396d11fb4f98542"><param name="Name" value="books"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html"><param name="Name" value="app::lib::library::Catalogue"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#ad638411c7d8a2e36102a41384bfe5435"><param name="Name" value="compare_shelf_current"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html"><param name="Name" value="app::lib::library::Catalogue"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a800a0daa483d47a48f6408cb0363324e"><param name="Name" value="cover_regx"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html"><param name="Name" value="app::lib::library::Catalogue"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#ac8e4c57ce144dc97545f3555ad68df09"><param name="Name" value="extract_content"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html"><param name="Name" value="app::lib::library::Catalogue"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a00c793aa4f36d6c4623db5509153623a"><param name="Name" value="extract_cover_html"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html"><param name="Name" value="app::lib::library::Catalogue"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a37bafe1c9580948895f286e85292008b"><param name="Name" value="extract_cover_image"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html"><param name="Name" value="app::lib::library::Catalogue"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#af6d4779a748534f2b6d2226de791a636"><param name="Name" value="extract_metadata"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html"><param name="Name" value="app::lib::library::Catalogue"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#ac315d34880d0e0c979102cd69a8b6114"><param name="Name" value="file_list"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html"><param name="Name" value="app::lib::library::Catalogue"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a342877aaeeceab24e5ccbb746eb276a9"><param name="Name" value="filter_books"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html"><param name="Name" value="app::lib::library::Catalogue"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a5b300eec702111b27c7b1ff874fc3d62"><param name="Name" value="html_regx"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html"><param name="Name" value="app::lib::library::Catalogue"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a7f0c65ef83c057a2954bcf065bf32a18"><param name="Name" value="import_books"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html"><param name="Name" value="app::lib::library::Catalogue"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a7cc277ffec6fc7c8e92d5a576699eaf4"><param name="Name" value="opf_regx"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html"><param name="Name" value="app::lib::library::Catalogue"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#acd24ea8f14df2ef4bdfdb56f5480dea8"><param name="Name" value="process_book"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html"><param name="Name" value="app::lib::library::Catalogue"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a91f52410ba00b1472fa91f20162a1e8d"><param name="Name" value="scan_book"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a5e1da43ab392030681852fc911518526"><param name="Name" value="app::lib::library::Catalogue"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html"><param name="Name" value="app::lib::pyShelf::BookDisplay"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html"><param name="Name" value="app::lib::pyShelf::BookDisplay"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html#a01985382ff426043aaabefa7a67524c8"><param name="Name" value="__init__"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html"><param name="Name" value="app::lib::pyShelf::BookDisplay"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html#a5fadf5b647c5f27d6ae49c6a68f54923"><param name="Name" value="books_per_page"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html"><param name="Name" value="app::lib::pyShelf::BookDisplay"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html#a6ea053a288f542ca0c22dbb8f4317a7b"><param name="Name" value="booksPerPage"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html"><param name="Name" value="app::lib::pyShelf::BookDisplay"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html#aff6ec0378811d900c8768354aa08a66b"><param name="Name" value="current_page"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html"><param name="Name" value="app::lib::pyShelf::BookDisplay"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html#af6cc14d26687f8fde0f71c9130993409"><param name="Name" value="nextPage"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html"><param name="Name" value="app::lib::pyShelf::BookDisplay"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html#aadf769d9a6b619aa349f321f79a5dea2"><param name="Name" value="previousPage"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html"><param name="Name" value="app::lib::pyShelf::BookDisplay"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html#a45ff2e061ddbb99b898ac9b4c1fe1b96"><param name="Name" value="thumbnail_scale"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html"><param name="Name" value="app::lib::pyShelf::BookDisplay"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html#a8cc5c6844169ecb21e1e2e0eb2f8d4cc"><param name="Name" value="thumbnail_size"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html#a3580927488f4d8571fcd4c7bd7ae7481"><param name="Name" value="app::lib::pyShelf::BookDisplay"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html"><param name="Name" value="app::lib::pyShelf::BookServer"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html"><param name="Name" value="app::lib::pyShelf::BookServer"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html#ab9842f8c0937e6e23fa9562ff4c9d9b6"><param name="Name" value="__init__"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html"><param name="Name" value="app::lib::pyShelf::BookServer"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html#a4b038dcd5db1d7ec8b7c66b9a71e09bc"><param name="Name" value="close"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html"><param name="Name" value="app::lib::pyShelf::BookServer"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html#afdf0fe4499eb1e4d462fa24d6f542b90"><param name="Name" value="close_prompt"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html"><param name="Name" value="app::lib::pyShelf::BookServer"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html#a4281a91a7626aff5f51976bba36d867f"><param name="Name" value="handler"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html"><param name="Name" value="app::lib::pyShelf::BookServer"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html#a1bd70f6445acfc4433fb41056d0475e6"><param name="Name" value="httpd"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html"><param name="Name" value="app::lib::pyShelf::BookServer"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html#a6a62aedc980975e37cd10eb6006b18a3"><param name="Name" value="run"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html#a2f9d0ae20161d4ef5e49bdbb95ca813e"><param name="Name" value="app::lib::pyShelf::BookServer"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1InitFiles.html"><param name="Name" value="app::lib::pyShelf::InitFiles"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1InitFiles.html"><param name="Name" value="app::lib::pyShelf::InitFiles"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1InitFiles.html#a8c40ce7b79e78997d50adf97892f4e47"><param name="Name" value="__init__"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1InitFiles.html#ade78b7d349aed178101324be3c385df4"><param name="Name" value="app::lib::pyShelf::InitFiles"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1RequestHandler.html"><param name="Name" value="app::lib::pyShelf::RequestHandler"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1RequestHandler.html"><param name="Name" value="app::lib::pyShelf::RequestHandler"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1RequestHandler.html#a1eb370eee172882f2326b061f607ade8"><param name="Name" value="do_GET"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1RequestHandler.html#a062e40dcea67408d1cf36b0319316408"><param name="Name" value="app::lib::pyShelf::RequestHandler"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html"><param name="Name" value="app::lib::storage::Storage"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html"><param name="Name" value="app::lib::storage::Storage"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#aeb4e5e1f4d450de77e71b1b8fd4b30ba"><param name="Name" value="__init__"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html"><param name="Name" value="app::lib::storage::Storage"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#aa3319ca207a2d9b087307b71246d13b8"><param name="Name" value="book_paths_list"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html"><param name="Name" value="app::lib::storage::Storage"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#a13cdec64eb57f19ce8722cbdd8d4a643"><param name="Name" value="close"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html"><param name="Name" value="app::lib::storage::Storage"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#a26d852257563516565d99902170bbb22"><param name="Name" value="commit"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html"><param name="Name" value="app::lib::storage::Storage"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#ab8a381a4ce3f5ab9aa070d286d41d6ec"><param name="Name" value="create_tables"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html"><param name="Name" value="app::lib::storage::Storage"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#a9166da1804181b156a264498c6df9301"><param name="Name" value="cursor"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html"><param name="Name" value="app::lib::storage::Storage"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#a660085b886b7ceca2870f5d55b98ac7f"><param name="Name" value="database"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html"><param name="Name" value="app::lib::storage::Storage"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#a0709199a9d06fb733534bc98c5266b40"><param name="Name" value="db"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html"><param name="Name" value="app::lib::storage::Storage"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#a75b823ba5e218adbcb226fe62c8a4d87"><param name="Name" value="db_file"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#aeef7a8b53b250749b2147649a32f6ec9"><param name="Name" value="app::lib::storage::Storage"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html#a8e4f28cd196b0a27f64dcdd98bed0d8c"><param name="Name" value="app_body"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html#acb5a0b8033a7117664e2f35a9c14adf0"><param name="Name" value="app_footer"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html#aec70f2b0df837439d5888feeb4cf484b"><param name="Name" value="app_Headers"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1config_1_1Config.html#aa9aa9dbc4b85147d9c8942034b6fc101"><param name="Name" value="auto_scan"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1config_1_1Config.html#ab99604e3c0245e5003a7690af0d6d897"><param name="Name" value="book_path"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#aa3319ca207a2d9b087307b71246d13b8"><param name="Name" value="book_paths_list"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1config_1_1Config.html#a56cbc79336b86698a6954a56ee29b167"><param name="Name" value="book_shelf"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a74b9d8ea8187dab68396d11fb4f98542"><param name="Name" value="books"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html#a5fadf5b647c5f27d6ae49c6a68f54923"><param name="Name" value="books_per_page"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html#a6ea053a288f542ca0c22dbb8f4317a7b"><param name="Name" value="booksPerPage"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1config_1_1Config.html#acd81b86d200fed8ea177e16dff358237"><param name="Name" value="catalogue_db"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html#a4b038dcd5db1d7ec8b7c66b9a71e09bc"><param name="Name" value="close"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html#a4b038dcd5db1d7ec8b7c66b9a71e09bc"><param name="Name" value="app::lib::pyShelf::BookServer"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#a13cdec64eb57f19ce8722cbdd8d4a643"><param name="Name" value="close"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html#afdf0fe4499eb1e4d462fa24d6f542b90"><param name="Name" value="close_prompt"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#a26d852257563516565d99902170bbb22"><param name="Name" value="commit"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#ad638411c7d8a2e36102a41384bfe5435"><param name="Name" value="compare_shelf_current"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html#a8f4d613f2476e124202a62b224d3cc2b"><param name="Name" value="compile"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a800a0daa483d47a48f6408cb0363324e"><param name="Name" value="cover_regx"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#ab8a381a4ce3f5ab9aa070d286d41d6ec"><param name="Name" value="create_tables"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1InitFiles.html#ade78b7d349aed178101324be3c385df4"><param name="Name" value="CreateFile"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html#aff6ec0378811d900c8768354aa08a66b"><param name="Name" value="current_page"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#a9166da1804181b156a264498c6df9301"><param name="Name" value="cursor"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#a660085b886b7ceca2870f5d55b98ac7f"><param name="Name" value="database"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#a0709199a9d06fb733534bc98c5266b40"><param name="Name" value="db"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#a75b823ba5e218adbcb226fe62c8a4d87"><param name="Name" value="db_file"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html#a0aafb783f79a001cb4ef1ebdea5ad701"><param name="Name" value="dimensions"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1RequestHandler.html#a1eb370eee172882f2326b061f607ade8"><param name="Name" value="do_GET"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#ac8e4c57ce144dc97545f3555ad68df09"><param name="Name" value="extract_content"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a00c793aa4f36d6c4623db5509153623a"><param name="Name" value="extract_cover_html"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a37bafe1c9580948895f286e85292008b"><param name="Name" value="extract_cover_image"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#af6d4779a748534f2b6d2226de791a636"><param name="Name" value="extract_metadata"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1config_1_1Config.html#a0e6130c943b37a28392a2b864670134f"><param name="Name" value="file_array"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#ac315d34880d0e0c979102cd69a8b6114"><param name="Name" value="file_list"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a342877aaeeceab24e5ccbb746eb276a9"><param name="Name" value="filter_books"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html#a4281a91a7626aff5f51976bba36d867f"><param name="Name" value="handler"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html#ac024ff106efd6c9dd533fb88a982fa5c"><param name="Name" value="html_Headers"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a5b300eec702111b27c7b1ff874fc3d62"><param name="Name" value="html_regx"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html#a1bd70f6445acfc4433fb41056d0475e6"><param name="Name" value="httpd"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1api__hooks_1_1DuckDuckGo.html#ab462c2dc90bdabbea4f885dbffb7d8b5"><param name="Name" value="image_result"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a7f0c65ef83c057a2954bcf065bf32a18"><param name="Name" value="import_books"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1storage_1_1Storage.html#aeef7a8b53b250749b2147649a32f6ec9"><param name="Name" value="insert_book"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html#af6cc14d26687f8fde0f71c9130993409"><param name="Name" value="nextPage"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a7cc277ffec6fc7c8e92d5a576699eaf4"><param name="Name" value="opf_regx"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1RequestHandler.html#a062e40dcea67408d1cf36b0319316408"><param name="Name" value="path"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html#aadf769d9a6b619aa349f321f79a5dea2"><param name="Name" value="previousPage"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#acd24ea8f14df2ef4bdfdb56f5480dea8"><param name="Name" value="process_book"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html#a6a62aedc980975e37cd10eb6006b18a3"><param name="Name" value="run"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a91f52410ba00b1472fa91f20162a1e8d"><param name="Name" value="scan_book"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1library_1_1Catalogue.html#a5e1da43ab392030681852fc911518526"><param name="Name" value="scan_folder"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookServer.html#a2f9d0ae20161d4ef5e49bdbb95ca813e"><param name="Name" value="server_address"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html#a45ff2e061ddbb99b898ac9b4c1fe1b96"><param name="Name" value="thumbnail_scale"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html#a8cc5c6844169ecb21e1e2e0eb2f8d4cc"><param name="Name" value="thumbnail_size"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1config_1_1Config.html#ab98795e4a52ddcde691e5f92ccd9b6f5"><param name="Name" value="TITLE"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1config_1_1Config.html#ab98795e4a52ddcde691e5f92ccd9b6f5"><param name="Name" value="app::config::Config"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1display_1_1Frontend.html#ad625c2a8eb2cc4edc168c9559a730c62"><param name="Name" value="TITLE"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html#a3580927488f4d8571fcd4c7bd7ae7481"><param name="Name" value="total_pages"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classapp_1_1lib_1_1api__hooks_1_1DuckDuckGo.html#a8b5005bada24c559908f9997424ba4ac"><param name="Name" value="url"></OBJECT>
</UL>
</BODY>
</HTML>

27
docs/html/index.hhp vendored
View File

@@ -14,33 +14,7 @@ Title=pyShelf Open Source Ebook Server
main="pyShelf Open Source Ebook Server","index.hhc","index.hhk","index.html","index.html",,,,,0x23520,,0x70387e,,,,,,,,0
[FILES]
classapp_1_1config_1_1Config.html
classapp_1_1config_1_1Config-members.html
classapp_1_1lib_1_1api__hooks_1_1DuckDuckGo.html
classapp_1_1lib_1_1api__hooks_1_1DuckDuckGo-members.html
classapp_1_1lib_1_1display_1_1Frontend.html
classapp_1_1lib_1_1display_1_1Frontend-members.html
classapp_1_1lib_1_1library_1_1Catalogue.html
classapp_1_1lib_1_1library_1_1Catalogue-members.html
classapp_1_1lib_1_1pyShelf_1_1BookDisplay.html
classapp_1_1lib_1_1pyShelf_1_1BookDisplay-members.html
classapp_1_1lib_1_1pyShelf_1_1BookServer.html
classapp_1_1lib_1_1pyShelf_1_1BookServer-members.html
classapp_1_1lib_1_1pyShelf_1_1InitFiles.html
classapp_1_1lib_1_1pyShelf_1_1InitFiles-members.html
classapp_1_1lib_1_1pyShelf_1_1RequestHandler.html
classapp_1_1lib_1_1pyShelf_1_1RequestHandler-members.html
classapp_1_1lib_1_1storage_1_1Storage.html
classapp_1_1lib_1_1storage_1_1Storage-members.html
dir_d422163b96683743ed3963d4aac17747.html
dir_9dc6c7acf21934bbaaf79b41db58c4e7.html
index.html
annotated.html
classes.html
hierarchy.html
functions.html
functions_func.html
files.html
tab_a.png
tab_b.png
tab_h.png
@@ -54,4 +28,3 @@ open.png
bdwn.png
sync_on.png
sync_off.png
classapp_1_1lib_1_1pyShelf_1_1RequestHandler.png

View File

@@ -19,7 +19,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">pyShelf Open Source Ebook Server
&#160;<span id="projectnumber">0.1.0</span>
&#160;<span id="projectnumber">0.2.0</span>
</div>
<div id="projectbrief">Open source, console based E-book server</div>
</td>
@@ -47,7 +47,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sun Nov 10 2019 01:10:53 for pyShelf Open Source Ebook Server by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri Nov 29 2019 22:17:44 for pyShelf Open Source Ebook Server by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16
</small></address>

11
docs/html/menudata.js vendored
View File

@@ -21,13 +21,4 @@ with this program; if not, write to the Free Software Foundation, Inc.,
for the JavaScript code in this file
*/
var menudata={children:[
{text:"Main Page",url:"index.html"},
{text:"Classes",url:"annotated.html",children:[
{text:"Class List",url:"annotated.html"},
{text:"Class Index",url:"classes.html"},
{text:"Class Hierarchy",url:"hierarchy.html"},
{text:"Class Members",url:"functions.html",children:[
{text:"All",url:"functions.html"},
{text:"Functions",url:"functions_func.html"}]}]},
{text:"Files",url:"files.html",children:[
{text:"File List",url:"files.html"}]}]}
{text:"Main Page",url:"index.html"}]}

64
docs/warn.log vendored
View File

@@ -1,62 +1,2 @@
/home/raelon/Projects/pyShelf/app/config.py:3: warning: Member __init__(self) (function) of class app::config::Config is not documented.
/home/raelon/Projects/pyShelf/app/config.py:4: warning: Member book_path (variable) of class app::config::Config is not documented.
/home/raelon/Projects/pyShelf/app/config.py:5: warning: Member TITLE (variable) of class app::config::Config is not documented.
/home/raelon/Projects/pyShelf/app/config.py:6: warning: Member book_shelf (variable) of class app::config::Config is not documented.
/home/raelon/Projects/pyShelf/app/config.py:8: warning: Member catalogue_db (variable) of class app::config::Config is not documented.
/home/raelon/Projects/pyShelf/app/config.py:9: warning: Member file_array (variable) of class app::config::Config is not documented.
/home/raelon/Projects/pyShelf/app/config.py:13: warning: Member auto_scan (variable) of class app::config::Config is not documented.
/home/raelon/Projects/pyShelf/app/lib/api_hooks.py:11: warning: Member __init__(self) (function) of class app::lib::api_hooks::DuckDuckGo is not documented.
/home/raelon/Projects/pyShelf/app/lib/api_hooks.py:12: warning: Member url (variable) of class app::lib::api_hooks::DuckDuckGo is not documented.
/home/raelon/Projects/pyShelf/app/lib/api_hooks.py:14: warning: return type of member app.lib.api_hooks.DuckDuckGo.image_result is not documented
/home/raelon/Projects/pyShelf/app/lib/display.py:17: warning: Member dimensions (variable) of class app::lib::display::Frontend is not documented.
/home/raelon/Projects/pyShelf/app/lib/display.py:18: warning: Member TITLE (variable) of class app::lib::display::Frontend is not documented.
/home/raelon/Projects/pyShelf/app/lib/display.py:53: warning: return type of member app.lib.display.Frontend.app_body is not documented
/home/raelon/Projects/pyShelf/app/lib/display.py:74: warning: return type of member app.lib.display.Frontend.app_footer is not documented
/home/raelon/Projects/pyShelf/app/lib/display.py:38: warning: return type of member app.lib.display.Frontend.app_Headers is not documented
/home/raelon/Projects/pyShelf/app/lib/display.py:91: warning: return type of member app.lib.display.Frontend.compile is not documented
/home/raelon/Projects/pyShelf/app/lib/display.py:20: warning: return type of member app.lib.display.Frontend.html_Headers is not documented
/home/raelon/Projects/pyShelf/app/lib/library.py:21: warning: Member __init__(self) (function) of class app::lib::library::Catalogue is not documented.
/home/raelon/Projects/pyShelf/app/lib/library.py:27: warning: Member scan_folder(self, folder=config.book_path) (function) of class app::lib::library::Catalogue is not documented.
/home/raelon/Projects/pyShelf/app/lib/library.py:101: warning: Member extract_content(self, book_zip, book) (function) of class app::lib::library::Catalogue is not documented.
/home/raelon/Projects/pyShelf/app/lib/library.py:109: warning: Member extract_cover_html(self, book_zip, book) (function) of class app::lib::library::Catalogue is not documented.
/home/raelon/Projects/pyShelf/app/lib/library.py:117: warning: Member extract_cover_image(self, book_zip, book) (function) of class app::lib::library::Catalogue is not documented.
/home/raelon/Projects/pyShelf/app/lib/library.py:126: warning: Member compare_shelf_current(self) (function) of class app::lib::library::Catalogue is not documented.
/home/raelon/Projects/pyShelf/app/lib/library.py:139: warning: Member import_books(self, list=None) (function) of class app::lib::library::Catalogue is not documented.
/home/raelon/Projects/pyShelf/app/lib/library.py:22: warning: Member file_list (variable) of class app::lib::library::Catalogue is not documented.
/home/raelon/Projects/pyShelf/app/lib/library.py:23: warning: Member opf_regx (variable) of class app::lib::library::Catalogue is not documented.
/home/raelon/Projects/pyShelf/app/lib/library.py:24: warning: Member cover_regx (variable) of class app::lib::library::Catalogue is not documented.
/home/raelon/Projects/pyShelf/app/lib/library.py:25: warning: Member html_regx (variable) of class app::lib::library::Catalogue is not documented.
/home/raelon/Projects/pyShelf/app/lib/library.py:53: warning: Member books (variable) of class app::lib::library::Catalogue is not documented.
/home/raelon/Projects/pyShelf/app/lib/library.py:78: warning: return type of member app.lib.library.Catalogue.extract_metadata is not documented
/home/raelon/Projects/pyShelf/app/lib/library.py:43: warning: return type of member app.lib.library.Catalogue.filter_books is not documented
/home/raelon/Projects/pyShelf/app/lib/library.py:61: warning: return type of member app.lib.library.Catalogue.process_book is not documented
/home/raelon/Projects/pyShelf/app/lib/library.py:36: warning: return type of member app.lib.library.Catalogue.scan_book is not documented
/home/raelon/Projects/pyShelf/app/lib/pyShelf.py:77: warning: Member books_per_page (variable) of class app::lib::pyShelf::BookDisplay is not documented.
/home/raelon/Projects/pyShelf/app/lib/pyShelf.py:78: warning: Member current_page (variable) of class app::lib::pyShelf::BookDisplay is not documented.
/home/raelon/Projects/pyShelf/app/lib/pyShelf.py:79: warning: Member thumbnail_size (variable) of class app::lib::pyShelf::BookDisplay is not documented.
/home/raelon/Projects/pyShelf/app/lib/pyShelf.py:80: warning: Member thumbnail_scale (variable) of class app::lib::pyShelf::BookDisplay is not documented.
/home/raelon/Projects/pyShelf/app/lib/pyShelf.py:81: warning: Member total_pages (variable) of class app::lib::pyShelf::BookDisplay is not documented.
/home/raelon/Projects/pyShelf/app/lib/pyShelf.py:99: warning: return type of member app.lib.pyShelf.BookDisplay.booksPerPage is not documented
/home/raelon/Projects/pyShelf/app/lib/pyShelf.py:83: warning: return type of member app.lib.pyShelf.BookDisplay.nextPage is not documented
/home/raelon/Projects/pyShelf/app/lib/pyShelf.py:91: warning: return type of member app.lib.pyShelf.BookDisplay.previousPage is not documented
/home/raelon/Projects/pyShelf/app/lib/pyShelf.py:117: warning: Member __init__(self) (function) of class app::lib::pyShelf::BookServer is not documented.
/home/raelon/Projects/pyShelf/app/lib/pyShelf.py:118: warning: Member server_address (variable) of class app::lib::pyShelf::BookServer is not documented.
/home/raelon/Projects/pyShelf/app/lib/pyShelf.py:119: warning: Member handler (variable) of class app::lib::pyShelf::BookServer is not documented.
/home/raelon/Projects/pyShelf/app/lib/pyShelf.py:120: warning: Member httpd (variable) of class app::lib::pyShelf::BookServer is not documented.
/home/raelon/Projects/pyShelf/app/lib/pyShelf.py:143: warning: return type of member app.lib.pyShelf.BookServer.close is not documented
/home/raelon/Projects/pyShelf/app/lib/pyShelf.py:122: warning: return type of member app.lib.pyShelf.BookServer.close_prompt is not documented
/home/raelon/Projects/pyShelf/app/lib/pyShelf.py:131: warning: return type of member app.lib.pyShelf.BookServer.run is not documented
/home/raelon/Projects/pyShelf/app/lib/pyShelf.py:17: warning: Member __init__(self, file_array) (function) of class app::lib::pyShelf::InitFiles is not documented.
/home/raelon/Projects/pyShelf/app/lib/pyShelf.py:24: warning: return type of member app.lib.pyShelf.InitFiles.CreateFile is not documented
/home/raelon/Projects/pyShelf/app/lib/pyShelf.py:34: warning: Member do_GET(self) (function) of class app::lib::pyShelf::RequestHandler is not documented.
/home/raelon/Projects/pyShelf/app/lib/pyShelf.py:37: warning: Member path (variable) of class app::lib::pyShelf::RequestHandler is not documented.
/home/raelon/Projects/pyShelf/app/lib/storage.py:14: warning: Member __init__(self) (function) of class app::lib::storage::Storage is not documented.
/home/raelon/Projects/pyShelf/app/lib/storage.py:60: warning: Member book_paths_list(self) (function) of class app::lib::storage::Storage is not documented.
/home/raelon/Projects/pyShelf/app/lib/storage.py:67: warning: Member commit(self) (function) of class app::lib::storage::Storage is not documented.
/home/raelon/Projects/pyShelf/app/lib/storage.py:71: warning: Member close(self) (function) of class app::lib::storage::Storage is not documented.
/home/raelon/Projects/pyShelf/app/lib/storage.py:15: warning: Member db_file (variable) of class app::lib::storage::Storage is not documented.
/home/raelon/Projects/pyShelf/app/lib/storage.py:22: warning: Member db (variable) of class app::lib::storage::Storage is not documented.
/home/raelon/Projects/pyShelf/app/lib/storage.py:23: warning: Member cursor (variable) of class app::lib::storage::Storage is not documented.
/home/raelon/Projects/pyShelf/app/lib/storage.py:28: warning: return type of member app.lib.storage.Storage.create_tables is not documented
/home/raelon/Projects/pyShelf/app/lib/storage.py:19: warning: return type of member app.lib.storage.Storage.database is not documented
/home/raelon/Projects/pyShelf/app/lib/storage.py:39: warning: return type of member app.lib.storage.Storage.insert_book is not documented
warning: source app is not a readable file or directory... skipping.
error: Cannot find directory app/. Check the value of the INPUT tag in the configuration file.

2
doxygen.conf vendored
View File

@@ -38,7 +38,7 @@ PROJECT_NAME = "pyShelf Open Source Ebook Server"
# could be handy for archiving the generated documentation or if some version
# control system is used.
PROJECT_NUMBER = 0.1.0
PROJECT_NUMBER = 0.2.0
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a

View File

@@ -21,8 +21,9 @@ from interface import views
urlpatterns = [
path("admin/", admin.site.urls),
path("", views.index, name="index"),
# path('<file_name>', views.download, name="download")
path("<pk>", views.download, name="download"),
path("download/<pk>", views.download, name="download"),
path("prev_page/<bookset>", views.prev_page, name="prev_page"),
path("next_page/<bookset>", views.next_page, name="next_page"),
]
if settings.DEBUG:
import debug_toolbar

View File

@@ -0,0 +1,30 @@
# Generated by Django 2.2.7 on 2019-11-28 19:24
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Books',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=255)),
('author', models.CharField(max_length=255, null=True)),
('categories', models.CharField(max_length=255, null=True)),
('cover', models.BinaryField(editable=True, null=True)),
('pages', models.IntegerField(null=True)),
('progress', models.IntegerField(null=True)),
('file_name', models.CharField(max_length=255)),
],
options={
'db_table': 'books',
},
),
]

View File

@@ -1,34 +0,0 @@
from django.db import models
# Create your models here.
class Books(models.Model):
"""
pyShelfs Book Database class
:param title: Book title
:param author: Author
:param categories: Categories <-- Not implemented
:param cover: Cover image BinaryField
:param pages: # of pages <-- Not implemented
:param progress: Reader percentage <-- Not implented
:param file_name: Path to book
"""
class Meta:
db_table = "books"
def __str__(self):
return self.title
title = models.CharField(max_length=255)
author = models.CharField(max_length=255, null=True)
categories = models.CharField(max_length=255, null=True)
cover = models.BinaryField(null=True, editable=True)
pages = models.IntegerField(null=True)
progress = models.IntegerField(null=True)
file_name = models.CharField(max_length=255, null=False)
def get_absolute_url(self):
"""Returns the url to access a particular instance of MyModelName."""
return reverse("model-detail-view", args=[str(self.id)])

View File

@@ -1,61 +1,142 @@
body{
margin: 0px 10px 0px 10px;
margin: 0px;
padding: 0px;
background-color: #DCDCDD;
color: #46494C
color: #fff;
overflow: hidden;
}
#app{
display: grid;
grid-template-areas: "app_header"
"app_body"
"app_footer";
grid-template-rows: 5vh 90vh 5vh;
max-height: 100%
grid-template-rows: auto 84vh auto;
max-height: 100%;
}
.clear{
clear: both;
}
.app_header{
grid-area: app_header;
margin: 0px;
display: grid;
grid-template-areas: "title slogan";
grid-template-areas:
"title slogan subhdr"
"nav_left_top nav_center_top nav_right_top";
align-items: center;
background-color: #2b2b2b;
padding: 4px 0px 4px;
grid-auto-columns: auto;
}
.nav_left_top{
grid-area: nav_left_top;
display: flex;
justify-content: left;
}
.nav_center_top{
grid-area: nav_center_top;
display: flex;
justify-content: center;
}
.nav_right_top{
grid-area: nav_right_top;
display: flex;
justify-content: right;
}
.app_hdr{
grid-area: title;
margin: 0;
font-family: 'Audiowide', cursive;
font-size: 25px;
margin: 0px 0px 5px 0px;
font-family: 'Gruppo', cursive;
font-size: 36px;
text-align: start;
padding: 0px 0px 0px 5px;
}
.shadow{
text-shadow: #4c5c68 -5px 3px 5px;
}
.app_subhdr{
grid-area: slogan;
margin: 0;
font-family: 'Audiowide', cursive;
grid-area: subhdr;
margin: 0px 5px;
font-family: 'Gruppo', cursive;
font-size: 18px;
text-shadow: #4c5c68 -5px 3px 5px;
text-align: end;
}
.app_slogan{
grid-area: slogan;
margin: 0;
font-size: 18px;
font-family: 'Gruppo', cursive;
text-align: center;
}
.app_body{
display: grid;
grid-area: app_body;
grid-template-rows: 5vh auto;
grid-template-areas: "nav_top"
"shelf";
grid-template-rows: auto;
grid-template-areas: "shelf";
justify-items: center;
overflow-y: scroll;
background-color: dimgray;
}
.app_footer{
grid-area: app_footer;
position: fixed;
bottom: 0px;
min-width: 100%;
background-color: #2b2b2b;
margin: 0px;
}
.nav_top{
grid-area: nav_top
grid-area: nav_top;
display: grid;
grid-template-areas: "left center right";
grid-template-columns: auto auto auto;
}
.navbar{
list-style-type: none;
}
.left_align{
display: flex;
justify-content: left;
}
.center_align{
display: flex;
justify-content:center;
}
.right_align{
display: flex;
justify-content: right;
}
.top{
}
.inline{
}
.inline_txt{
}
.button{
}
.nav_button{
background-color:darkgray;
border-radius: 5px;
border: 1px solid #999;
min-width: 110px;
margin: 0px 5px 0px 0px;
padding-top: 2px;
padding-bottom: 2px;
}
.nav_search{
margin: 0px 5px 0px 0px;
border-radius: 5px;
border: 1px solid #999;
}
.search{
}
.shelf{
grid-area: shelf;
margin: 0px 0px;
padding: 0px;
padding: 10px 0px 10px;
list-style-type: none;
}
.shelf_contents{
@@ -80,6 +161,7 @@ body{
font-family: 'Audiowide', cursive;
font-size: 25px;
padding: 0;
margin: 0px;
}
.shelf_item{
background-color: burlywood;
@@ -95,3 +177,7 @@ body{
a.book_link{
text-decoration: none;
}
a.nav_link{
text-decoration: none;
color: #fff;
}

BIN
src/interface/static/img/gpl-125x28.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
src/interface/static/img/gpl-150x33.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
src/interface/static/img/gpl-175x39.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
src/interface/static/img/gpl.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
src/interface/static/img/open-source.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 MiB

After

Width:  |  Height:  |  Size: 5.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 548 KiB

File diff suppressed because one or more lines are too long

0
src/interface/static/js/pyshelf_ux.js vendored Normal file
View File

View File

@@ -8,17 +8,43 @@
<link type="text/css" rel="stylesheet" href="/static/css/main.css" />
<title>pyShelf E-Book Server</title>
<link href="https://fonts.googleapis.com/css?family=Audiowide&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Gruppo&display=swap" rel="stylesheet">
<script src="/static/js/jquery-3.4.1.min.js" type="text/javascript"></script>
<script src="/static/js/pyshelf_ux.js" type="text/javascript"></script>
<!-- Place this tag in your head or just before your close body tag. -->
<script async defer src="https://buttons.github.io/buttons.js"></script>
</head>
<body>
<div id="app">
<div class="app_header" >
<h1 class="app_hdr shadow">pyShelf</h1>
<h2 class="app_subhdr shadow">Open Source E-book Server</h2>
<div class="app_hdr">
<h1 class="app_hdr shadow">pyShelf</h1>
</div>
<div class="app_slogan">
<h3 class="app_slogan shadow">""An elegant tool... for a more civilized age."</h3>
</div>
<div class="app_subhdr">
<!-- Place this tag where you want the button to render. -->
<a class="github-button" href="https://github.com/th3r00t/pyShelf/fork" data-color-scheme="no-preference: dark; light: light; dark: dark;" data-icon="octicon-repo-forked" data-size="large" aria-label="Fork th3r00t/pyShelf on GitHub">Fork</a>
<!-- Place this tag where you want the button to render. -->
<a class="github-button" href="https://github.com/th3r00t/pyShelf/issues" data-color-scheme="no-preference: dark; light: light; dark: dark;" data-icon="octicon-issue-opened" data-size="large" aria-label="Issue th3r00t/pyShelf on GitHub">Issue</a>
<!--
<img src="/static/img/open-source-175x29.png" class="hdr_badge" /><br />
<img src="/static/img/gpl-125x28.png" class="hdr_badge" />
-->
</div>
<input type="hidden" id="_set" name="_set" value="{{ Set }}" />
<div class="nav_left_top">
<input class="nav_button prev_page" type="button" value="<< Prev Page" onclick="window.location.href = '/prev_page/{{ Set }}'">
</div>
<div class="nav_center_top">
<input class="nav_search" type="text" size="25" value="-- Not Yet Implemented --"><input class="nav_button" type="submit" value="Search">
</div>
<div class="nav_right_top">
<input class="nav_button next_page" type="button" value="Next Page >>" onclick="window.location.href = '/next_page/{{ Set }}'">
</div>
</div>
<div class="app_body" >
<div class="nav_top">
<!--Navigation and page controls will go here-->
</div>
<div class="shelf">
<div class="shelf_contents" >
<ul id="book_shelf">

View File

@@ -1,13 +1,74 @@
import json
import os
from base64 import b64decode, b64encode
from django.shortcuts import HttpResponse, render
from django.db import models
from django.http import JsonResponse
from django.shortcuts import HttpResponse, render, render_to_response
from django.utils.text import slugify
from .models import Books
def index(request):
return render(request, "index.html", {"Books": Books.objects.all()})
_set = 1
return render(
request, "index.html", {"Books": book_set(20, _set), "Set": str(_set)}
)
def next_page(request, bookset):
try:
_set = int(bookset) + 1
except Exception:
_set = 1
return render(
request, "index.html", {"Books": book_set(None, _set), "Set": str(_set)}
)
def prev_page(request, bookset):
_set = int(bookset)
if _set <= 1:
_set = 1
else:
try:
_set = int(bookset) - 1
except Exception:
_set = 1
return render(
request, "index.html", {"Books": book_set(None, _set), "Set": str(_set)}
)
def book_set(_limit=None, _set=1):
if _limit is None:
_limit = 20 # TODO default from user choice
_set_max = int(_set) * _limit
_set_min = _set_max - _limit
books = Books.objects.all()[_set_min:_set_max]
return books
def book_set_as_dict(_limit=None, _set=1):
breakpoint()
if _limit is None:
_limit = 20
_set_max = int(_set) * _limit
_set_min = _set_max - _limit
_set = {}
for book in Books.objects.all()[_set_min:_set_max]:
_set[book.title] = {
"title": book.title,
"author": book.author,
"categories": book.categories,
"cover": book.cover,
"pages": book.pages,
"progress": book.progress,
"file_name": book.file_name,
"pk": book.pk,
}
return json.dumps(_set)
def download(request, pk):
@@ -22,11 +83,3 @@ def download(request, pk):
def hr_name(book):
return "{0}.{1}".format(slugify(book.title), book.file_name.split(".")[1])
def book_set(_set):
r = 20
x = _set * r
y = x + r
books = Books.objects.all()[x:y]
return books