diff --git a/docs/html/HTML/D/index.html b/docs/html/HTML/D/index.html deleted file mode 100644 index f931715..0000000 --- a/docs/html/HTML/D/index.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/html/HTML/FILEMAP b/docs/html/HTML/FILEMAP deleted file mode 100644 index e69de29..0000000 diff --git a/docs/html/HTML/GTAGSROOT b/docs/html/HTML/GTAGSROOT deleted file mode 100644 index 793be1c..0000000 --- a/docs/html/HTML/GTAGSROOT +++ /dev/null @@ -1 +0,0 @@ -/home/raelon/Projects/pyShelf/src diff --git a/docs/html/HTML/I/index.html b/docs/html/HTML/I/index.html deleted file mode 100644 index f931715..0000000 --- a/docs/html/HTML/I/index.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/html/HTML/J/index.html b/docs/html/HTML/J/index.html deleted file mode 100644 index f931715..0000000 --- a/docs/html/HTML/J/index.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/html/HTML/R/index.html b/docs/html/HTML/R/index.html deleted file mode 100644 index f931715..0000000 --- a/docs/html/HTML/R/index.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/html/HTML/S/index.html b/docs/html/HTML/S/index.html deleted file mode 100644 index f931715..0000000 --- a/docs/html/HTML/S/index.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/html/HTML/Y/index.html b/docs/html/HTML/Y/index.html deleted file mode 100644 index f931715..0000000 --- a/docs/html/HTML/Y/index.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/html/HTML/defines.html b/docs/html/HTML/defines.html deleted file mode 100644 index ff101d5..0000000 --- a/docs/html/HTML/defines.html +++ /dev/null @@ -1,13 +0,0 @@ - - - -DEFINITIONS - - - - - - -

DEFINITIONS

- - diff --git a/docs/html/HTML/defines/index.html b/docs/html/HTML/defines/index.html deleted file mode 100644 index f931715..0000000 --- a/docs/html/HTML/defines/index.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/html/HTML/files.html b/docs/html/HTML/files.html deleted file mode 100644 index a63dd8b..0000000 --- a/docs/html/HTML/files.html +++ /dev/null @@ -1,15 +0,0 @@ - - - -FILES - - - - - - -

FILES

-
    -
- - diff --git a/docs/html/HTML/files/index.html b/docs/html/HTML/files/index.html deleted file mode 100644 index f931715..0000000 --- a/docs/html/HTML/files/index.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/html/HTML/help.html b/docs/html/HTML/help.html deleted file mode 100644 index 45bafb4..0000000 --- a/docs/html/HTML/help.html +++ /dev/null @@ -1,24 +0,0 @@ - - - -HELP - - - - - - -

Usage of Links

-
/* [<][>][^][v][top][bottom][index][help] */
-
-
[<]
Previous definition.
-
[>]
Next definition.
-
[^]
First definition in this file.
-
[v]
Last definition in this file.
-
[top]
Top of this file.
-
[bottom]
Bottom of this file.
-
[index]
Return to index page.
-
[help]
You are seeing now.
-
- - diff --git a/docs/html/HTML/index.html b/docs/html/HTML/index.html deleted file mode 100644 index afb2c44..0000000 --- a/docs/html/HTML/index.html +++ /dev/null @@ -1,28 +0,0 @@ - - - -pyShelf Open Source Ebook Server-0.2.1 - - - - - - -

pyShelf Open Source Ebook Server-0.2.1

-
-Last updated Sun Dec 01 13:06:42 EST 2019
-Powered by GLOBAL-6.6.3.
-
-
-

MAINS

-
-
-
-

DEFINITIONS

-
-

FILES

-
    -
-
- - diff --git a/docs/html/HTML/mains.html b/docs/html/HTML/mains.html deleted file mode 100644 index afb2c44..0000000 --- a/docs/html/HTML/mains.html +++ /dev/null @@ -1,28 +0,0 @@ - - - -pyShelf Open Source Ebook Server-0.2.1 - - - - - - -

pyShelf Open Source Ebook Server-0.2.1

-
-Last updated Sun Dec 01 13:06:42 EST 2019
-Powered by GLOBAL-6.6.3.
-
-
-

MAINS

-
-
-
-

DEFINITIONS

-
-

FILES

-
    -
-
- - diff --git a/docs/html/HTML/rebuild.sh b/docs/html/HTML/rebuild.sh deleted file mode 100644 index d26cc13..0000000 --- a/docs/html/HTML/rebuild.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -# -# rebuild.sh: rebuild hypertext with the previous context. -# -# Usage: -# % sh rebuild.sh -# -cd /home/raelon/Projects/pyShelf/src && 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.1' /home/raelon/Projects/pyShelf/docs/html diff --git a/docs/html/HTML/style.css b/docs/html/HTML/style.css deleted file mode 100755 index d7db34a..0000000 --- a/docs/html/HTML/style.css +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (c) 2005, 2010, 2011 Tama Communications Corporation - * - * This file is free software; as a special exception the author gives - * unlimited permission to copy and/or distribute it, with or without - * modifications, as long as this notice is preserved. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY, to the extent permitted by law; without even the - * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - */ -/* - * Souce code - */ -body { color: #191970; background-color: #f5f5dc; } -a.visited { color: gray; } -.title { color: #cc0000; } -.poweredby { text-align: right; } -.error { color: red; } -.loading { color: white; background-color: red; } -.cvs { font-size: 90%; } -.caution { text-align: center; margin: 1em 40px; } -img.icon { vertical-align: top; border: 0; } -.curline:hover { background-color:lightgray; } -table.flist { border-spacing: 2px; width: 100%; } -/* - * Parts - */ -em { font-style: normal; } -em.comment { color: green; font-style: italic; } -em.sharp { color: #8b0000; } -em.brace { color: red; } -em.warned { background-color: yellow; } -em.string { text-decoration: underline; } -strong.reserved { font-weight: bold; } -/* - * Tag list using table (--table-list) - */ -th, td { white-space: nowrap; } -th.tag { text-align: left; } -th.line { text-align: right; } -th.file { text-align: left; } -th.code { text-align: left; } -td.tag { text-align: left; } -td.line { text-align: right; } -td.file { text-align: left; } -td.code { text-align: left; } -/* end of TAG LIST */ -/* - * Fixed guide (--fixed-guide) - */ -#guide { - height: 35px; - position: fixed; - bottom:0px; left:0px; right:0px; - background: #f5f5dc; - border: 1px solid #ccc; -} -#guide ul { - height: 25px; - margin: 5px; - width: 90%; -} -#guide ul li { - float: left; - display: inline; - margin: 1px 1px; -} -#guide a { - line-height: 24px; -} -#guide ul li.standout span { - margin: 0px 4px; - font-size: 115%; - font-weight: bold; -} -/* end of FIXED GUIDE */ diff --git a/docs/html/annotated.html b/docs/html/annotated.html deleted file mode 100644 index fbde317..0000000 --- a/docs/html/annotated.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: Class List - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - -
-
-
-
Class List
-
-
-
Here are the classes, structs, unions and interfaces with brief descriptions:
-
[detail level 123456]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 NpyShelf
 Nsrc
 Nbackend
 Nlib
 Napi_hooks
 CDuckDuckGo
 Nconfig
 CConfig
 Nlibrary
 CCatalogue
 NpyShelf
 CBookDisplay
 CInitFiles
 Nstorage
 CStorage
 Ntests
 Nconfig_test
 CTestConfig
 Nlibrary_test
 CTest_Catalogue
 CTest_Config
 CTestCatalogue
 Nfrontend
 Ninterface
 Napps
 CInterfaceConfig
 Nmigrations
 N0001_initial
 CMigration
 Nmodels
 CBooks
 CMeta
-
-
- - - - diff --git a/docs/html/bc_s.png b/docs/html/bc_s.png deleted file mode 100644 index 224b29a..0000000 Binary files a/docs/html/bc_s.png and /dev/null differ diff --git a/docs/html/bdwn.png b/docs/html/bdwn.png deleted file mode 100644 index 940a0b9..0000000 Binary files a/docs/html/bdwn.png and /dev/null differ diff --git a/docs/html/classes.html b/docs/html/classes.html deleted file mode 100644 index 1faa582..0000000 --- a/docs/html/classes.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: Class Index - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - -
-
-
-
Class Index
-
-
-
b | c | d | i | m | s | t
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  b  
-
Config (pyShelf.src.backend.lib.config)   InterfaceConfig (pyShelf.src.interface.apps)   
  t  
-
  d  
-
  m  
-
BookDisplay (pyShelf.src.backend.lib.pyShelf)   Test_Catalogue (pyShelf.src.backend.tests.library_test)   
Books (pyShelf.src.interface.models)   DuckDuckGo (pyShelf.src.backend.lib.api_hooks)   Books.Meta (pyShelf.src.interface.models)   Test_Config (pyShelf.src.backend.tests.library_test)   
  c  
-
  i  
-
Migration (pyShelf.src.interface.migrations.0001_initial)   TestCatalogue (pyShelf.src.backend.tests.library_test)   
  s  
-
TestConfig (pyShelf.src.backend.tests.config_test)   
Catalogue (pyShelf.src.backend.lib.library)   InitFiles (pyShelf.src.backend.lib.pyShelf)   
Storage (pyShelf.src.backend.lib.storage)   
-
b | c | d | i | m | s | t
-
- - - - diff --git a/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1api__hooks_1_1DuckDuckGo-members.html b/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1api__hooks_1_1DuckDuckGo-members.html deleted file mode 100644 index d8b0efd..0000000 --- a/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1api__hooks_1_1DuckDuckGo-members.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: Member List - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
pyShelf.src.backend.lib.api_hooks.DuckDuckGo Member List
-
-
- -

This is the complete list of members for pyShelf.src.backend.lib.api_hooks.DuckDuckGo, including all inherited members.

- - - - -
__init__(self) (defined in pyShelf.src.backend.lib.api_hooks.DuckDuckGo)pyShelf.src.backend.lib.api_hooks.DuckDuckGo
image_result(self, query)pyShelf.src.backend.lib.api_hooks.DuckDuckGo
url (defined in pyShelf.src.backend.lib.api_hooks.DuckDuckGo)pyShelf.src.backend.lib.api_hooks.DuckDuckGo
- - - - diff --git a/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1api__hooks_1_1DuckDuckGo.html b/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1api__hooks_1_1DuckDuckGo.html deleted file mode 100644 index e48a24f..0000000 --- a/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1api__hooks_1_1DuckDuckGo.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: pyShelf.src.backend.lib.api_hooks.DuckDuckGo Class Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-Public Member Functions | -Public Attributes | -List of all members
-
-
pyShelf.src.backend.lib.api_hooks.DuckDuckGo Class Reference
-
-
- - - - - - -

-Public Member Functions

-def __init__ (self)
 
def image_result (self, query)
 
- - - -

-Public Attributes

url
 
-

Detailed Description

-
duckduckgo related searching

Member Function Documentation

- -

◆ image_result()

- -
-
- - - - - - - - - - - - - - - - - - -
def pyShelf.src.backend.lib.api_hooks.DuckDuckGo.image_result ( self,
 query 
)
-
-
Returns json containing url to image
-:param _key: &t=h_&iar=images&iax=images&ia=images&format=json&pretty=1
-
-
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1config_1_1Config-members.html b/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1config_1_1Config-members.html deleted file mode 100644 index ad759df..0000000 --- a/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1config_1_1Config-members.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: Member List - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
pyShelf.src.backend.lib.config.Config Member List
-
-
- -

This is the complete list of members for pyShelf.src.backend.lib.config.Config, including all inherited members.

- - - - - - - - - - - - - -
__init__(self, root) (defined in pyShelf.src.backend.lib.config.Config)pyShelf.src.backend.lib.config.Config
auto_scan (defined in pyShelf.src.backend.lib.config.Config)pyShelf.src.backend.lib.config.Config
book_path (defined in pyShelf.src.backend.lib.config.Config)pyShelf.src.backend.lib.config.Config
book_shelf (defined in pyShelf.src.backend.lib.config.Config)pyShelf.src.backend.lib.config.Config
catalogue_db (defined in pyShelf.src.backend.lib.config.Config)pyShelf.src.backend.lib.config.Config
file_array (defined in pyShelf.src.backend.lib.config.Config)pyShelf.src.backend.lib.config.Config
open_file(self, _cp)pyShelf.src.backend.lib.config.Config
password (defined in pyShelf.src.backend.lib.config.Config)pyShelf.src.backend.lib.config.Config
root (defined in pyShelf.src.backend.lib.config.Config)pyShelf.src.backend.lib.config.Config
TITLE (defined in pyShelf.src.backend.lib.config.Config)pyShelf.src.backend.lib.config.Config
user (defined in pyShelf.src.backend.lib.config.Config)pyShelf.src.backend.lib.config.Config
VERSION (defined in pyShelf.src.backend.lib.config.Config)pyShelf.src.backend.lib.config.Config
- - - - diff --git a/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1config_1_1Config.html b/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1config_1_1Config.html deleted file mode 100644 index 89327a0..0000000 --- a/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1config_1_1Config.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: pyShelf.src.backend.lib.config.Config Class Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-Public Member Functions | -Public Attributes | -List of all members
-
-
pyShelf.src.backend.lib.config.Config Class Reference
-
-
-
- + Inheritance diagram for pyShelf.src.backend.lib.config.Config:
-
-
- - - - - - - -

-Public Member Functions

-def __init__ (self, root)
 
def open_file (self, _cp)
 
- - - - - - - - - - - - - - - - - - - - - -

-Public Attributes

book_path
 
TITLE
 
VERSION
 
book_shelf
 
catalogue_db
 
user
 
password
 
file_array
 
root
 
auto_scan
 
-

Detailed Description

-
Main System Configuration
-

Member Function Documentation

- -

◆ open_file()

- -
-
- - - - - - - - - - - - - - - - - - -
def pyShelf.src.backend.lib.config.Config.open_file ( self,
 _cp 
)
-
-
Opens config.json and reads in configuration options
-
-

Reimplemented in pyShelf.src.backend.tests.library_test.Test_Config.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1config_1_1Config.png b/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1config_1_1Config.png deleted file mode 100644 index b7d4d5a..0000000 Binary files a/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1config_1_1Config.png and /dev/null differ diff --git a/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1library_1_1Catalogue-members.html b/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1library_1_1Catalogue-members.html deleted file mode 100644 index 1a26e88..0000000 --- a/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1library_1_1Catalogue-members.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: Member List - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
pyShelf.src.backend.lib.library.Catalogue Member List
-
-
- -

This is the complete list of members for pyShelf.src.backend.lib.library.Catalogue, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - -
__init__(self, config) (defined in pyShelf.src.backend.lib.library.Catalogue)pyShelf.src.backend.lib.library.Catalogue
book_folder (defined in pyShelf.src.backend.lib.library.Catalogue)pyShelf.src.backend.lib.library.Catalogue
book_shelf (defined in pyShelf.src.backend.lib.library.Catalogue)pyShelf.src.backend.lib.library.Catalogue
books (defined in pyShelf.src.backend.lib.library.Catalogue)pyShelf.src.backend.lib.library.Catalogue
compare_shelf_current(self)pyShelf.src.backend.lib.library.Catalogue
config (defined in pyShelf.src.backend.lib.library.Catalogue)pyShelf.src.backend.lib.library.Catalogue
cover_regx (defined in pyShelf.src.backend.lib.library.Catalogue)pyShelf.src.backend.lib.library.Catalogue
db_pointer (defined in pyShelf.src.backend.lib.library.Catalogue)pyShelf.src.backend.lib.library.Catalogue
extract_content(self, book_zip, book)pyShelf.src.backend.lib.library.Catalogue
extract_cover_html(self, book_zip, book)pyShelf.src.backend.lib.library.Catalogue
extract_cover_image(self, book_zip, book)pyShelf.src.backend.lib.library.Catalogue
extract_metadata(self, book)pyShelf.src.backend.lib.library.Catalogue
file_list (defined in pyShelf.src.backend.lib.library.Catalogue)pyShelf.src.backend.lib.library.Catalogue
filter_books(self)pyShelf.src.backend.lib.library.Catalogue
html_regx (defined in pyShelf.src.backend.lib.library.Catalogue)pyShelf.src.backend.lib.library.Catalogue
import_books(self, list=None)pyShelf.src.backend.lib.library.Catalogue
opf_regx (defined in pyShelf.src.backend.lib.library.Catalogue)pyShelf.src.backend.lib.library.Catalogue
process_book(book)pyShelf.src.backend.lib.library.Cataloguestatic
root_dir (defined in pyShelf.src.backend.lib.library.Catalogue)pyShelf.src.backend.lib.library.Catalogue
scan_folder(self, _path=None)pyShelf.src.backend.lib.library.Catalogue
- - - - diff --git a/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1library_1_1Catalogue.html b/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1library_1_1Catalogue.html deleted file mode 100644 index 96079ef..0000000 --- a/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1library_1_1Catalogue.html +++ /dev/null @@ -1,407 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: pyShelf.src.backend.lib.library.Catalogue Class Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-Public Member Functions | -Static Public Member Functions | -Public Attributes | -List of all members
-
-
pyShelf.src.backend.lib.library.Catalogue Class Reference
-
-
-
- + Inheritance diagram for pyShelf.src.backend.lib.library.Catalogue:
-
-
- - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-def __init__ (self, config)
 
def scan_folder (self, _path=None)
 
def filter_books (self)
 
def extract_metadata (self, book)
 
def extract_content (self, book_zip, book)
 
def extract_cover_html (self, book_zip, book)
 
def extract_cover_image (self, book_zip, book)
 
def compare_shelf_current (self)
 
def import_books (self, list=None)
 
- - - -

-Static Public Member Functions

def process_book (book)
 
- - - - - - - - - - - - - - - - - - - - - -

-Public Attributes

file_list
 
opf_regx
 
cover_regx
 
html_regx
 
root_dir
 
book_folder
 
book_shelf
 
books
 
db_pointer
 
config
 
-

Detailed Description

-
Decodes book metadata for storage
-

Member Function Documentation

- -

◆ compare_shelf_current()

- -
-
- - - - - - - - -
def pyShelf.src.backend.lib.library.Catalogue.compare_shelf_current ( self)
-
-
Calls storage system, gets list of books stored and compares against files on disk
-
-
-
- -

◆ extract_content()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
def pyShelf.src.backend.lib.library.Catalogue.extract_content ( self,
 book_zip,
 book 
)
-
-
Opens epub as zip file filters then stores as list any files matching opf_regx
-
-
-
- -

◆ extract_cover_html()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
def pyShelf.src.backend.lib.library.Catalogue.extract_cover_html ( self,
 book_zip,
 book 
)
-
-
Opens epub as zip file filters then stores as list any files matching html_regx
-
-
-
- -

◆ extract_cover_image()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
def pyShelf.src.backend.lib.library.Catalogue.extract_cover_image ( self,
 book_zip,
 book 
)
-
-
Opens epub as zip file filters then stores as list any files matching cover_regx
-
-
-
- -

◆ extract_metadata()

- -
-
- - - - - - - - - - - - - - - - - - -
def pyShelf.src.backend.lib.library.Catalogue.extract_metadata ( self,
 book 
)
-
-
Return extracted metadata and cover picture
-book['path'] == Full path to ebook file
-book['files'] == list of files from self.process_book(book)
-
-
-
- -

◆ filter_books()

- -
-
- - - - - - - - -
def pyShelf.src.backend.lib.library.Catalogue.filter_books ( self)
-
-
Calls scan_folder and filters out book files
-Proceeds to call process_book
-
-:returns self._book_list_expanded: json string containing all book metadata
-
-

Reimplemented in pyShelf.src.backend.tests.library_test.Test_Catalogue.

- -
-
- -

◆ import_books()

- -
-
- - - - - - - - - - - - - - - - - - -
def pyShelf.src.backend.lib.library.Catalogue.import_books ( self,
 list = None 
)
-
-
Main entry point for import operations.
-Gets a list of new files via compare_shelf_current.
-Iterates over list and inserts new books into database.
-
-
-
- -

◆ process_book()

- -
-
- - - - - -
- - - - - - - - -
def pyShelf.src.backend.lib.library.Catalogue.process_book ( book)
-
-static
-
-
Return dictionary of epub file contents
-
-
- -

◆ scan_folder()

- -
-
- - - - - - - - - - - - - - - - - - -
def pyShelf.src.backend.lib.library.Catalogue.scan_folder ( self,
 _path = None 
)
-
-
Scan folder by _path, allows recurisive scanning
-
-
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1library_1_1Catalogue.png b/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1library_1_1Catalogue.png deleted file mode 100644 index 9198213..0000000 Binary files a/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1library_1_1Catalogue.png and /dev/null differ diff --git a/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1pyShelf_1_1BookDisplay-members.html b/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1pyShelf_1_1BookDisplay-members.html deleted file mode 100644 index 1c66a7e..0000000 --- a/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1pyShelf_1_1BookDisplay-members.html +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: Member List - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
pyShelf.src.backend.lib.pyShelf.BookDisplay Member List
-
-
- -

This is the complete list of members for pyShelf.src.backend.lib.pyShelf.BookDisplay, including all inherited members.

- - - - - - - - - - - -
__init__(self, **kwargs)pyShelf.src.backend.lib.pyShelf.BookDisplay
books_per_page (defined in pyShelf.src.backend.lib.pyShelf.BookDisplay)pyShelf.src.backend.lib.pyShelf.BookDisplay
booksPerPage(self, screen_size)pyShelf.src.backend.lib.pyShelf.BookDisplay
current_page (defined in pyShelf.src.backend.lib.pyShelf.BookDisplay)pyShelf.src.backend.lib.pyShelf.BookDisplay
nextPage(self)pyShelf.src.backend.lib.pyShelf.BookDisplay
previousPage(self)pyShelf.src.backend.lib.pyShelf.BookDisplay
screen_size (defined in pyShelf.src.backend.lib.pyShelf.BookDisplay)pyShelf.src.backend.lib.pyShelf.BookDisplay
thumbnail_scale (defined in pyShelf.src.backend.lib.pyShelf.BookDisplay)pyShelf.src.backend.lib.pyShelf.BookDisplay
thumbnail_size (defined in pyShelf.src.backend.lib.pyShelf.BookDisplay)pyShelf.src.backend.lib.pyShelf.BookDisplay
total_pages (defined in pyShelf.src.backend.lib.pyShelf.BookDisplay)pyShelf.src.backend.lib.pyShelf.BookDisplay
- - - - diff --git a/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1pyShelf_1_1BookDisplay.html b/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1pyShelf_1_1BookDisplay.html deleted file mode 100644 index b4356ef..0000000 --- a/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1pyShelf_1_1BookDisplay.html +++ /dev/null @@ -1,206 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: pyShelf.src.backend.lib.pyShelf.BookDisplay Class Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-Public Member Functions | -Public Attributes | -List of all members
-
-
pyShelf.src.backend.lib.pyShelf.BookDisplay Class Reference
-
-
- - - - - - - - - - -

-Public Member Functions

def __init__ (self, **kwargs)
 
def nextPage (self)
 
def previousPage (self)
 
def booksPerPage (self, screen_size)
 
- - - - - - - - - - - - - -

-Public Attributes

books_per_page
 
current_page
 
thumbnail_size
 
thumbnail_scale
 
total_pages
 
screen_size
 
-

Detailed Description

-
All functions related to displaying book information in the HTML UI

Constructor & Destructor Documentation

- -

◆ __init__()

- -
-
- - - - - - - - - - - - - - - - - - -
def pyShelf.src.backend.lib.pyShelf.BookDisplay.__init__ ( self,
** kwargs 
)
-
-
Initialize class variables
-:return: None
-
-
-
-

Member Function Documentation

- -

◆ booksPerPage()

- -
-
- - - - - - - - - - - - - - - - - - -
def pyShelf.src.backend.lib.pyShelf.BookDisplay.booksPerPage ( self,
 screen_size 
)
-
-
## TODO Remove me
-Set books per page
-:param screen_size: Array containing x,y pixel sizes
-:return: self.books_per_page
-
-
-
- -

◆ nextPage()

- -
-
- - - - - - - - -
def pyShelf.src.backend.lib.pyShelf.BookDisplay.nextPage ( self)
-
-
## TODO Remove me
-Goto next book page
-:return: new current_page
-
-
-
- -

◆ previousPage()

- -
-
- - - - - - - - -
def pyShelf.src.backend.lib.pyShelf.BookDisplay.previousPage ( self)
-
-
## TODO Remove me
-Goto previous book page
-:return: new current_page
-
-
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1pyShelf_1_1InitFiles-members.html b/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1pyShelf_1_1InitFiles-members.html deleted file mode 100644 index 2c162ed..0000000 --- a/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1pyShelf_1_1InitFiles-members.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: Member List - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
pyShelf.src.backend.lib.pyShelf.InitFiles Member List
-
-
- -

This is the complete list of members for pyShelf.src.backend.lib.pyShelf.InitFiles, including all inherited members.

- - - -
__init__(self, file_array) (defined in pyShelf.src.backend.lib.pyShelf.InitFiles)pyShelf.src.backend.lib.pyShelf.InitFiles
CreateFile(self, _pointer)pyShelf.src.backend.lib.pyShelf.InitFiles
- - - - diff --git a/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1pyShelf_1_1InitFiles.html b/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1pyShelf_1_1InitFiles.html deleted file mode 100644 index d19e4a4..0000000 --- a/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1pyShelf_1_1InitFiles.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: pyShelf.src.backend.lib.pyShelf.InitFiles Class Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-Public Member Functions | -List of all members
-
-
pyShelf.src.backend.lib.pyShelf.InitFiles Class Reference
-
-
- - - - - - -

-Public Member Functions

-def __init__ (self, file_array)
 
def CreateFile (self, _pointer)
 
-

Detailed Description

-
First run file creation operations

Member Function Documentation

- -

◆ CreateFile()

- -
-
- - - - - - - - - - - - - - - - - - -
def pyShelf.src.backend.lib.pyShelf.InitFiles.CreateFile ( self,
 _pointer 
)
-
-
Checks if file exists and creates it if not
-
-
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1storage_1_1Storage-members.html b/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1storage_1_1Storage-members.html deleted file mode 100644 index 784ff73..0000000 --- a/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1storage_1_1Storage-members.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: Member List - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
pyShelf.src.backend.lib.storage.Storage Member List
-
-
- -

This is the complete list of members for pyShelf.src.backend.lib.storage.Storage, including all inherited members.

- - - - - - - - - - - - - -
__init__(self, db_pointer, config) (defined in pyShelf.src.backend.lib.storage.Storage)pyShelf.src.backend.lib.storage.Storage
book_paths_list(self)pyShelf.src.backend.lib.storage.Storage
close(self)pyShelf.src.backend.lib.storage.Storage
commit(self)pyShelf.src.backend.lib.storage.Storage
create_tables(self)pyShelf.src.backend.lib.storage.Storage
cursor (defined in pyShelf.src.backend.lib.storage.Storage)pyShelf.src.backend.lib.storage.Storage
database(self)pyShelf.src.backend.lib.storage.Storage
db (defined in pyShelf.src.backend.lib.storage.Storage)pyShelf.src.backend.lib.storage.Storage
insert_book(self, book)pyShelf.src.backend.lib.storage.Storage
password (defined in pyShelf.src.backend.lib.storage.Storage)pyShelf.src.backend.lib.storage.Storage
sql (defined in pyShelf.src.backend.lib.storage.Storage)pyShelf.src.backend.lib.storage.Storage
user (defined in pyShelf.src.backend.lib.storage.Storage)pyShelf.src.backend.lib.storage.Storage
- - - - diff --git a/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1storage_1_1Storage.html b/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1storage_1_1Storage.html deleted file mode 100644 index 4f6a4dd..0000000 --- a/docs/html/classpyShelf_1_1src_1_1backend_1_1lib_1_1storage_1_1Storage.html +++ /dev/null @@ -1,228 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: pyShelf.src.backend.lib.storage.Storage Class Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-Public Member Functions | -Public Attributes | -List of all members
-
-
pyShelf.src.backend.lib.storage.Storage Class Reference
-
-
- - - - - - - - - - - - - - - - -

-Public Member Functions

-def __init__ (self, db_pointer, config)
 
def database (self)
 
def create_tables (self)
 
def insert_book (self, book)
 
def book_paths_list (self)
 
def commit (self)
 
def close (self)
 
- - - - - - - - - - - -

-Public Attributes

sql
 
user
 
password
 
db
 
cursor
 
-

Detailed Description

-
Contains all methods for system storage

Member Function Documentation

- -

◆ book_paths_list()

- -
-
- - - - - - - - -
def pyShelf.src.backend.lib.storage.Storage.book_paths_list ( self)
-
-
Get file paths from database for comparison to system files
-
-
-
- -

◆ close()

- -
-
- - - - - - - - -
def pyShelf.src.backend.lib.storage.Storage.close ( self)
-
-
Close database connection
-
-
-
- -

◆ commit()

- -
-
- - - - - - - - -
def pyShelf.src.backend.lib.storage.Storage.commit ( self)
-
-
Commit database transactions
-
-
-
- -

◆ create_tables()

- -
-
- - - - - - - - -
def pyShelf.src.backend.lib.storage.Storage.create_tables ( self)
-
-
Create table structure
-
-
- -

◆ database()

- -
-
- - - - - - - - -
def pyShelf.src.backend.lib.storage.Storage.database ( self)
-
-
Create database cursor
-
-
- -

◆ insert_book()

- -
-
- - - - - - - - - - - - - - - - - - -
def pyShelf.src.backend.lib.storage.Storage.insert_book ( self,
 book 
)
-
-
Insert book in database
-:returns: True if succeeds False if not
-
-
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1config__test_1_1TestConfig-members.html b/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1config__test_1_1TestConfig-members.html deleted file mode 100644 index fcd6810..0000000 --- a/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1config__test_1_1TestConfig-members.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: Member List - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
pyShelf.src.backend.tests.config_test.TestConfig Member List
-
-
- -

This is the complete list of members for pyShelf.src.backend.tests.config_test.TestConfig, including all inherited members.

- - - - - -
config (defined in pyShelf.src.backend.tests.config_test.TestConfig)pyShelf.src.backend.tests.config_test.TestConfigstatic
test_book_dir(self) (defined in pyShelf.src.backend.tests.config_test.TestConfig)pyShelf.src.backend.tests.config_test.TestConfig
test_title(self) (defined in pyShelf.src.backend.tests.config_test.TestConfig)pyShelf.src.backend.tests.config_test.TestConfig
test_version(self) (defined in pyShelf.src.backend.tests.config_test.TestConfig)pyShelf.src.backend.tests.config_test.TestConfig
- - - - diff --git a/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1config__test_1_1TestConfig.html b/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1config__test_1_1TestConfig.html deleted file mode 100644 index e2ae1ba..0000000 --- a/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1config__test_1_1TestConfig.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: pyShelf.src.backend.tests.config_test.TestConfig Class Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-Public Member Functions | -Static Public Attributes | -List of all members
-
-
pyShelf.src.backend.tests.config_test.TestConfig Class Reference
-
-
- - - - - - - - -

-Public Member Functions

-def test_book_dir (self)
 
-def test_title (self)
 
-def test_version (self)
 
- - - -

-Static Public Attributes

config = Config(os.path.abspath(os.path.curdir))
 
-

Detailed Description

-

The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1TestCatalogue-members.html b/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1TestCatalogue-members.html deleted file mode 100644 index cd11f3d..0000000 --- a/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1TestCatalogue-members.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: Member List - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
pyShelf.src.backend.tests.library_test.TestCatalogue Member List
-
-
- -

This is the complete list of members for pyShelf.src.backend.tests.library_test.TestCatalogue, including all inherited members.

- - - - -
config (defined in pyShelf.src.backend.tests.library_test.TestCatalogue)pyShelf.src.backend.tests.library_test.TestCataloguestatic
root (defined in pyShelf.src.backend.tests.library_test.TestCatalogue)pyShelf.src.backend.tests.library_test.TestCataloguestatic
test_filter_books(self) (defined in pyShelf.src.backend.tests.library_test.TestCatalogue)pyShelf.src.backend.tests.library_test.TestCatalogue
- - - - diff --git a/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1TestCatalogue.html b/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1TestCatalogue.html deleted file mode 100644 index 2183d63..0000000 --- a/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1TestCatalogue.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: pyShelf.src.backend.tests.library_test.TestCatalogue Class Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-Public Member Functions | -Static Public Attributes | -List of all members
-
-
pyShelf.src.backend.tests.library_test.TestCatalogue Class Reference
-
-
- - - - -

-Public Member Functions

-def test_filter_books (self)
 
- - - - - -

-Static Public Attributes

root = os.path.abspath(os.path.curdir)
 
config = Test_Config()
 
-

Detailed Description

-

The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1Test__Catalogue-members.html b/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1Test__Catalogue-members.html deleted file mode 100644 index e1a0870..0000000 --- a/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1Test__Catalogue-members.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: Member List - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
pyShelf.src.backend.tests.library_test.Test_Catalogue Member List
-
-
- -

This is the complete list of members for pyShelf.src.backend.tests.library_test.Test_Catalogue, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - -
__init__(self) (defined in pyShelf.src.backend.tests.library_test.Test_Catalogue)pyShelf.src.backend.tests.library_test.Test_Catalogue
__init__(self, config) (defined in pyShelf.src.backend.lib.library.Catalogue)pyShelf.src.backend.lib.library.Catalogue
book_folder (defined in pyShelf.src.backend.lib.library.Catalogue)pyShelf.src.backend.lib.library.Catalogue
book_shelf (defined in pyShelf.src.backend.tests.library_test.Test_Catalogue)pyShelf.src.backend.tests.library_test.Test_Catalogue
books (defined in pyShelf.src.backend.lib.library.Catalogue)pyShelf.src.backend.lib.library.Catalogue
compare_shelf_current(self)pyShelf.src.backend.lib.library.Catalogue
config (defined in pyShelf.src.backend.lib.library.Catalogue)pyShelf.src.backend.lib.library.Catalogue
cover_regx (defined in pyShelf.src.backend.lib.library.Catalogue)pyShelf.src.backend.lib.library.Catalogue
db_pointer (defined in pyShelf.src.backend.lib.library.Catalogue)pyShelf.src.backend.lib.library.Catalogue
extract_content(self, book_zip, book)pyShelf.src.backend.lib.library.Catalogue
extract_cover_html(self, book_zip, book)pyShelf.src.backend.lib.library.Catalogue
extract_cover_image(self, book_zip, book)pyShelf.src.backend.lib.library.Catalogue
extract_metadata(self, book)pyShelf.src.backend.lib.library.Catalogue
file_list (defined in pyShelf.src.backend.lib.library.Catalogue)pyShelf.src.backend.lib.library.Catalogue
filter_books(self)pyShelf.src.backend.tests.library_test.Test_Catalogue
html_regx (defined in pyShelf.src.backend.lib.library.Catalogue)pyShelf.src.backend.lib.library.Catalogue
import_books(self, list=None)pyShelf.src.backend.lib.library.Catalogue
opf_regx (defined in pyShelf.src.backend.lib.library.Catalogue)pyShelf.src.backend.lib.library.Catalogue
process_book(book)pyShelf.src.backend.lib.library.Cataloguestatic
root_dir (defined in pyShelf.src.backend.lib.library.Catalogue)pyShelf.src.backend.lib.library.Catalogue
scan_folder(self, _path=None)pyShelf.src.backend.lib.library.Catalogue
- - - - diff --git a/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1Test__Catalogue.html b/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1Test__Catalogue.html deleted file mode 100644 index 98368a1..0000000 --- a/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1Test__Catalogue.html +++ /dev/null @@ -1,462 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: pyShelf.src.backend.tests.library_test.Test_Catalogue Class Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-Public Member Functions | -Static Public Member Functions | -Public Attributes | -List of all members
-
-
pyShelf.src.backend.tests.library_test.Test_Catalogue Class Reference
-
-
-
- + Inheritance diagram for pyShelf.src.backend.tests.library_test.Test_Catalogue:
-
-
- - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-def __init__ (self)
 
def filter_books (self)
 
def scan_folder (self, _path=None)
 
def extract_metadata (self, book)
 
def extract_content (self, book_zip, book)
 
def extract_cover_html (self, book_zip, book)
 
def extract_cover_image (self, book_zip, book)
 
def compare_shelf_current (self)
 
def import_books (self, list=None)
 
- - - -

-Static Public Member Functions

def process_book (book)
 
- - - - - - - - - - - - - - - - - - - - - -

-Public Attributes

book_shelf
 
file_list
 
opf_regx
 
cover_regx
 
html_regx
 
root_dir
 
book_folder
 
books
 
db_pointer
 
config
 
-

Detailed Description

-

Member Function Documentation

- -

◆ compare_shelf_current()

- -
-
- - - - - -
- - - - - - - - -
def pyShelf.src.backend.lib.library.Catalogue.compare_shelf_current ( self)
-
-inherited
-
-
Calls storage system, gets list of books stored and compares against files on disk
-
-
-
- -

◆ extract_content()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
def pyShelf.src.backend.lib.library.Catalogue.extract_content ( self,
 book_zip,
 book 
)
-
-inherited
-
-
Opens epub as zip file filters then stores as list any files matching opf_regx
-
-
-
- -

◆ extract_cover_html()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
def pyShelf.src.backend.lib.library.Catalogue.extract_cover_html ( self,
 book_zip,
 book 
)
-
-inherited
-
-
Opens epub as zip file filters then stores as list any files matching html_regx
-
-
-
- -

◆ extract_cover_image()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
def pyShelf.src.backend.lib.library.Catalogue.extract_cover_image ( self,
 book_zip,
 book 
)
-
-inherited
-
-
Opens epub as zip file filters then stores as list any files matching cover_regx
-
-
-
- -

◆ extract_metadata()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
def pyShelf.src.backend.lib.library.Catalogue.extract_metadata ( self,
 book 
)
-
-inherited
-
-
Return extracted metadata and cover picture
-book['path'] == Full path to ebook file
-book['files'] == list of files from self.process_book(book)
-
-
-
- -

◆ filter_books()

- -
-
- - - - - - - - -
def pyShelf.src.backend.tests.library_test.Test_Catalogue.filter_books ( self)
-
-
Calls scan_folder and filters out book files
-Proceeds to call process_book
-
-:returns self._book_list_expanded: json string containing all book metadata
-
-

Reimplemented from pyShelf.src.backend.lib.library.Catalogue.

- -
-
- -

◆ import_books()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
def pyShelf.src.backend.lib.library.Catalogue.import_books ( self,
 list = None 
)
-
-inherited
-
-
Main entry point for import operations.
-Gets a list of new files via compare_shelf_current.
-Iterates over list and inserts new books into database.
-
-
-
- -

◆ process_book()

- -
-
- - - - - -
- - - - - - - - -
def pyShelf.src.backend.lib.library.Catalogue.process_book ( book)
-
-staticinherited
-
-
Return dictionary of epub file contents
-
-
- -

◆ scan_folder()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
def pyShelf.src.backend.lib.library.Catalogue.scan_folder ( self,
 _path = None 
)
-
-inherited
-
-
Scan folder by _path, allows recurisive scanning
-
-
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1Test__Catalogue.png b/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1Test__Catalogue.png deleted file mode 100644 index 33ae867..0000000 Binary files a/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1Test__Catalogue.png and /dev/null differ diff --git a/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1Test__Config-members.html b/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1Test__Config-members.html deleted file mode 100644 index 042bcd5..0000000 --- a/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1Test__Config-members.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: Member List - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
pyShelf.src.backend.tests.library_test.Test_Config Member List
-
-
- -

This is the complete list of members for pyShelf.src.backend.tests.library_test.Test_Config, including all inherited members.

- - - - - - - - - - - - - - -
__init__(self) (defined in pyShelf.src.backend.tests.library_test.Test_Config)pyShelf.src.backend.tests.library_test.Test_Config
__init__(self, root) (defined in pyShelf.src.backend.lib.config.Config)pyShelf.src.backend.lib.config.Config
auto_scan (defined in pyShelf.src.backend.lib.config.Config)pyShelf.src.backend.lib.config.Config
book_path (defined in pyShelf.src.backend.lib.config.Config)pyShelf.src.backend.lib.config.Config
book_shelf (defined in pyShelf.src.backend.lib.config.Config)pyShelf.src.backend.lib.config.Config
catalogue_db (defined in pyShelf.src.backend.lib.config.Config)pyShelf.src.backend.lib.config.Config
file_array (defined in pyShelf.src.backend.lib.config.Config)pyShelf.src.backend.lib.config.Config
open_file(self, root="config.json")pyShelf.src.backend.tests.library_test.Test_Config
password (defined in pyShelf.src.backend.lib.config.Config)pyShelf.src.backend.lib.config.Config
root (defined in pyShelf.src.backend.lib.config.Config)pyShelf.src.backend.lib.config.Config
TITLE (defined in pyShelf.src.backend.lib.config.Config)pyShelf.src.backend.lib.config.Config
user (defined in pyShelf.src.backend.lib.config.Config)pyShelf.src.backend.lib.config.Config
VERSION (defined in pyShelf.src.backend.lib.config.Config)pyShelf.src.backend.lib.config.Config
- - - - diff --git a/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1Test__Config.html b/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1Test__Config.html deleted file mode 100644 index d2ce3ae..0000000 --- a/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1Test__Config.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: pyShelf.src.backend.tests.library_test.Test_Config Class Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-Public Member Functions | -Public Attributes | -List of all members
-
-
pyShelf.src.backend.tests.library_test.Test_Config Class Reference
-
-
-
- + Inheritance diagram for pyShelf.src.backend.tests.library_test.Test_Config:
-
-
- - - - - - - -

-Public Member Functions

-def __init__ (self)
 
def open_file (self, root="config.json")
 
- - - - - - - - - - - - - - - - - - - - - -

-Public Attributes

book_path
 
TITLE
 
VERSION
 
book_shelf
 
catalogue_db
 
user
 
password
 
file_array
 
root
 
auto_scan
 
-

Detailed Description

-

Member Function Documentation

- -

◆ open_file()

- -
-
- - - - - - - - - - - - - - - - - - -
def pyShelf.src.backend.tests.library_test.Test_Config.open_file ( self,
 _cp = "config.json" 
)
-
-
Opens config.json and reads in configuration options
-
-

Reimplemented from pyShelf.src.backend.lib.config.Config.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1Test__Config.png b/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1Test__Config.png deleted file mode 100644 index f564331..0000000 Binary files a/docs/html/classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1Test__Config.png and /dev/null differ diff --git a/docs/html/classpyShelf_1_1src_1_1interface_1_1apps_1_1InterfaceConfig-members.html b/docs/html/classpyShelf_1_1src_1_1interface_1_1apps_1_1InterfaceConfig-members.html deleted file mode 100644 index 5431719..0000000 --- a/docs/html/classpyShelf_1_1src_1_1interface_1_1apps_1_1InterfaceConfig-members.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: Member List - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
pyShelf.src.interface.apps.InterfaceConfig Member List
-
-
- -

This is the complete list of members for pyShelf.src.interface.apps.InterfaceConfig, including all inherited members.

- - -
name (defined in pyShelf.src.interface.apps.InterfaceConfig)pyShelf.src.interface.apps.InterfaceConfigstatic
- - - - diff --git a/docs/html/classpyShelf_1_1src_1_1interface_1_1apps_1_1InterfaceConfig.html b/docs/html/classpyShelf_1_1src_1_1interface_1_1apps_1_1InterfaceConfig.html deleted file mode 100644 index 1f02588..0000000 --- a/docs/html/classpyShelf_1_1src_1_1interface_1_1apps_1_1InterfaceConfig.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: pyShelf.src.interface.apps.InterfaceConfig Class Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-Static Public Attributes | -List of all members
-
-
pyShelf.src.interface.apps.InterfaceConfig Class Reference
-
-
-
- + Inheritance diagram for pyShelf.src.interface.apps.InterfaceConfig:
-
-
- - - - - -

-Static Public Attributes

-string name = "interface"
 
-

Detailed Description

-

The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/html/classpyShelf_1_1src_1_1interface_1_1apps_1_1InterfaceConfig.png b/docs/html/classpyShelf_1_1src_1_1interface_1_1apps_1_1InterfaceConfig.png deleted file mode 100644 index 23b9a2f..0000000 Binary files a/docs/html/classpyShelf_1_1src_1_1interface_1_1apps_1_1InterfaceConfig.png and /dev/null differ diff --git a/docs/html/classpyShelf_1_1src_1_1interface_1_1migrations_1_10001__initial_1_1Migration-members.html b/docs/html/classpyShelf_1_1src_1_1interface_1_1migrations_1_10001__initial_1_1Migration-members.html deleted file mode 100644 index c3f238f..0000000 --- a/docs/html/classpyShelf_1_1src_1_1interface_1_1migrations_1_10001__initial_1_1Migration-members.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: Member List - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
pyShelf.src.interface.migrations.0001_initial.Migration Member List
-
-
- -

This is the complete list of members for pyShelf.src.interface.migrations.0001_initial.Migration, including all inherited members.

- - - - -
dependencies (defined in pyShelf.src.interface.migrations.0001_initial.Migration)pyShelf.src.interface.migrations.0001_initial.Migrationstatic
initial (defined in pyShelf.src.interface.migrations.0001_initial.Migration)pyShelf.src.interface.migrations.0001_initial.Migrationstatic
operations (defined in pyShelf.src.interface.migrations.0001_initial.Migration)pyShelf.src.interface.migrations.0001_initial.Migrationstatic
- - - - diff --git a/docs/html/classpyShelf_1_1src_1_1interface_1_1migrations_1_10001__initial_1_1Migration.html b/docs/html/classpyShelf_1_1src_1_1interface_1_1migrations_1_10001__initial_1_1Migration.html deleted file mode 100644 index 77fab88..0000000 --- a/docs/html/classpyShelf_1_1src_1_1interface_1_1migrations_1_10001__initial_1_1Migration.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: pyShelf.src.interface.migrations.0001_initial.Migration Class Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-Static Public Attributes | -List of all members
-
-
pyShelf.src.interface.migrations.0001_initial.Migration Class Reference
-
-
-
- + Inheritance diagram for pyShelf.src.interface.migrations.0001_initial.Migration:
-
-
- - - - - - - - - -

-Static Public Attributes

-bool initial = True
 
-list dependencies = []
 
list operations
 
-

Detailed Description

-

Member Data Documentation

- -

◆ operations

- -
-
- - - - - -
- - - - -
list pyShelf.src.interface.migrations.0001_initial.Migration.operations
-
-static
-
-Initial value:
= [
-
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",},
-
),
-
]
-
-
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/html/classpyShelf_1_1src_1_1interface_1_1migrations_1_10001__initial_1_1Migration.png b/docs/html/classpyShelf_1_1src_1_1interface_1_1migrations_1_10001__initial_1_1Migration.png deleted file mode 100644 index abff510..0000000 Binary files a/docs/html/classpyShelf_1_1src_1_1interface_1_1migrations_1_10001__initial_1_1Migration.png and /dev/null differ diff --git a/docs/html/classpyShelf_1_1src_1_1interface_1_1models_1_1Books-members.html b/docs/html/classpyShelf_1_1src_1_1interface_1_1models_1_1Books-members.html deleted file mode 100644 index 68ce195..0000000 --- a/docs/html/classpyShelf_1_1src_1_1interface_1_1models_1_1Books-members.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: Member List - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
pyShelf.src.interface.models.Books Member List
-
-
- -

This is the complete list of members for pyShelf.src.interface.models.Books, including all inherited members.

- - - - - - - - - - -
__str__(self) (defined in pyShelf.src.interface.models.Books)pyShelf.src.interface.models.Books
author (defined in pyShelf.src.interface.models.Books)pyShelf.src.interface.models.Booksstatic
categories (defined in pyShelf.src.interface.models.Books)pyShelf.src.interface.models.Booksstatic
cover (defined in pyShelf.src.interface.models.Books)pyShelf.src.interface.models.Booksstatic
file_name (defined in pyShelf.src.interface.models.Books)pyShelf.src.interface.models.Booksstatic
get_absolute_url(self)pyShelf.src.interface.models.Books
pages (defined in pyShelf.src.interface.models.Books)pyShelf.src.interface.models.Booksstatic
progress (defined in pyShelf.src.interface.models.Books)pyShelf.src.interface.models.Booksstatic
title (defined in pyShelf.src.interface.models.Books)pyShelf.src.interface.models.Booksstatic
- - - - diff --git a/docs/html/classpyShelf_1_1src_1_1interface_1_1models_1_1Books.html b/docs/html/classpyShelf_1_1src_1_1interface_1_1models_1_1Books.html deleted file mode 100644 index b441f17..0000000 --- a/docs/html/classpyShelf_1_1src_1_1interface_1_1models_1_1Books.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: pyShelf.src.interface.models.Books Class Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-Classes | -Public Member Functions | -Static Public Attributes | -List of all members
-
-
pyShelf.src.interface.models.Books Class Reference
-
-
-
- + Inheritance diagram for pyShelf.src.interface.models.Books:
-
-
- - - - - -

-Classes

class  Meta
 
- - - - - -

-Public Member Functions

-def __str__ (self)
 
def get_absolute_url (self)
 
- - - - - - - - - - - - - - - -

-Static Public Attributes

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)
 
-

Detailed Description

-
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
-

Member Function Documentation

- -

◆ get_absolute_url()

- -
-
- - - - - - - - -
def pyShelf.src.interface.models.Books.get_absolute_url ( self)
-
-
Returns the url to access a particular instance of MyModelName.
-
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/html/classpyShelf_1_1src_1_1interface_1_1models_1_1Books.png b/docs/html/classpyShelf_1_1src_1_1interface_1_1models_1_1Books.png deleted file mode 100644 index 4bc3819..0000000 Binary files a/docs/html/classpyShelf_1_1src_1_1interface_1_1models_1_1Books.png and /dev/null differ diff --git a/docs/html/classpyShelf_1_1src_1_1interface_1_1models_1_1Books_1_1Meta-members.html b/docs/html/classpyShelf_1_1src_1_1interface_1_1models_1_1Books_1_1Meta-members.html deleted file mode 100644 index 1a14909..0000000 --- a/docs/html/classpyShelf_1_1src_1_1interface_1_1models_1_1Books_1_1Meta-members.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: Member List - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
pyShelf.src.interface.models.Books.Meta Member List
-
-
- -

This is the complete list of members for pyShelf.src.interface.models.Books.Meta, including all inherited members.

- - -
db_table (defined in pyShelf.src.interface.models.Books.Meta)pyShelf.src.interface.models.Books.Metastatic
- - - - diff --git a/docs/html/classpyShelf_1_1src_1_1interface_1_1models_1_1Books_1_1Meta.html b/docs/html/classpyShelf_1_1src_1_1interface_1_1models_1_1Books_1_1Meta.html deleted file mode 100644 index 492756a..0000000 --- a/docs/html/classpyShelf_1_1src_1_1interface_1_1models_1_1Books_1_1Meta.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: pyShelf.src.interface.models.Books.Meta Class Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-Static Public Attributes | -List of all members
-
-
pyShelf.src.interface.models.Books.Meta Class Reference
-
-
- - - - -

-Static Public Attributes

-string db_table = "books"
 
-

Detailed Description

-

The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/html/closed.png b/docs/html/closed.png deleted file mode 100644 index 98cc2c9..0000000 Binary files a/docs/html/closed.png and /dev/null differ diff --git a/docs/html/dir_115a8af934cb6b8073d7541c3a02a8e0.html b/docs/html/dir_115a8af934cb6b8073d7541c3a02a8e0.html deleted file mode 100644 index eef54c6..0000000 --- a/docs/html/dir_115a8af934cb6b8073d7541c3a02a8e0.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: src/interface/static Directory Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
static Directory Reference
-
-
-
- - - - diff --git a/docs/html/dir_1c7294442ce83d360610449d04c9d7fc.html b/docs/html/dir_1c7294442ce83d360610449d04c9d7fc.html deleted file mode 100644 index 354d797..0000000 --- a/docs/html/dir_1c7294442ce83d360610449d04c9d7fc.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: src/backend/lib Directory Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
lib Directory Reference
-
-
-
- - - - diff --git a/docs/html/dir_2e4fe7818a9bea2340465344c5b4f122.html b/docs/html/dir_2e4fe7818a9bea2340465344c5b4f122.html deleted file mode 100644 index 4efd2db..0000000 --- a/docs/html/dir_2e4fe7818a9bea2340465344c5b4f122.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: src/interface/static/admin/css/vendor/select2 Directory Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
select2 Directory Reference
-
-
-
- - - - diff --git a/docs/html/dir_3f615ade772d23cefe5e20dcb18424a2.html b/docs/html/dir_3f615ade772d23cefe5e20dcb18424a2.html deleted file mode 100644 index 1253850..0000000 --- a/docs/html/dir_3f615ade772d23cefe5e20dcb18424a2.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: src/backend Directory Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
backend Directory Reference
-
-
- - -

-Directories

-
- - - - diff --git a/docs/html/dir_5dc60ce45ea83ccf35a995eb718413e2.html b/docs/html/dir_5dc60ce45ea83ccf35a995eb718413e2.html deleted file mode 100644 index 8f0f8d2..0000000 --- a/docs/html/dir_5dc60ce45ea83ccf35a995eb718413e2.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: src/interface/migrations Directory Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
migrations Directory Reference
-
-
-
- - - - diff --git a/docs/html/dir_650ee533936399e683a30afb9473a469.html b/docs/html/dir_650ee533936399e683a30afb9473a469.html deleted file mode 100644 index 9f931b4..0000000 --- a/docs/html/dir_650ee533936399e683a30afb9473a469.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: src/interface Directory Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
interface Directory Reference
-
-
- - - - -

-Directories

directory  static
 
-
- - - - diff --git a/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html deleted file mode 100644 index b6aa6dc..0000000 --- a/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: src Directory Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
src Directory Reference
-
-
- - -

-Directories

-
- - - - diff --git a/docs/html/dir_80adb54c76bf5d67e934da378f00559d.html b/docs/html/dir_80adb54c76bf5d67e934da378f00559d.html deleted file mode 100644 index 9bb8ca1..0000000 --- a/docs/html/dir_80adb54c76bf5d67e934da378f00559d.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: src/interface/static/admin/js/vendor Directory Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
vendor Directory Reference
-
-
-
- - - - diff --git a/docs/html/dir_8509b06bafa958d2011203a730bf5778.html b/docs/html/dir_8509b06bafa958d2011203a730bf5778.html deleted file mode 100644 index 5c9deec..0000000 --- a/docs/html/dir_8509b06bafa958d2011203a730bf5778.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: src/frontend Directory Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
frontend Directory Reference
-
-
-
- - - - diff --git a/docs/html/dir_9020577e2da81c4cf5a5554c26431f94.html b/docs/html/dir_9020577e2da81c4cf5a5554c26431f94.html deleted file mode 100644 index d5be62c..0000000 --- a/docs/html/dir_9020577e2da81c4cf5a5554c26431f94.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: src/backend/tests Directory Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
tests Directory Reference
-
-
-
- - - - diff --git a/docs/html/dir_9662e62442d92157d391ef66bee26a3c.html b/docs/html/dir_9662e62442d92157d391ef66bee26a3c.html deleted file mode 100644 index be4eff6..0000000 --- a/docs/html/dir_9662e62442d92157d391ef66bee26a3c.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: src/interface/static/admin/css/vendor Directory Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
vendor Directory Reference
-
-
-
- - - - diff --git a/docs/html/dir_a05f942952f29ba3ff0b6cf8bcd4f651.html b/docs/html/dir_a05f942952f29ba3ff0b6cf8bcd4f651.html deleted file mode 100644 index 463cd39..0000000 --- a/docs/html/dir_a05f942952f29ba3ff0b6cf8bcd4f651.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: src/interface/static/admin Directory Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
admin Directory Reference
-
-
-
- - - - diff --git a/docs/html/dir_bf61165a5ec6f092245f16c80e25d9dd.html b/docs/html/dir_bf61165a5ec6f092245f16c80e25d9dd.html deleted file mode 100644 index 64c5d5f..0000000 --- a/docs/html/dir_bf61165a5ec6f092245f16c80e25d9dd.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: src/interface/static/admin/css Directory Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
css Directory Reference
-
-
-
- - - - diff --git a/docs/html/dir_c9cb39ed8b98bd7419bc6fb3338b22e5.html b/docs/html/dir_c9cb39ed8b98bd7419bc6fb3338b22e5.html deleted file mode 100644 index 4546f25..0000000 --- a/docs/html/dir_c9cb39ed8b98bd7419bc6fb3338b22e5.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: src/interface/templatetags Directory Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
templatetags Directory Reference
-
-
-
- - - - diff --git a/docs/html/dir_d57dcc97c471b6c632c5e6143b3e3c97.html b/docs/html/dir_d57dcc97c471b6c632c5e6143b3e3c97.html deleted file mode 100644 index 1c2ff3a..0000000 --- a/docs/html/dir_d57dcc97c471b6c632c5e6143b3e3c97.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: src/interface/static/admin/js Directory Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
js Directory Reference
-
-
-
- - - - diff --git a/docs/html/dir_e5dd47fdf1c13a2660cfdd48f6dbd07c.html b/docs/html/dir_e5dd47fdf1c13a2660cfdd48f6dbd07c.html deleted file mode 100644 index 235063e..0000000 --- a/docs/html/dir_e5dd47fdf1c13a2660cfdd48f6dbd07c.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: src/interface/static/admin/js/vendor/select2 Directory Reference - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - - -
-
-
-
select2 Directory Reference
-
-
-
- - - - diff --git a/docs/html/doc.png b/docs/html/doc.png deleted file mode 100644 index 17edabf..0000000 Binary files a/docs/html/doc.png and /dev/null differ diff --git a/docs/html/doxygen.css b/docs/html/doxygen.css deleted file mode 100644 index 47c4fbd..0000000 --- a/docs/html/doxygen.css +++ /dev/null @@ -1,1765 +0,0 @@ -/* The standard CSS for doxygen 1.8.16 */ - -body, table, div, p, dl { - font: 400 14px/22px Roboto,sans-serif; -} - -p.reference, p.definition { - font: 400 14px/22px Roboto,sans-serif; -} - -/* @group Heading Levels */ - -h1.groupheader { - font-size: 150%; -} - -.title { - font: 400 14px/28px Roboto,sans-serif; - font-size: 150%; - font-weight: bold; - margin: 10px 2px; -} - -h2.groupheader { - border-bottom: 1px solid #879ECB; - color: #354C7B; - font-size: 150%; - font-weight: normal; - margin-top: 1.75em; - padding-top: 8px; - padding-bottom: 4px; - width: 100%; -} - -h3.groupheader { - font-size: 100%; -} - -h1, h2, h3, h4, h5, h6 { - -webkit-transition: text-shadow 0.5s linear; - -moz-transition: text-shadow 0.5s linear; - -ms-transition: text-shadow 0.5s linear; - -o-transition: text-shadow 0.5s linear; - transition: text-shadow 0.5s linear; - margin-right: 15px; -} - -h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { - text-shadow: 0 0 15px cyan; -} - -dt { - font-weight: bold; -} - -ul.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; - column-count: 3; -} - -p.startli, p.startdd { - margin-top: 2px; -} - -p.starttd { - margin-top: 0px; -} - -p.endli { - margin-bottom: 0px; -} - -p.enddd { - margin-bottom: 4px; -} - -p.endtd { - margin-bottom: 2px; -} - -p.interli { -} - -p.interdd { -} - -p.intertd { -} - -/* @end */ - -caption { - font-weight: bold; -} - -span.legend { - font-size: 70%; - text-align: center; -} - -h3.version { - font-size: 90%; - text-align: center; -} - -div.qindex, div.navtab{ - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; -} - -div.qindex, div.navpath { - width: 100%; - line-height: 140%; -} - -div.navtab { - margin-right: 15px; -} - -/* @group Link Styling */ - -a { - color: #3D578C; - font-weight: normal; - text-decoration: none; -} - -.contents a:visited { - color: #4665A2; -} - -a:hover { - text-decoration: underline; -} - -a.qindex { - font-weight: bold; -} - -a.qindexHL { - font-weight: bold; - background-color: #9CAFD4; - color: #FFFFFF; - border: 1px double #869DCA; -} - -.contents a.qindexHL:visited { - color: #FFFFFF; -} - -a.el { - font-weight: bold; -} - -a.elRef { -} - -a.code, a.code:visited, a.line, a.line:visited { - color: #4665A2; -} - -a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { - color: #4665A2; -} - -/* @end */ - -dl.el { - margin-left: -1cm; -} - -ul { - overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ -} - -#side-nav ul { - overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ -} - -#main-nav ul { - overflow: visible; /* reset ul rule for the navigation bar drop down lists */ -} - -.fragment { - text-align: left; - direction: ltr; - overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ - overflow-y: hidden; -} - -pre.fragment { - border: 1px solid #C4CFE5; - background-color: #FBFCFD; - padding: 4px 6px; - margin: 4px 8px 4px 2px; - overflow: auto; - word-wrap: break-word; - font-size: 9pt; - line-height: 125%; - font-family: monospace, fixed; - font-size: 105%; -} - -div.fragment { - padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ - margin: 4px 8px 4px 2px; - background-color: #FBFCFD; - border: 1px solid #C4CFE5; -} - -div.line { - font-family: monospace, fixed; - font-size: 13px; - min-height: 13px; - line-height: 1.0; - text-wrap: unrestricted; - white-space: -moz-pre-wrap; /* Moz */ - white-space: -pre-wrap; /* Opera 4-6 */ - white-space: -o-pre-wrap; /* Opera 7 */ - white-space: pre-wrap; /* CSS3 */ - word-wrap: break-word; /* IE 5.5+ */ - text-indent: -53px; - padding-left: 53px; - padding-bottom: 0px; - margin: 0px; - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -div.line:after { - content:"\000A"; - white-space: pre; -} - -div.line.glow { - background-color: cyan; - box-shadow: 0 0 10px cyan; -} - - -span.lineno { - padding-right: 4px; - text-align: right; - border-right: 2px solid #0F0; - background-color: #E8E8E8; - white-space: pre; -} -span.lineno a { - background-color: #D8D8D8; -} - -span.lineno a:hover { - background-color: #C8C8C8; -} - -.lineno { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -div.ah, span.ah { - background-color: black; - font-weight: bold; - color: #FFFFFF; - margin-bottom: 3px; - margin-top: 3px; - padding: 0.2em; - border: solid thin #333; - border-radius: 0.5em; - -webkit-border-radius: .5em; - -moz-border-radius: .5em; - box-shadow: 2px 2px 3px #999; - -webkit-box-shadow: 2px 2px 3px #999; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); - background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); -} - -div.classindex ul { - list-style: none; - padding-left: 0; -} - -div.classindex span.ai { - display: inline-block; -} - -div.groupHeader { - margin-left: 16px; - margin-top: 12px; - font-weight: bold; -} - -div.groupText { - margin-left: 16px; - font-style: italic; -} - -body { - background-color: white; - color: black; - margin: 0; -} - -div.contents { - margin-top: 10px; - margin-left: 12px; - margin-right: 8px; -} - -td.indexkey { - background-color: #EBEFF6; - font-weight: bold; - border: 1px solid #C4CFE5; - margin: 2px 0px 2px 0; - padding: 2px 10px; - white-space: nowrap; - vertical-align: top; -} - -td.indexvalue { - background-color: #EBEFF6; - border: 1px solid #C4CFE5; - padding: 2px 10px; - margin: 2px 0px; -} - -tr.memlist { - background-color: #EEF1F7; -} - -p.formulaDsp { - text-align: center; -} - -img.formulaDsp { - -} - -img.formulaInl, img.inline { - vertical-align: middle; -} - -div.center { - text-align: center; - margin-top: 0px; - margin-bottom: 0px; - padding: 0px; -} - -div.center img { - border: 0px; -} - -address.footer { - text-align: right; - padding-right: 12px; -} - -img.footer { - border: 0px; - vertical-align: middle; -} - -/* @group Code Colorization */ - -span.keyword { - color: #008000 -} - -span.keywordtype { - color: #604020 -} - -span.keywordflow { - color: #e08000 -} - -span.comment { - color: #800000 -} - -span.preprocessor { - color: #806020 -} - -span.stringliteral { - color: #002080 -} - -span.charliteral { - color: #008080 -} - -span.vhdldigit { - color: #ff00ff -} - -span.vhdlchar { - color: #000000 -} - -span.vhdlkeyword { - color: #700070 -} - -span.vhdllogic { - color: #ff0000 -} - -blockquote { - background-color: #F7F8FB; - border-left: 2px solid #9CAFD4; - margin: 0 24px 0 4px; - padding: 0 12px 0 16px; -} - -blockquote.DocNodeRTL { - border-left: 0; - border-right: 2px solid #9CAFD4; - margin: 0 4px 0 24px; - padding: 0 16px 0 12px; -} - -/* @end */ - -/* -.search { - color: #003399; - font-weight: bold; -} - -form.search { - margin-bottom: 0px; - margin-top: 0px; -} - -input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} -*/ - -td.tiny { - font-size: 75%; -} - -.dirtab { - padding: 4px; - border-collapse: collapse; - border: 1px solid #A3B4D7; -} - -th.dirtab { - background: #EBEFF6; - font-weight: bold; -} - -hr { - height: 0px; - border: none; - border-top: 1px solid #4A6AAA; -} - -hr.footer { - height: 1px; -} - -/* @group Member Descriptions */ - -table.memberdecls { - border-spacing: 0px; - padding: 0px; -} - -.memberdecls td, .fieldtable tr { - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -.memberdecls td.glow, .fieldtable tr.glow { - background-color: cyan; - box-shadow: 0 0 15px cyan; -} - -.mdescLeft, .mdescRight, -.memItemLeft, .memItemRight, -.memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #F9FAFC; - border: none; - margin: 4px; - padding: 1px 0 0 8px; -} - -.mdescLeft, .mdescRight { - padding: 0px 8px 4px 8px; - color: #555; -} - -.memSeparator { - border-bottom: 1px solid #DEE4F0; - line-height: 1px; - margin: 0px; - padding: 0px; -} - -.memItemLeft, .memTemplItemLeft { - white-space: nowrap; -} - -.memItemRight { - width: 100%; -} - -.memTemplParams { - color: #4665A2; - white-space: nowrap; - font-size: 80%; -} - -/* @end */ - -/* @group Member Details */ - -/* Styles for detailed member documentation */ - -.memtitle { - padding: 8px; - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - border-top-right-radius: 4px; - border-top-left-radius: 4px; - margin-bottom: -1px; - background-image: url('nav_f.png'); - background-repeat: repeat-x; - background-color: #E2E8F2; - line-height: 1.25; - font-weight: 300; - float:left; -} - -.permalink -{ - font-size: 65%; - display: inline-block; - vertical-align: middle; -} - -.memtemplate { - font-size: 80%; - color: #4665A2; - font-weight: normal; - margin-left: 9px; -} - -.memnav { - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} - -.mempage { - width: 100%; -} - -.memitem { - padding: 0; - margin-bottom: 10px; - margin-right: 5px; - -webkit-transition: box-shadow 0.5s linear; - -moz-transition: box-shadow 0.5s linear; - -ms-transition: box-shadow 0.5s linear; - -o-transition: box-shadow 0.5s linear; - transition: box-shadow 0.5s linear; - display: table !important; - width: 100%; -} - -.memitem.glow { - box-shadow: 0 0 15px cyan; -} - -.memname { - font-weight: 400; - margin-left: 6px; -} - -.memname td { - vertical-align: bottom; -} - -.memproto, dl.reflist dt { - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 0px 6px 0px; - color: #253555; - font-weight: bold; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - background-color: #DFE5F1; - /* opera specific markup */ - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - border-top-right-radius: 4px; - /* firefox specific markup */ - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - -moz-border-radius-topright: 4px; - /* webkit specific markup */ - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - -webkit-border-top-right-radius: 4px; - -} - -.overload { - font-family: "courier new",courier,monospace; - font-size: 65%; -} - -.memdoc, dl.reflist dd { - border-bottom: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 10px 2px 10px; - background-color: #FBFCFD; - border-top-width: 0; - background-image:url('nav_g.png'); - background-repeat:repeat-x; - background-color: #FFFFFF; - /* opera specific markup */ - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - /* firefox specific markup */ - -moz-border-radius-bottomleft: 4px; - -moz-border-radius-bottomright: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - /* webkit specific markup */ - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -} - -dl.reflist dt { - padding: 5px; -} - -dl.reflist dd { - margin: 0px 0px 10px 0px; - padding: 5px; -} - -.paramkey { - text-align: right; -} - -.paramtype { - white-space: nowrap; -} - -.paramname { - color: #602020; - white-space: nowrap; -} -.paramname em { - font-style: normal; -} -.paramname code { - line-height: 14px; -} - -.params, .retval, .exception, .tparams { - margin-left: 0px; - padding-left: 0px; -} - -.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { - font-weight: bold; - vertical-align: top; -} - -.params .paramtype, .tparams .paramtype { - font-style: italic; - vertical-align: top; -} - -.params .paramdir, .tparams .paramdir { - font-family: "courier new",courier,monospace; - vertical-align: top; -} - -table.mlabels { - border-spacing: 0px; -} - -td.mlabels-left { - width: 100%; - padding: 0px; -} - -td.mlabels-right { - vertical-align: bottom; - padding: 0px; - white-space: nowrap; -} - -span.mlabels { - margin-left: 8px; -} - -span.mlabel { - background-color: #728DC1; - border-top:1px solid #5373B4; - border-left:1px solid #5373B4; - border-right:1px solid #C4CFE5; - border-bottom:1px solid #C4CFE5; - text-shadow: none; - color: white; - margin-right: 4px; - padding: 2px 3px; - border-radius: 3px; - font-size: 7pt; - white-space: nowrap; - vertical-align: middle; -} - - - -/* @end */ - -/* these are for tree view inside a (index) page */ - -div.directory { - margin: 10px 0px; - border-top: 1px solid #9CAFD4; - border-bottom: 1px solid #9CAFD4; - width: 100%; -} - -.directory table { - border-collapse:collapse; -} - -.directory td { - margin: 0px; - padding: 0px; - vertical-align: top; -} - -.directory td.entry { - white-space: nowrap; - padding-right: 6px; - padding-top: 3px; -} - -.directory td.entry a { - outline:none; -} - -.directory td.entry a img { - border: none; -} - -.directory td.desc { - width: 100%; - padding-left: 6px; - padding-right: 6px; - padding-top: 3px; - border-left: 1px solid rgba(0,0,0,0.05); -} - -.directory tr.even { - padding-left: 6px; - background-color: #F7F8FB; -} - -.directory img { - vertical-align: -30%; -} - -.directory .levels { - white-space: nowrap; - width: 100%; - text-align: right; - font-size: 9pt; -} - -.directory .levels span { - cursor: pointer; - padding-left: 2px; - padding-right: 2px; - color: #3D578C; -} - -.arrow { - color: #9CAFD4; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: pointer; - font-size: 80%; - display: inline-block; - width: 16px; - height: 22px; -} - -.icon { - font-family: Arial, Helvetica; - font-weight: bold; - font-size: 12px; - height: 14px; - width: 16px; - display: inline-block; - background-color: #728DC1; - color: white; - text-align: center; - border-radius: 4px; - margin-left: 2px; - margin-right: 2px; -} - -.icona { - width: 24px; - height: 22px; - display: inline-block; -} - -.iconfopen { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('folderopen.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.iconfclosed { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('folderclosed.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.icondoc { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('doc.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -table.directory { - font: 400 14px Roboto,sans-serif; -} - -/* @end */ - -div.dynheader { - margin-top: 8px; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -address { - font-style: normal; - color: #2A3D61; -} - -table.doxtable caption { - caption-side: top; -} - -table.doxtable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.doxtable td, table.doxtable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.doxtable th { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -table.fieldtable { - /*width: 100%;*/ - margin-bottom: 10px; - border: 1px solid #A8B8D9; - border-spacing: 0px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); - box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); -} - -.fieldtable td, .fieldtable th { - padding: 3px 7px 2px; -} - -.fieldtable td.fieldtype, .fieldtable td.fieldname { - white-space: nowrap; - border-right: 1px solid #A8B8D9; - border-bottom: 1px solid #A8B8D9; - vertical-align: top; -} - -.fieldtable td.fieldname { - padding-top: 3px; -} - -.fieldtable td.fielddoc { - border-bottom: 1px solid #A8B8D9; - /*width: 100%;*/ -} - -.fieldtable td.fielddoc p:first-child { - margin-top: 0px; -} - -.fieldtable td.fielddoc p:last-child { - margin-bottom: 2px; -} - -.fieldtable tr:last-child td { - border-bottom: none; -} - -.fieldtable th { - background-image:url('nav_f.png'); - background-repeat:repeat-x; - background-color: #E2E8F2; - font-size: 90%; - color: #253555; - padding-bottom: 4px; - padding-top: 5px; - text-align:left; - font-weight: 400; - -moz-border-radius-topleft: 4px; - -moz-border-radius-topright: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom: 1px solid #A8B8D9; -} - - -.tabsearch { - top: 0px; - left: 10px; - height: 36px; - background-image: url('tab_b.png'); - z-index: 101; - overflow: hidden; - font-size: 13px; -} - -.navpath ul -{ - font-size: 11px; - background-image:url('tab_b.png'); - background-repeat:repeat-x; - background-position: 0 -5px; - height:30px; - line-height:30px; - color:#8AA0CC; - border:solid 1px #C2CDE4; - overflow:hidden; - margin:0px; - padding:0px; -} - -.navpath li -{ - list-style-type:none; - float:left; - padding-left:10px; - padding-right:15px; - background-image:url('bc_s.png'); - background-repeat:no-repeat; - background-position:right; - color:#364D7C; -} - -.navpath li.navelem a -{ - height:32px; - display:block; - text-decoration: none; - outline: none; - color: #283A5D; - font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - text-decoration: none; -} - -.navpath li.navelem a:hover -{ - color:#6884BD; -} - -.navpath li.footer -{ - list-style-type:none; - float:right; - padding-left:10px; - padding-right:15px; - background-image:none; - background-repeat:no-repeat; - background-position:right; - color:#364D7C; - font-size: 8pt; -} - - -div.summary -{ - float: right; - font-size: 8pt; - padding-right: 5px; - width: 50%; - text-align: right; -} - -div.summary a -{ - white-space: nowrap; -} - -table.classindex -{ - margin: 10px; - white-space: nowrap; - margin-left: 3%; - margin-right: 3%; - width: 94%; - border: 0; - border-spacing: 0; - padding: 0; -} - -div.ingroups -{ - font-size: 8pt; - width: 50%; - text-align: left; -} - -div.ingroups a -{ - white-space: nowrap; -} - -div.header -{ - background-image:url('nav_h.png'); - background-repeat:repeat-x; - background-color: #F9FAFC; - margin: 0px; - border-bottom: 1px solid #C4CFE5; -} - -div.headertitle -{ - padding: 5px 5px 5px 10px; -} - -.PageDocRTL-title div.headertitle { - text-align: right; - direction: rtl; -} - -dl { - padding: 0 0 0 0; -} - -/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ -dl.section { - margin-left: 0px; - padding-left: 0px; -} - -dl.section.DocNodeRTL { - margin-right: 0px; - padding-right: 0px; -} - -dl.note { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #D0C000; -} - -dl.note.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #D0C000; -} - -dl.warning, dl.attention { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #FF0000; -} - -dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #FF0000; -} - -dl.pre, dl.post, dl.invariant { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #00D000; -} - -dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #00D000; -} - -dl.deprecated { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #505050; -} - -dl.deprecated.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #505050; -} - -dl.todo { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #00C0E0; -} - -dl.todo.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #00C0E0; -} - -dl.test { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #3030E0; -} - -dl.test.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #3030E0; -} - -dl.bug { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #C08050; -} - -dl.bug.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #C08050; -} - -dl.section dd { - margin-bottom: 6px; -} - - -#projectlogo -{ - text-align: center; - vertical-align: bottom; - border-collapse: separate; -} - -#projectlogo img -{ - border: 0px none; -} - -#projectalign -{ - vertical-align: middle; -} - -#projectname -{ - font: 300% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 2px 0px; -} - -#projectbrief -{ - font: 120% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#projectnumber -{ - font: 50% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#titlearea -{ - padding: 0px; - margin: 0px; - width: 100%; - border-bottom: 1px solid #5373B4; -} - -.image -{ - text-align: center; -} - -.dotgraph -{ - text-align: center; -} - -.mscgraph -{ - text-align: center; -} - -.plantumlgraph -{ - text-align: center; -} - -.diagraph -{ - text-align: center; -} - -.caption -{ - font-weight: bold; -} - -div.zoom -{ - border: 1px solid #90A5CE; -} - -dl.citelist { - margin-bottom:50px; -} - -dl.citelist dt { - color:#334975; - float:left; - font-weight:bold; - margin-right:10px; - padding:5px; -} - -dl.citelist dd { - margin:2px 0; - padding:5px 0; -} - -div.toc { - padding: 14px 25px; - background-color: #F4F6FA; - border: 1px solid #D8DFEE; - border-radius: 7px 7px 7px 7px; - float: right; - height: auto; - margin: 0 8px 10px 10px; - width: 200px; -} - -.PageDocRTL-title div.toc { - float: left !important; - text-align: right; -} - -div.toc li { - background: url("bdwn.png") no-repeat scroll 0 5px transparent; - font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; - margin-top: 5px; - padding-left: 10px; - padding-top: 2px; -} - -.PageDocRTL-title div.toc li { - background-position-x: right !important; - padding-left: 0 !important; - padding-right: 10px; -} - -div.toc h3 { - font: bold 12px/1.2 Arial,FreeSans,sans-serif; - color: #4665A2; - border-bottom: 0 none; - margin: 0; -} - -div.toc ul { - list-style: none outside none; - border: medium none; - padding: 0px; -} - -div.toc li.level1 { - margin-left: 0px; -} - -div.toc li.level2 { - margin-left: 15px; -} - -div.toc li.level3 { - margin-left: 30px; -} - -div.toc li.level4 { - margin-left: 45px; -} - -.PageDocRTL-title div.toc li.level1 { - margin-left: 0 !important; - margin-right: 0; -} - -.PageDocRTL-title div.toc li.level2 { - margin-left: 0 !important; - margin-right: 15px; -} - -.PageDocRTL-title div.toc li.level3 { - margin-left: 0 !important; - margin-right: 30px; -} - -.PageDocRTL-title div.toc li.level4 { - margin-left: 0 !important; - margin-right: 45px; -} - -.inherit_header { - font-weight: bold; - color: gray; - cursor: pointer; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.inherit_header td { - padding: 6px 0px 2px 5px; -} - -.inherit { - display: none; -} - -tr.heading h2 { - margin-top: 12px; - margin-bottom: 4px; -} - -/* tooltip related style info */ - -.ttc { - position: absolute; - display: none; -} - -#powerTip { - cursor: default; - white-space: nowrap; - background-color: white; - border: 1px solid gray; - border-radius: 4px 4px 4px 4px; - box-shadow: 1px 1px 7px gray; - display: none; - font-size: smaller; - max-width: 80%; - opacity: 0.9; - padding: 1ex 1em 1em; - position: absolute; - z-index: 2147483647; -} - -#powerTip div.ttdoc { - color: grey; - font-style: italic; -} - -#powerTip div.ttname a { - font-weight: bold; -} - -#powerTip div.ttname { - font-weight: bold; -} - -#powerTip div.ttdeci { - color: #006318; -} - -#powerTip div { - margin: 0px; - padding: 0px; - font: 12px/16px Roboto,sans-serif; -} - -#powerTip:before, #powerTip:after { - content: ""; - position: absolute; - margin: 0px; -} - -#powerTip.n:after, #powerTip.n:before, -#powerTip.s:after, #powerTip.s:before, -#powerTip.w:after, #powerTip.w:before, -#powerTip.e:after, #powerTip.e:before, -#powerTip.ne:after, #powerTip.ne:before, -#powerTip.se:after, #powerTip.se:before, -#powerTip.nw:after, #powerTip.nw:before, -#powerTip.sw:after, #powerTip.sw:before { - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; -} - -#powerTip.n:after, #powerTip.s:after, -#powerTip.w:after, #powerTip.e:after, -#powerTip.nw:after, #powerTip.ne:after, -#powerTip.sw:after, #powerTip.se:after { - border-color: rgba(255, 255, 255, 0); -} - -#powerTip.n:before, #powerTip.s:before, -#powerTip.w:before, #powerTip.e:before, -#powerTip.nw:before, #powerTip.ne:before, -#powerTip.sw:before, #powerTip.se:before { - border-color: rgba(128, 128, 128, 0); -} - -#powerTip.n:after, #powerTip.n:before, -#powerTip.ne:after, #powerTip.ne:before, -#powerTip.nw:after, #powerTip.nw:before { - top: 100%; -} - -#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { - border-top-color: #FFFFFF; - border-width: 10px; - margin: 0px -10px; -} -#powerTip.n:before { - border-top-color: #808080; - border-width: 11px; - margin: 0px -11px; -} -#powerTip.n:after, #powerTip.n:before { - left: 50%; -} - -#powerTip.nw:after, #powerTip.nw:before { - right: 14px; -} - -#powerTip.ne:after, #powerTip.ne:before { - left: 14px; -} - -#powerTip.s:after, #powerTip.s:before, -#powerTip.se:after, #powerTip.se:before, -#powerTip.sw:after, #powerTip.sw:before { - bottom: 100%; -} - -#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { - border-bottom-color: #FFFFFF; - border-width: 10px; - margin: 0px -10px; -} - -#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { - border-bottom-color: #808080; - border-width: 11px; - margin: 0px -11px; -} - -#powerTip.s:after, #powerTip.s:before { - left: 50%; -} - -#powerTip.sw:after, #powerTip.sw:before { - right: 14px; -} - -#powerTip.se:after, #powerTip.se:before { - left: 14px; -} - -#powerTip.e:after, #powerTip.e:before { - left: 100%; -} -#powerTip.e:after { - border-left-color: #FFFFFF; - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.e:before { - border-left-color: #808080; - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -#powerTip.w:after, #powerTip.w:before { - right: 100%; -} -#powerTip.w:after { - border-right-color: #FFFFFF; - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.w:before { - border-right-color: #808080; - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -@media print -{ - #top { display: none; } - #side-nav { display: none; } - #nav-path { display: none; } - body { overflow:visible; } - h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } - .summary { display: none; } - .memitem { page-break-inside: avoid; } - #doc-content - { - margin-left:0 !important; - height:auto !important; - width:auto !important; - overflow:inherit; - display:inline; - } -} - -/* @group Markdown */ - -/* -table.markdownTable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.markdownTable td, table.markdownTable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.markdownTableHead tr { -} - -table.markdownTableBodyLeft td, table.markdownTable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -th.markdownTableHeadLeft { - text-align: left -} - -th.markdownTableHeadRight { - text-align: right -} - -th.markdownTableHeadCenter { - text-align: center -} -*/ - -table.markdownTable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.markdownTable td, table.markdownTable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.markdownTable tr { -} - -th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -th.markdownTableHeadLeft, td.markdownTableBodyLeft { - text-align: left -} - -th.markdownTableHeadRight, td.markdownTableBodyRight { - text-align: right -} - -th.markdownTableHeadCenter, td.markdownTableBodyCenter { - text-align: center -} - -.DocNodeRTL { - text-align: right; - direction: rtl; -} - -.DocNodeLTR { - text-align: left; - direction: ltr; -} - -table.DocNodeRTL { - width: auto; - margin-right: 0; - margin-left: auto; -} - -table.DocNodeLTR { - width: auto; - margin-right: auto; - margin-left: 0; -} - -tt, code, kbd, samp -{ - display: inline-block; - direction:ltr; -} -/* @end */ - -u { - text-decoration: underline; -} diff --git a/docs/html/doxygen.png b/docs/html/doxygen.png deleted file mode 100644 index 3ff17d8..0000000 Binary files a/docs/html/doxygen.png and /dev/null differ diff --git a/docs/html/dynsections.js b/docs/html/dynsections.js deleted file mode 100644 index c8e84aa..0000000 --- a/docs/html/dynsections.js +++ /dev/null @@ -1,127 +0,0 @@ -/* - @licstart The following is the entire license notice for the - JavaScript code in this file. - - Copyright (C) 1997-2017 by Dimitri van Heesch - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - - @licend The above is the entire license notice - for the JavaScript code in this file - */ -function toggleVisibility(linkObj) -{ - var base = $(linkObj).attr('id'); - var summary = $('#'+base+'-summary'); - var content = $('#'+base+'-content'); - var trigger = $('#'+base+'-trigger'); - var src=$(trigger).attr('src'); - if (content.is(':visible')===true) { - content.hide(); - summary.show(); - $(linkObj).addClass('closed').removeClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); - } else { - content.show(); - summary.hide(); - $(linkObj).removeClass('closed').addClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } - return false; -} - -function updateStripes() -{ - $('table.directory tr'). - removeClass('even').filter(':visible:even').addClass('even'); -} - -function toggleLevel(level) -{ - $('table.directory tr').each(function() { - var l = this.id.split('_').length-1; - var i = $('#img'+this.id.substring(3)); - var a = $('#arr'+this.id.substring(3)); - if (l - - - - - - -pyShelf Open Source Ebook Server: File List - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - -
-
-
-
File List
-
-
-
Here is a list of all documented files with brief descriptions:
-
[detail level 1234]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  src
  backend
  lib
 __init__.py
 api_hooks.py
 config.py
 library.py
 pyShelf.py
 storage.py
  tests
 __init__.py
 config_test.py
 library_test.py
 __init__.py
 pyShelf_ScanLibrary.py
  frontend
 __init__.py
 settings.py
 urls.py
 wsgi.py
  interface
  migrations
 0001_initial.py
 __init__.py
  templatetags
 __init__.py
 filters.py
 __init__.py
 admin.py
 apps.py
 models.py
 tests.py
 views.py
 __init__.py
 manage.py
-
-
- - - - diff --git a/docs/html/folderclosed.png b/docs/html/folderclosed.png deleted file mode 100644 index bb8ab35..0000000 Binary files a/docs/html/folderclosed.png and /dev/null differ diff --git a/docs/html/folderopen.png b/docs/html/folderopen.png deleted file mode 100644 index d6c7f67..0000000 Binary files a/docs/html/folderopen.png and /dev/null differ diff --git a/docs/html/functions.html b/docs/html/functions.html deleted file mode 100644 index 9763481..0000000 --- a/docs/html/functions.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: Class Members - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - -
-
-
Here is a list of all documented class members with links to the class documentation for each member:
-
- - - - diff --git a/docs/html/functions_func.html b/docs/html/functions_func.html deleted file mode 100644 index 6f4093c..0000000 --- a/docs/html/functions_func.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: Class Members - Functions - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - -
-
-
- - - - diff --git a/docs/html/hierarchy.html b/docs/html/hierarchy.html deleted file mode 100644 index 22ceaaf..0000000 --- a/docs/html/hierarchy.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: Class Hierarchy - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - -
-
-
-
Class Hierarchy
-
-
-
This inheritance list is sorted roughly, but not completely, alphabetically:
-
- - - - diff --git a/docs/html/index.hhc b/docs/html/index.hhc deleted file mode 100644 index d22c651..0000000 --- a/docs/html/index.hhc +++ /dev/null @@ -1,320 +0,0 @@ - - - - - - - - diff --git a/docs/html/index.hhk b/docs/html/index.hhk deleted file mode 100644 index deab4cf..0000000 --- a/docs/html/index.hhk +++ /dev/null @@ -1,774 +0,0 @@ - - - - - - - - diff --git a/docs/html/index.hhp b/docs/html/index.hhp deleted file mode 100644 index 8a633b8..0000000 --- a/docs/html/index.hhp +++ /dev/null @@ -1,95 +0,0 @@ -[OPTIONS] -Compiled file=pyShelf_docs -Compatibility=1.1 -Full-text search=Yes -Contents file=index.hhc -Default Window=main -Default topic=index.html -Index file=index.hhk -Language=0x409 English (United States) -Binary TOC=YES -Title=pyShelf Open Source Ebook Server - -[WINDOWS] -main="pyShelf Open Source Ebook Server","index.hhc","index.hhk","index.html","index.html",,,,,0x23520,,0x70387e,,,,,,,,0 - -[FILES] -md_src_interface_static_admin_css_vendor_select2_LICENSE-SELECT2.html -md_src_interface_static_admin_js_vendor_select2_LICENSE.html -classpyShelf_1_1src_1_1backend_1_1lib_1_1api__hooks_1_1DuckDuckGo.html -classpyShelf_1_1src_1_1backend_1_1lib_1_1api__hooks_1_1DuckDuckGo-members.html -classpyShelf_1_1src_1_1backend_1_1lib_1_1config_1_1Config.html -classpyShelf_1_1src_1_1backend_1_1lib_1_1config_1_1Config-members.html -classpyShelf_1_1src_1_1backend_1_1lib_1_1library_1_1Catalogue.html -classpyShelf_1_1src_1_1backend_1_1lib_1_1library_1_1Catalogue-members.html -classpyShelf_1_1src_1_1backend_1_1lib_1_1pyShelf_1_1BookDisplay.html -classpyShelf_1_1src_1_1backend_1_1lib_1_1pyShelf_1_1BookDisplay-members.html -classpyShelf_1_1src_1_1backend_1_1lib_1_1pyShelf_1_1InitFiles.html -classpyShelf_1_1src_1_1backend_1_1lib_1_1pyShelf_1_1InitFiles-members.html -classpyShelf_1_1src_1_1backend_1_1lib_1_1storage_1_1Storage.html -classpyShelf_1_1src_1_1backend_1_1lib_1_1storage_1_1Storage-members.html -classpyShelf_1_1src_1_1backend_1_1tests_1_1config__test_1_1TestConfig.html -classpyShelf_1_1src_1_1backend_1_1tests_1_1config__test_1_1TestConfig-members.html -classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1Test__Catalogue.html -classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1Test__Catalogue-members.html -classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1Test__Config.html -classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1Test__Config-members.html -classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1TestCatalogue.html -classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1TestCatalogue-members.html -namespacepyShelf_1_1src_1_1frontend_1_1settings.html -namespacepyShelf_1_1src_1_1frontend_1_1urls.html -namespacepyShelf_1_1src_1_1frontend_1_1wsgi.html -classpyShelf_1_1src_1_1interface_1_1apps_1_1InterfaceConfig.html -classpyShelf_1_1src_1_1interface_1_1apps_1_1InterfaceConfig-members.html -classpyShelf_1_1src_1_1interface_1_1migrations_1_10001__initial_1_1Migration.html -classpyShelf_1_1src_1_1interface_1_1migrations_1_10001__initial_1_1Migration-members.html -classpyShelf_1_1src_1_1interface_1_1models_1_1Books.html -classpyShelf_1_1src_1_1interface_1_1models_1_1Books-members.html -classpyShelf_1_1src_1_1interface_1_1models_1_1Books_1_1Meta.html -classpyShelf_1_1src_1_1interface_1_1models_1_1Books_1_1Meta-members.html -namespacepyShelf_1_1src_1_1manage.html -dir_a05f942952f29ba3ff0b6cf8bcd4f651.html -dir_3f615ade772d23cefe5e20dcb18424a2.html -dir_bf61165a5ec6f092245f16c80e25d9dd.html -dir_8509b06bafa958d2011203a730bf5778.html -dir_650ee533936399e683a30afb9473a469.html -dir_d57dcc97c471b6c632c5e6143b3e3c97.html -dir_1c7294442ce83d360610449d04c9d7fc.html -dir_5dc60ce45ea83ccf35a995eb718413e2.html -dir_e5dd47fdf1c13a2660cfdd48f6dbd07c.html -dir_2e4fe7818a9bea2340465344c5b4f122.html -dir_68267d1309a1af8e8297ef4c3efbcdba.html -dir_115a8af934cb6b8073d7541c3a02a8e0.html -dir_c9cb39ed8b98bd7419bc6fb3338b22e5.html -dir_9020577e2da81c4cf5a5554c26431f94.html -dir_80adb54c76bf5d67e934da378f00559d.html -dir_9662e62442d92157d391ef66bee26a3c.html -index.html -pages.html -namespaces.html -annotated.html -classes.html -hierarchy.html -functions.html -functions_func.html -files.html -tab_a.png -tab_b.png -tab_h.png -tab_s.png -nav_h.png -nav_f.png -bc_s.png -doxygen.png -closed.png -open.png -bdwn.png -sync_on.png -sync_off.png -classpyShelf_1_1src_1_1backend_1_1lib_1_1config_1_1Config.png -classpyShelf_1_1src_1_1backend_1_1lib_1_1library_1_1Catalogue.png -classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1Test__Catalogue.png -classpyShelf_1_1src_1_1backend_1_1tests_1_1library__test_1_1Test__Config.png -classpyShelf_1_1src_1_1interface_1_1apps_1_1InterfaceConfig.png -classpyShelf_1_1src_1_1interface_1_1migrations_1_10001__initial_1_1Migration.png -classpyShelf_1_1src_1_1interface_1_1models_1_1Books.png diff --git a/docs/html/index.html b/docs/html/index.html deleted file mode 100644 index c13eacb..0000000 --- a/docs/html/index.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: Main Page - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - -
-
-
-
pyShelf Open Source Ebook Server Documentation
-
-
-
- - - - diff --git a/docs/html/jquery.js b/docs/html/jquery.js deleted file mode 100644 index 4344b33..0000000 --- a/docs/html/jquery.js +++ /dev/null @@ -1,35 +0,0 @@ -/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element -},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** - * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler - * Licensed under MIT - * @author Ariel Flesler - * @version 2.1.2 - */ -;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 - * http://www.smartmenus.org/ - * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); diff --git a/docs/html/md_src_interface_static_admin_css_vendor_select2_LICENSE-SELECT2.html b/docs/html/md_src_interface_static_admin_css_vendor_select2_LICENSE-SELECT2.html deleted file mode 100644 index 8043f24..0000000 --- a/docs/html/md_src_interface_static_admin_css_vendor_select2_LICENSE-SELECT2.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: LICENSE-SELECT2 - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - -
-
-
-
LICENSE-SELECT2
-
-
-

The MIT License (MIT)

-

Copyright (c) 2012-2015 Kevin Brown, Igor Vaynberg, and Select2 contributors

-

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-
-
- - - - diff --git a/docs/html/md_src_interface_static_admin_js_vendor_select2_LICENSE.html b/docs/html/md_src_interface_static_admin_js_vendor_select2_LICENSE.html deleted file mode 100644 index b53ef25..0000000 --- a/docs/html/md_src_interface_static_admin_js_vendor_select2_LICENSE.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: LICENSE - - - - - - -
-
- - - - - - -
-
pyShelf Open Source Ebook Server -  0.2.1 -
-
Open source, console based E-book server
-
-
- - - - - - -
-
-
-
LICENSE
-
-
-

The MIT License (MIT)

-

Copyright (c) 2012-2015 Kevin Brown, Igor Vaynberg, and Select2 contributors

-

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-
-
- - - - diff --git a/docs/html/menu.js b/docs/html/menu.js deleted file mode 100644 index 433c15b..0000000 --- a/docs/html/menu.js +++ /dev/null @@ -1,50 +0,0 @@ -/* - @licstart The following is the entire license notice for the - JavaScript code in this file. - - Copyright (C) 1997-2017 by Dimitri van Heesch - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - - @licend The above is the entire license notice - for the JavaScript code in this file - */ -function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { - function makeTree(data,relPath) { - var result=''; - if ('children' in data) { - result+=''; - } - return result; - } - - $('#main-nav').append(makeTree(menudata,relPath)); - $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); - if (searchEnabled) { - if (serverSide) { - $('#main-menu').append('
  • '); - } else { - $('#main-menu').append('
  • '); - } - } - $('#main-menu').smartmenus(); -} -/* @license-end */ diff --git a/docs/html/menudata.js b/docs/html/menudata.js deleted file mode 100644 index b31f3d6..0000000 --- a/docs/html/menudata.js +++ /dev/null @@ -1,36 +0,0 @@ -/* -@licstart The following is the entire license notice for the -JavaScript code in this file. - -Copyright (C) 1997-2019 by Dimitri van Heesch - -This program is free software; you can redistribute it and/or modify -it under the terms of version 2 of the GNU General Public License as published by -the Free Software Foundation - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -@licend The above is the entire license notice -for the JavaScript code in this file -*/ -var menudata={children:[ -{text:"Main Page",url:"index.html"}, -{text:"Related Pages",url:"pages.html"}, -{text:"Namespaces",url:"namespaces.html",children:[ -{text:"Namespace List",url:"namespaces.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"}]}]} diff --git a/docs/html/namespacepyShelf_1_1src_1_1frontend_1_1settings.html b/docs/html/namespacepyShelf_1_1src_1_1frontend_1_1settings.html deleted file mode 100644 index 5ee7ea9..0000000 --- a/docs/html/namespacepyShelf_1_1src_1_1frontend_1_1settings.html +++ /dev/null @@ -1,269 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: pyShelf.src.frontend.settings Namespace Reference - - - - - - -
    -
    - - - - - - -
    -
    pyShelf Open Source Ebook Server -  0.2.1 -
    -
    Open source, console based E-book server
    -
    -
    - - - - - - - -
    -
    - -
    -
    pyShelf.src.frontend.settings Namespace Reference
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Variables

    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
     
    -string SECRET_KEY = "@(9b9jslgg41u1u=mr)-2*-n2x0vef0zsy39*z@sz18&tvow18"
     
    -bool DEBUG = False
     
    -list ALLOWED_HOSTS = ["*"]
     
    list INSTALLED_APPS
     
    list MIDDLEWARE
     
    list INTERNAL_IPS
     
    -string ROOT_URLCONF = "frontend.urls"
     
    list TEMPLATES
     
    -string WSGI_APPLICATION = "frontend.wsgi.application"
     
    dictionary DATABASES
     
    list AUTH_PASSWORD_VALIDATORS
     
    -string LANGUAGE_CODE = "en-us"
     
    -string TIME_ZONE = "UTC"
     
    -bool USE_I18N = True
     
    -bool USE_L10N = True
     
    -bool USE_TZ = True
     
    -string STATIC_URL = "/static/"
     
    STATIC_ROOT = os.path.join(BASE_DIR, "interface/static/")
     
    -

    Detailed Description

    -
    Django settings for frontend project.
    -
    -Generated by 'django-admin startproject' using Django 2.2.7.
    -
    -For more information on this file, see
    -https://docs.djangoproject.com/en/2.2/topics/settings/
    -
    -For the full list of settings and their values, see
    -https://docs.djangoproject.com/en/2.2/ref/settings/
    -

    Variable Documentation

    - -

    ◆ AUTH_PASSWORD_VALIDATORS

    - -
    -
    - - - - -
    list pyShelf.src.frontend.settings.AUTH_PASSWORD_VALIDATORS
    -
    -Initial value:
    1 = [
    -
    2  {
    -
    3  "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator",
    -
    4  },
    -
    5  {"NAME": "django.contrib.auth.password_validation.MinimumLengthValidator",},
    -
    6  {"NAME": "django.contrib.auth.password_validation.CommonPasswordValidator",},
    -
    7  {"NAME": "django.contrib.auth.password_validation.NumericPasswordValidator",},
    -
    8 ]
    -
    -
    -
    - -

    ◆ DATABASES

    - -
    -
    - - - - -
    dictionary pyShelf.src.frontend.settings.DATABASES
    -
    -Initial value:
    1 = {
    -
    2  "default": {
    -
    3  "ENGINE": "django.db.backends.postgresql",
    -
    4  # "ENGINE": "django.db.backends.sqlite3",
    -
    5  "NAME": "pyshelf",
    -
    6  "PASSWORD": "",
    -
    7  # "NAME": os.path.join(BASE_DIR, "db.sqlite3"),
    -
    8  }
    -
    9 }
    -
    -
    -
    - -

    ◆ INSTALLED_APPS

    - -
    -
    - - - - -
    list pyShelf.src.frontend.settings.INSTALLED_APPS
    -
    -Initial value:
    1 = [
    -
    2  "django.contrib.admin",
    -
    3  "django.contrib.auth",
    -
    4  "django.contrib.contenttypes",
    -
    5  "django.contrib.sessions",
    -
    6  "django.contrib.messages",
    -
    7  "django.contrib.staticfiles",
    -
    8  "interface",
    -
    9  "interface.templatetags",
    -
    10  "debug_toolbar",
    -
    11 ]
    -
    -
    -
    - -

    ◆ INTERNAL_IPS

    - -
    -
    - - - - -
    list pyShelf.src.frontend.settings.INTERNAL_IPS
    -
    -Initial value:
    1 = [
    -
    2  # ...
    -
    3  "127.0.0.1",
    -
    4  # ...
    -
    5 ]
    -
    -
    -
    - -

    ◆ MIDDLEWARE

    - -
    -
    - - - - -
    list pyShelf.src.frontend.settings.MIDDLEWARE
    -
    -Initial value:
    1 = [
    -
    2  "django.middleware.security.SecurityMiddleware",
    -
    3  "django.contrib.sessions.middleware.SessionMiddleware",
    -
    4  "django.middleware.common.CommonMiddleware",
    -
    5  "django.middleware.csrf.CsrfViewMiddleware",
    -
    6  "debug_toolbar.middleware.DebugToolbarMiddleware",
    -
    7  "django.contrib.auth.middleware.AuthenticationMiddleware",
    -
    8  "django.contrib.messages.middleware.MessageMiddleware",
    -
    9  "django.middleware.clickjacking.XFrameOptionsMiddleware",
    -
    10 ]
    -
    -
    -
    - -

    ◆ TEMPLATES

    - -
    -
    - - - - -
    list pyShelf.src.frontend.settings.TEMPLATES
    -
    -Initial value:
    1 = [
    -
    2  {
    -
    3  "BACKEND": "django.template.backends.django.DjangoTemplates",
    -
    4  "DIRS": [],
    -
    5  "APP_DIRS": True,
    -
    6  "OPTIONS": {
    -
    7  "context_processors": [
    -
    8  "django.template.context_processors.debug",
    -
    9  "django.template.context_processors.request",
    -
    10  "django.contrib.auth.context_processors.auth",
    -
    11  "django.contrib.messages.context_processors.messages",
    -
    12  ],
    -
    13  },
    -
    14  },
    -
    15 ]
    -
    -
    -
    -
    - - - - diff --git a/docs/html/namespacepyShelf_1_1src_1_1frontend_1_1urls.html b/docs/html/namespacepyShelf_1_1src_1_1frontend_1_1urls.html deleted file mode 100644 index 91c7499..0000000 --- a/docs/html/namespacepyShelf_1_1src_1_1frontend_1_1urls.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: pyShelf.src.frontend.urls Namespace Reference - - - - - - -
    -
    - - - - - - -
    -
    pyShelf Open Source Ebook Server -  0.2.1 -
    -
    Open source, console based E-book server
    -
    -
    - - - - - - - -
    -
    - -
    -
    pyShelf.src.frontend.urls Namespace Reference
    -
    -
    - - - - -

    -Variables

    list urlpatterns
     
    -

    Detailed Description

    -
    frontend URL Configuration
    -
    -The `urlpatterns` list routes URLs to views. For more information please see:
    -    https://docs.djangoproject.com/en/2.2/topics/http/urls/
    -Examples:
    -Function views
    -    1. Add an import:  from my_app import views
    -    2. Add a URL to urlpatterns:  path('', views.home, name='home')
    -Class-based views
    -    1. Add an import:  from other_app.views import Home
    -    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
    -Including another URLconf
    -    1. Import the include() function: from django.urls import include, path
    -    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
    -

    Variable Documentation

    - -

    ◆ urlpatterns

    - -
    -
    - - - - -
    list pyShelf.src.frontend.urls.urlpatterns
    -
    -Initial value:
    1 = [
    -
    2  path("admin/", admin.site.urls),
    -
    3  path("", views.index, name="index"),
    -
    4  path("download/<pk>", views.download, name="download"),
    -
    5  path("prev_page/<bookset>", views.prev_page, name="prev_page"),
    -
    6  path("next_page/<bookset>", views.next_page, name="next_page"),
    -
    7 ]
    -
    -
    -
    -
    - - - - diff --git a/docs/html/namespacepyShelf_1_1src_1_1frontend_1_1wsgi.html b/docs/html/namespacepyShelf_1_1src_1_1frontend_1_1wsgi.html deleted file mode 100644 index 08967de..0000000 --- a/docs/html/namespacepyShelf_1_1src_1_1frontend_1_1wsgi.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: pyShelf.src.frontend.wsgi Namespace Reference - - - - - - -
    -
    - - - - - - -
    -
    pyShelf Open Source Ebook Server -  0.2.1 -
    -
    Open source, console based E-book server
    -
    -
    - - - - - - - -
    -
    - -
    -
    pyShelf.src.frontend.wsgi Namespace Reference
    -
    -
    - - - - -

    -Variables

    application = get_wsgi_application()
     
    -

    Detailed Description

    -
    WSGI config for frontend project.
    -
    -It exposes the WSGI callable as a module-level variable named ``application``.
    -
    -For more information on this file, see
    -https://docs.djangoproject.com/en/2.2/howto/deployment/wsgi/
    -
    - - - - diff --git a/docs/html/namespacepyShelf_1_1src_1_1manage.html b/docs/html/namespacepyShelf_1_1src_1_1manage.html deleted file mode 100644 index 611ccb5..0000000 --- a/docs/html/namespacepyShelf_1_1src_1_1manage.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: pyShelf.src.manage Namespace Reference - - - - - - -
    -
    - - - - - - -
    -
    pyShelf Open Source Ebook Server -  0.2.1 -
    -
    Open source, console based E-book server
    -
    -
    - - - - - - - -
    -
    - -
    -
    pyShelf.src.manage Namespace Reference
    -
    -
    - - - - -

    -Functions

    -def main ()
     
    -

    Detailed Description

    -
    Django's command-line utility for administrative tasks.
    - - - - diff --git a/docs/html/namespaces.html b/docs/html/namespaces.html deleted file mode 100644 index cb0c497..0000000 --- a/docs/html/namespaces.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: Namespace List - - - - - - -
    -
    - - - - - - -
    -
    pyShelf Open Source Ebook Server -  0.2.1 -
    -
    Open source, console based E-book server
    -
    -
    - - - - - - -
    -
    -
    -
    Namespace List
    -
    -
    -
    Here is a list of all documented namespaces with brief descriptions:
    -
    [detail level 1234]
    - - - - - - - -
     NpyShelf
     Nsrc
     Nfrontend
     Nsettings
     Nurls
     Nwsgi
     Nmanage
    -
    -
    - - - - diff --git a/docs/html/nav_f.png b/docs/html/nav_f.png deleted file mode 100644 index 72a58a5..0000000 Binary files a/docs/html/nav_f.png and /dev/null differ diff --git a/docs/html/nav_g.png b/docs/html/nav_g.png deleted file mode 100644 index 2093a23..0000000 Binary files a/docs/html/nav_g.png and /dev/null differ diff --git a/docs/html/nav_h.png b/docs/html/nav_h.png deleted file mode 100644 index 33389b1..0000000 Binary files a/docs/html/nav_h.png and /dev/null differ diff --git a/docs/html/open.png b/docs/html/open.png deleted file mode 100644 index 30f75c7..0000000 Binary files a/docs/html/open.png and /dev/null differ diff --git a/docs/html/pages.html b/docs/html/pages.html deleted file mode 100644 index 2c58a7e..0000000 --- a/docs/html/pages.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - -pyShelf Open Source Ebook Server: Related Pages - - - - - - -
    -
    - - - - - - -
    -
    pyShelf Open Source Ebook Server -  0.2.1 -
    -
    Open source, console based E-book server
    -
    -
    - - - - - - -
    -
    -
    -
    Related Pages
    -
    -
    -
    Here is a list of all related documentation pages:
    -
    - - - - diff --git a/docs/html/splitbar.png b/docs/html/splitbar.png deleted file mode 100644 index fe895f2..0000000 Binary files a/docs/html/splitbar.png and /dev/null differ diff --git a/docs/html/sync_off.png b/docs/html/sync_off.png deleted file mode 100644 index 3b443fc..0000000 Binary files a/docs/html/sync_off.png and /dev/null differ diff --git a/docs/html/sync_on.png b/docs/html/sync_on.png deleted file mode 100644 index e08320f..0000000 Binary files a/docs/html/sync_on.png and /dev/null differ diff --git a/docs/html/tab_a.png b/docs/html/tab_a.png deleted file mode 100644 index 3b725c4..0000000 Binary files a/docs/html/tab_a.png and /dev/null differ diff --git a/docs/html/tab_b.png b/docs/html/tab_b.png deleted file mode 100644 index e2b4a86..0000000 Binary files a/docs/html/tab_b.png and /dev/null differ diff --git a/docs/html/tab_h.png b/docs/html/tab_h.png deleted file mode 100644 index fd5cb70..0000000 Binary files a/docs/html/tab_h.png and /dev/null differ diff --git a/docs/html/tab_s.png b/docs/html/tab_s.png deleted file mode 100644 index ab478c9..0000000 Binary files a/docs/html/tab_s.png and /dev/null differ diff --git a/docs/html/tabs.css b/docs/html/tabs.css deleted file mode 100644 index 56ec360..0000000 --- a/docs/html/tabs.css +++ /dev/null @@ -1 +0,0 @@ -.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} diff --git a/docs/man/man3/md_src_interface_static_admin_css_vendor_select2_LICENSE-SELECT2.3 b/docs/man/man3/md_src_interface_static_admin_css_vendor_select2_LICENSE-SELECT2.3 deleted file mode 100644 index 5fa6f37..0000000 --- a/docs/man/man3/md_src_interface_static_admin_css_vendor_select2_LICENSE-SELECT2.3 +++ /dev/null @@ -1,14 +0,0 @@ -.TH "md_src_interface_static_admin_css_vendor_select2_LICENSE-SELECT2" 3 "Sun Dec 1 2019" "Version 0.2.1" "pyShelf Open Source Ebook Server" \" -*- nroff -*- -.ad l -.nh -.SH NAME -md_src_interface_static_admin_css_vendor_select2_LICENSE-SELECT2 \- LICENSE-SELECT2 -The MIT License (MIT) -.PP -Copyright (c) 2012-2015 Kevin Brown, Igor Vaynberg, and Select2 contributors -.PP -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -.PP -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software\&. -.PP -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT\&. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE\&. diff --git a/docs/man/man3/md_src_interface_static_admin_js_vendor_select2_LICENSE.3 b/docs/man/man3/md_src_interface_static_admin_js_vendor_select2_LICENSE.3 deleted file mode 100644 index 5e4baa6..0000000 --- a/docs/man/man3/md_src_interface_static_admin_js_vendor_select2_LICENSE.3 +++ /dev/null @@ -1,14 +0,0 @@ -.TH "md_src_interface_static_admin_js_vendor_select2_LICENSE" 3 "Sun Dec 1 2019" "Version 0.2.1" "pyShelf Open Source Ebook Server" \" -*- nroff -*- -.ad l -.nh -.SH NAME -md_src_interface_static_admin_js_vendor_select2_LICENSE \- LICENSE -The MIT License (MIT) -.PP -Copyright (c) 2012-2015 Kevin Brown, Igor Vaynberg, and Select2 contributors -.PP -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -.PP -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software\&. -.PP -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT\&. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE\&. diff --git a/docs/man/man3/pyShelf_src_backend_lib_api_hooks_DuckDuckGo.3 b/docs/man/man3/pyShelf_src_backend_lib_api_hooks_DuckDuckGo.3 deleted file mode 100644 index e7085fa..0000000 --- a/docs/man/man3/pyShelf_src_backend_lib_api_hooks_DuckDuckGo.3 +++ /dev/null @@ -1,50 +0,0 @@ -.TH "pyShelf.src.backend.lib.api_hooks.DuckDuckGo" 3 "Sun Dec 1 2019" "Version 0.2.1" "pyShelf Open Source Ebook Server" \" -*- nroff -*- -.ad l -.nh -.SH NAME -pyShelf.src.backend.lib.api_hooks.DuckDuckGo -.SH SYNOPSIS -.br -.PP -.SS "Public Member Functions" - -.in +1c -.ti -1c -.RI "def \fB__init__\fP (self)" -.br -.ti -1c -.RI "def \fBimage_result\fP (self, query)" -.br -.in -1c -.SS "Public Attributes" - -.in +1c -.ti -1c -.RI "\fBurl\fP" -.br -.in -1c -.SH "Detailed Description" -.PP - -.PP -.nf -duckduckgo related searching -.fi -.PP - -.SH "Member Function Documentation" -.PP -.SS "def pyShelf\&.src\&.backend\&.lib\&.api_hooks\&.DuckDuckGo\&.image_result ( self, query)" - -.PP -.nf -Returns json containing url to image -:param _key: &t=h_&iar=images&iax=images&ia=images&format=json&pretty=1 - -.fi -.PP - - -.SH "Author" -.PP -Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&. diff --git a/docs/man/man3/pyShelf_src_backend_lib_config_Config.3 b/docs/man/man3/pyShelf_src_backend_lib_config_Config.3 deleted file mode 100644 index e3ceb16..0000000 --- a/docs/man/man3/pyShelf_src_backend_lib_config_Config.3 +++ /dev/null @@ -1,81 +0,0 @@ -.TH "pyShelf.src.backend.lib.config.Config" 3 "Sun Dec 1 2019" "Version 0.2.1" "pyShelf Open Source Ebook Server" \" -*- nroff -*- -.ad l -.nh -.SH NAME -pyShelf.src.backend.lib.config.Config -.SH SYNOPSIS -.br -.PP -.PP -Inherited by \fBpyShelf\&.src\&.backend\&.tests\&.library_test\&.Test_Config\fP\&. -.SS "Public Member Functions" - -.in +1c -.ti -1c -.RI "def \fB__init__\fP (self, root)" -.br -.ti -1c -.RI "def \fBopen_file\fP (self, _cp)" -.br -.in -1c -.SS "Public Attributes" - -.in +1c -.ti -1c -.RI "\fBbook_path\fP" -.br -.ti -1c -.RI "\fBTITLE\fP" -.br -.ti -1c -.RI "\fBVERSION\fP" -.br -.ti -1c -.RI "\fBbook_shelf\fP" -.br -.ti -1c -.RI "\fBcatalogue_db\fP" -.br -.ti -1c -.RI "\fBuser\fP" -.br -.ti -1c -.RI "\fBpassword\fP" -.br -.ti -1c -.RI "\fBfile_array\fP" -.br -.ti -1c -.RI "\fBroot\fP" -.br -.ti -1c -.RI "\fBauto_scan\fP" -.br -.in -1c -.SH "Detailed Description" -.PP - -.PP -.nf -Main System Configuration - -.fi -.PP - -.SH "Member Function Documentation" -.PP -.SS "def pyShelf\&.src\&.backend\&.lib\&.config\&.Config\&.open_file ( self, _cp)" - -.PP -.nf -Opens config.json and reads in configuration options - -.fi -.PP - -.PP -Reimplemented in \fBpyShelf\&.src\&.backend\&.tests\&.library_test\&.Test_Config\fP\&. - -.SH "Author" -.PP -Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&. diff --git a/docs/man/man3/pyShelf_src_backend_lib_library_Catalogue.3 b/docs/man/man3/pyShelf_src_backend_lib_library_Catalogue.3 deleted file mode 100644 index 33004a8..0000000 --- a/docs/man/man3/pyShelf_src_backend_lib_library_Catalogue.3 +++ /dev/null @@ -1,187 +0,0 @@ -.TH "pyShelf.src.backend.lib.library.Catalogue" 3 "Sun Dec 1 2019" "Version 0.2.1" "pyShelf Open Source Ebook Server" \" -*- nroff -*- -.ad l -.nh -.SH NAME -pyShelf.src.backend.lib.library.Catalogue -.SH SYNOPSIS -.br -.PP -.PP -Inherited by \fBpyShelf\&.src\&.backend\&.tests\&.library_test\&.Test_Catalogue\fP\&. -.SS "Public Member Functions" - -.in +1c -.ti -1c -.RI "def \fB__init__\fP (self, config)" -.br -.ti -1c -.RI "def \fBscan_folder\fP (self, _path=None)" -.br -.ti -1c -.RI "def \fBfilter_books\fP (self)" -.br -.ti -1c -.RI "def \fBextract_metadata\fP (self, book)" -.br -.ti -1c -.RI "def \fBextract_content\fP (self, book_zip, book)" -.br -.ti -1c -.RI "def \fBextract_cover_html\fP (self, book_zip, book)" -.br -.ti -1c -.RI "def \fBextract_cover_image\fP (self, book_zip, book)" -.br -.ti -1c -.RI "def \fBcompare_shelf_current\fP (self)" -.br -.ti -1c -.RI "def \fBimport_books\fP (self, list=None)" -.br -.in -1c -.SS "Static Public Member Functions" - -.in +1c -.ti -1c -.RI "def \fBprocess_book\fP (book)" -.br -.in -1c -.SS "Public Attributes" - -.in +1c -.ti -1c -.RI "\fBfile_list\fP" -.br -.ti -1c -.RI "\fBopf_regx\fP" -.br -.ti -1c -.RI "\fBcover_regx\fP" -.br -.ti -1c -.RI "\fBhtml_regx\fP" -.br -.ti -1c -.RI "\fBroot_dir\fP" -.br -.ti -1c -.RI "\fBbook_folder\fP" -.br -.ti -1c -.RI "\fBbook_shelf\fP" -.br -.ti -1c -.RI "\fBbooks\fP" -.br -.ti -1c -.RI "\fBdb_pointer\fP" -.br -.ti -1c -.RI "\fBconfig\fP" -.br -.in -1c -.SH "Detailed Description" -.PP - -.PP -.nf -Decodes book metadata for storage - -.fi -.PP - -.SH "Member Function Documentation" -.PP -.SS "def pyShelf\&.src\&.backend\&.lib\&.library\&.Catalogue\&.compare_shelf_current ( self)" - -.PP -.nf -Calls storage system, gets list of books stored and compares against files on disk - -.fi -.PP - -.SS "def pyShelf\&.src\&.backend\&.lib\&.library\&.Catalogue\&.extract_content ( self, book_zip, book)" - -.PP -.nf -Opens epub as zip file filters then stores as list any files matching opf_regx - -.fi -.PP - -.SS "def pyShelf\&.src\&.backend\&.lib\&.library\&.Catalogue\&.extract_cover_html ( self, book_zip, book)" - -.PP -.nf -Opens epub as zip file filters then stores as list any files matching html_regx - -.fi -.PP - -.SS "def pyShelf\&.src\&.backend\&.lib\&.library\&.Catalogue\&.extract_cover_image ( self, book_zip, book)" - -.PP -.nf -Opens epub as zip file filters then stores as list any files matching cover_regx - -.fi -.PP - -.SS "def pyShelf\&.src\&.backend\&.lib\&.library\&.Catalogue\&.extract_metadata ( self, book)" - -.PP -.nf -Return extracted metadata and cover picture -book['path'] == Full path to ebook file -book['files'] == list of files from self.process_book(book) - -.fi -.PP - -.SS "def pyShelf\&.src\&.backend\&.lib\&.library\&.Catalogue\&.filter_books ( self)" - -.PP -.nf -Calls scan_folder and filters out book files -Proceeds to call process_book - -:returns self._book_list_expanded: json string containing all book metadata - -.fi -.PP - -.PP -Reimplemented in \fBpyShelf\&.src\&.backend\&.tests\&.library_test\&.Test_Catalogue\fP\&. -.SS "def pyShelf\&.src\&.backend\&.lib\&.library\&.Catalogue\&.import_books ( self, list = \fCNone\fP)" - -.PP -.nf -Main entry point for import operations. -Gets a list of new files via compare_shelf_current. -Iterates over list and inserts new books into database. - -.fi -.PP - -.SS "def pyShelf\&.src\&.backend\&.lib\&.library\&.Catalogue\&.process_book ( book)\fC [static]\fP" - -.PP -.nf -Return dictionary of epub file contents -.fi -.PP - -.SS "def pyShelf\&.src\&.backend\&.lib\&.library\&.Catalogue\&.scan_folder ( self, _path = \fCNone\fP)" - -.PP -.nf -Scan folder by _path, allows recurisive scanning - -.fi -.PP - - -.SH "Author" -.PP -Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&. diff --git a/docs/man/man3/pyShelf_src_backend_lib_pyShelf_BookDisplay.3 b/docs/man/man3/pyShelf_src_backend_lib_pyShelf_BookDisplay.3 deleted file mode 100644 index 834a5ec..0000000 --- a/docs/man/man3/pyShelf_src_backend_lib_pyShelf_BookDisplay.3 +++ /dev/null @@ -1,107 +0,0 @@ -.TH "pyShelf.src.backend.lib.pyShelf.BookDisplay" 3 "Sun Dec 1 2019" "Version 0.2.1" "pyShelf Open Source Ebook Server" \" -*- nroff -*- -.ad l -.nh -.SH NAME -pyShelf.src.backend.lib.pyShelf.BookDisplay -.SH SYNOPSIS -.br -.PP -.SS "Public Member Functions" - -.in +1c -.ti -1c -.RI "def \fB__init__\fP (self, **kwargs)" -.br -.ti -1c -.RI "def \fBnextPage\fP (self)" -.br -.ti -1c -.RI "def \fBpreviousPage\fP (self)" -.br -.ti -1c -.RI "def \fBbooksPerPage\fP (self, screen_size)" -.br -.in -1c -.SS "Public Attributes" - -.in +1c -.ti -1c -.RI "\fBbooks_per_page\fP" -.br -.ti -1c -.RI "\fBcurrent_page\fP" -.br -.ti -1c -.RI "\fBthumbnail_size\fP" -.br -.ti -1c -.RI "\fBthumbnail_scale\fP" -.br -.ti -1c -.RI "\fBtotal_pages\fP" -.br -.ti -1c -.RI "\fBscreen_size\fP" -.br -.in -1c -.SH "Detailed Description" -.PP - -.PP -.nf -All functions related to displaying book information in the HTML UI -.fi -.PP - -.SH "Constructor & Destructor Documentation" -.PP -.SS "def pyShelf\&.src\&.backend\&.lib\&.pyShelf\&.BookDisplay\&.__init__ ( self, ** kwargs)" - -.PP -.nf -Initialize class variables -:return: None - -.fi -.PP - -.SH "Member Function Documentation" -.PP -.SS "def pyShelf\&.src\&.backend\&.lib\&.pyShelf\&.BookDisplay\&.booksPerPage ( self, screen_size)" - -.PP -.nf -## TODO Remove me -Set books per page -:param screen_size: Array containing x,y pixel sizes -:return: self.books_per_page - -.fi -.PP - -.SS "def pyShelf\&.src\&.backend\&.lib\&.pyShelf\&.BookDisplay\&.nextPage ( self)" - -.PP -.nf -## TODO Remove me -Goto next book page -:return: new current_page - -.fi -.PP - -.SS "def pyShelf\&.src\&.backend\&.lib\&.pyShelf\&.BookDisplay\&.previousPage ( self)" - -.PP -.nf -## TODO Remove me -Goto previous book page -:return: new current_page - -.fi -.PP - - -.SH "Author" -.PP -Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&. diff --git a/docs/man/man3/pyShelf_src_backend_lib_pyShelf_InitFiles.3 b/docs/man/man3/pyShelf_src_backend_lib_pyShelf_InitFiles.3 deleted file mode 100644 index c30dce2..0000000 --- a/docs/man/man3/pyShelf_src_backend_lib_pyShelf_InitFiles.3 +++ /dev/null @@ -1,42 +0,0 @@ -.TH "pyShelf.src.backend.lib.pyShelf.InitFiles" 3 "Sun Dec 1 2019" "Version 0.2.1" "pyShelf Open Source Ebook Server" \" -*- nroff -*- -.ad l -.nh -.SH NAME -pyShelf.src.backend.lib.pyShelf.InitFiles -.SH SYNOPSIS -.br -.PP -.SS "Public Member Functions" - -.in +1c -.ti -1c -.RI "def \fB__init__\fP (self, file_array)" -.br -.ti -1c -.RI "def \fBCreateFile\fP (self, _pointer)" -.br -.in -1c -.SH "Detailed Description" -.PP - -.PP -.nf -First run file creation operations -.fi -.PP - -.SH "Member Function Documentation" -.PP -.SS "def pyShelf\&.src\&.backend\&.lib\&.pyShelf\&.InitFiles\&.CreateFile ( self, _pointer)" - -.PP -.nf -Checks if file exists and creates it if not - -.fi -.PP - - -.SH "Author" -.PP -Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&. diff --git a/docs/man/man3/pyShelf_src_backend_lib_storage_Storage.3 b/docs/man/man3/pyShelf_src_backend_lib_storage_Storage.3 deleted file mode 100644 index 151f164..0000000 --- a/docs/man/man3/pyShelf_src_backend_lib_storage_Storage.3 +++ /dev/null @@ -1,120 +0,0 @@ -.TH "pyShelf.src.backend.lib.storage.Storage" 3 "Sun Dec 1 2019" "Version 0.2.1" "pyShelf Open Source Ebook Server" \" -*- nroff -*- -.ad l -.nh -.SH NAME -pyShelf.src.backend.lib.storage.Storage -.SH SYNOPSIS -.br -.PP -.SS "Public Member Functions" - -.in +1c -.ti -1c -.RI "def \fB__init__\fP (self, db_pointer, config)" -.br -.ti -1c -.RI "def \fBdatabase\fP (self)" -.br -.ti -1c -.RI "def \fBcreate_tables\fP (self)" -.br -.ti -1c -.RI "def \fBinsert_book\fP (self, book)" -.br -.ti -1c -.RI "def \fBbook_paths_list\fP (self)" -.br -.ti -1c -.RI "def \fBcommit\fP (self)" -.br -.ti -1c -.RI "def \fBclose\fP (self)" -.br -.in -1c -.SS "Public Attributes" - -.in +1c -.ti -1c -.RI "\fBsql\fP" -.br -.ti -1c -.RI "\fBuser\fP" -.br -.ti -1c -.RI "\fBpassword\fP" -.br -.ti -1c -.RI "\fBdb\fP" -.br -.ti -1c -.RI "\fBcursor\fP" -.br -.in -1c -.SH "Detailed Description" -.PP - -.PP -.nf -Contains all methods for system storage -.fi -.PP - -.SH "Member Function Documentation" -.PP -.SS "def pyShelf\&.src\&.backend\&.lib\&.storage\&.Storage\&.book_paths_list ( self)" - -.PP -.nf -Get file paths from database for comparison to system files - -.fi -.PP - -.SS "def pyShelf\&.src\&.backend\&.lib\&.storage\&.Storage\&.close ( self)" - -.PP -.nf -Close database connection - -.fi -.PP - -.SS "def pyShelf\&.src\&.backend\&.lib\&.storage\&.Storage\&.commit ( self)" - -.PP -.nf -Commit database transactions - -.fi -.PP - -.SS "def pyShelf\&.src\&.backend\&.lib\&.storage\&.Storage\&.create_tables ( self)" - -.PP -.nf -Create table structure -.fi -.PP - -.SS "def pyShelf\&.src\&.backend\&.lib\&.storage\&.Storage\&.database ( self)" - -.PP -.nf -Create database cursor -.fi -.PP - -.SS "def pyShelf\&.src\&.backend\&.lib\&.storage\&.Storage\&.insert_book ( self, book)" - -.PP -.nf -Insert book in database -:returns: True if succeeds False if not - -.fi -.PP - - -.SH "Author" -.PP -Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&. diff --git a/docs/man/man3/pyShelf_src_backend_tests_config_test_TestConfig.3 b/docs/man/man3/pyShelf_src_backend_tests_config_test_TestConfig.3 deleted file mode 100644 index 8c1db57..0000000 --- a/docs/man/man3/pyShelf_src_backend_tests_config_test_TestConfig.3 +++ /dev/null @@ -1,35 +0,0 @@ -.TH "pyShelf.src.backend.tests.config_test.TestConfig" 3 "Sun Dec 1 2019" "Version 0.2.1" "pyShelf Open Source Ebook Server" \" -*- nroff -*- -.ad l -.nh -.SH NAME -pyShelf.src.backend.tests.config_test.TestConfig -.SH SYNOPSIS -.br -.PP -.SS "Public Member Functions" - -.in +1c -.ti -1c -.RI "def \fBtest_book_dir\fP (self)" -.br -.ti -1c -.RI "def \fBtest_title\fP (self)" -.br -.ti -1c -.RI "def \fBtest_version\fP (self)" -.br -.in -1c -.SS "Static Public Attributes" - -.in +1c -.ti -1c -.RI "\fBconfig\fP = \fBConfig\fP(os\&.path\&.abspath(os\&.path\&.curdir))" -.br -.in -1c -.SH "Detailed Description" -.PP - - -.SH "Author" -.PP -Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&. diff --git a/docs/man/man3/pyShelf_src_backend_tests_library_test_TestCatalogue.3 b/docs/man/man3/pyShelf_src_backend_tests_library_test_TestCatalogue.3 deleted file mode 100644 index 456aa9e..0000000 --- a/docs/man/man3/pyShelf_src_backend_tests_library_test_TestCatalogue.3 +++ /dev/null @@ -1,32 +0,0 @@ -.TH "pyShelf.src.backend.tests.library_test.TestCatalogue" 3 "Sun Dec 1 2019" "Version 0.2.1" "pyShelf Open Source Ebook Server" \" -*- nroff -*- -.ad l -.nh -.SH NAME -pyShelf.src.backend.tests.library_test.TestCatalogue -.SH SYNOPSIS -.br -.PP -.SS "Public Member Functions" - -.in +1c -.ti -1c -.RI "def \fBtest_filter_books\fP (self)" -.br -.in -1c -.SS "Static Public Attributes" - -.in +1c -.ti -1c -.RI "\fBroot\fP = os\&.path\&.abspath(os\&.path\&.curdir)" -.br -.ti -1c -.RI "\fBconfig\fP = \fBTest_Config\fP()" -.br -.in -1c -.SH "Detailed Description" -.PP - - -.SH "Author" -.PP -Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&. diff --git a/docs/man/man3/pyShelf_src_backend_tests_library_test_Test_Catalogue.3 b/docs/man/man3/pyShelf_src_backend_tests_library_test_Test_Catalogue.3 deleted file mode 100644 index ea2ff4f..0000000 --- a/docs/man/man3/pyShelf_src_backend_tests_library_test_Test_Catalogue.3 +++ /dev/null @@ -1,179 +0,0 @@ -.TH "pyShelf.src.backend.tests.library_test.Test_Catalogue" 3 "Sun Dec 1 2019" "Version 0.2.1" "pyShelf Open Source Ebook Server" \" -*- nroff -*- -.ad l -.nh -.SH NAME -pyShelf.src.backend.tests.library_test.Test_Catalogue -.SH SYNOPSIS -.br -.PP -.PP -Inherits \fBpyShelf\&.src\&.backend\&.lib\&.library\&.Catalogue\fP\&. -.SS "Public Member Functions" - -.in +1c -.ti -1c -.RI "def \fB__init__\fP (self)" -.br -.ti -1c -.RI "def \fBfilter_books\fP (self)" -.br -.ti -1c -.RI "def \fBscan_folder\fP (self, _path=None)" -.br -.ti -1c -.RI "def \fBextract_metadata\fP (self, book)" -.br -.ti -1c -.RI "def \fBextract_content\fP (self, book_zip, book)" -.br -.ti -1c -.RI "def \fBextract_cover_html\fP (self, book_zip, book)" -.br -.ti -1c -.RI "def \fBextract_cover_image\fP (self, book_zip, book)" -.br -.ti -1c -.RI "def \fBcompare_shelf_current\fP (self)" -.br -.ti -1c -.RI "def \fBimport_books\fP (self, list=None)" -.br -.in -1c -.SS "Static Public Member Functions" - -.in +1c -.ti -1c -.RI "def \fBprocess_book\fP (book)" -.br -.in -1c -.SS "Public Attributes" - -.in +1c -.ti -1c -.RI "\fBbook_shelf\fP" -.br -.ti -1c -.RI "\fBfile_list\fP" -.br -.ti -1c -.RI "\fBopf_regx\fP" -.br -.ti -1c -.RI "\fBcover_regx\fP" -.br -.ti -1c -.RI "\fBhtml_regx\fP" -.br -.ti -1c -.RI "\fBroot_dir\fP" -.br -.ti -1c -.RI "\fBbook_folder\fP" -.br -.ti -1c -.RI "\fBbooks\fP" -.br -.ti -1c -.RI "\fBdb_pointer\fP" -.br -.ti -1c -.RI "\fBconfig\fP" -.br -.in -1c -.SH "Detailed Description" -.PP -.SH "Member Function Documentation" -.PP -.SS "def pyShelf\&.src\&.backend\&.lib\&.library\&.Catalogue\&.compare_shelf_current ( self)\fC [inherited]\fP" - -.PP -.nf -Calls storage system, gets list of books stored and compares against files on disk - -.fi -.PP - -.SS "def pyShelf\&.src\&.backend\&.lib\&.library\&.Catalogue\&.extract_content ( self, book_zip, book)\fC [inherited]\fP" - -.PP -.nf -Opens epub as zip file filters then stores as list any files matching opf_regx - -.fi -.PP - -.SS "def pyShelf\&.src\&.backend\&.lib\&.library\&.Catalogue\&.extract_cover_html ( self, book_zip, book)\fC [inherited]\fP" - -.PP -.nf -Opens epub as zip file filters then stores as list any files matching html_regx - -.fi -.PP - -.SS "def pyShelf\&.src\&.backend\&.lib\&.library\&.Catalogue\&.extract_cover_image ( self, book_zip, book)\fC [inherited]\fP" - -.PP -.nf -Opens epub as zip file filters then stores as list any files matching cover_regx - -.fi -.PP - -.SS "def pyShelf\&.src\&.backend\&.lib\&.library\&.Catalogue\&.extract_metadata ( self, book)\fC [inherited]\fP" - -.PP -.nf -Return extracted metadata and cover picture -book['path'] == Full path to ebook file -book['files'] == list of files from self.process_book(book) - -.fi -.PP - -.SS "def pyShelf\&.src\&.backend\&.tests\&.library_test\&.Test_Catalogue\&.filter_books ( self)" - -.PP -.nf -Calls scan_folder and filters out book files -Proceeds to call process_book - -:returns self._book_list_expanded: json string containing all book metadata - -.fi -.PP - -.PP -Reimplemented from \fBpyShelf\&.src\&.backend\&.lib\&.library\&.Catalogue\fP\&. -.SS "def pyShelf\&.src\&.backend\&.lib\&.library\&.Catalogue\&.import_books ( self, list = \fCNone\fP)\fC [inherited]\fP" - -.PP -.nf -Main entry point for import operations. -Gets a list of new files via compare_shelf_current. -Iterates over list and inserts new books into database. - -.fi -.PP - -.SS "def pyShelf\&.src\&.backend\&.lib\&.library\&.Catalogue\&.process_book ( book)\fC [static]\fP, \fC [inherited]\fP" - -.PP -.nf -Return dictionary of epub file contents -.fi -.PP - -.SS "def pyShelf\&.src\&.backend\&.lib\&.library\&.Catalogue\&.scan_folder ( self, _path = \fCNone\fP)\fC [inherited]\fP" - -.PP -.nf -Scan folder by _path, allows recurisive scanning - -.fi -.PP - - -.SH "Author" -.PP -Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&. diff --git a/docs/man/man3/pyShelf_src_backend_tests_library_test_Test_Config.3 b/docs/man/man3/pyShelf_src_backend_tests_library_test_Test_Config.3 deleted file mode 100644 index 6e68e00..0000000 --- a/docs/man/man3/pyShelf_src_backend_tests_library_test_Test_Config.3 +++ /dev/null @@ -1,73 +0,0 @@ -.TH "pyShelf.src.backend.tests.library_test.Test_Config" 3 "Sun Dec 1 2019" "Version 0.2.1" "pyShelf Open Source Ebook Server" \" -*- nroff -*- -.ad l -.nh -.SH NAME -pyShelf.src.backend.tests.library_test.Test_Config -.SH SYNOPSIS -.br -.PP -.PP -Inherits \fBpyShelf\&.src\&.backend\&.lib\&.config\&.Config\fP\&. -.SS "Public Member Functions" - -.in +1c -.ti -1c -.RI "def \fB__init__\fP (self)" -.br -.ti -1c -.RI "def \fBopen_file\fP (self, root='config\&.json')" -.br -.in -1c -.SS "Public Attributes" - -.in +1c -.ti -1c -.RI "\fBbook_path\fP" -.br -.ti -1c -.RI "\fBTITLE\fP" -.br -.ti -1c -.RI "\fBVERSION\fP" -.br -.ti -1c -.RI "\fBbook_shelf\fP" -.br -.ti -1c -.RI "\fBcatalogue_db\fP" -.br -.ti -1c -.RI "\fBuser\fP" -.br -.ti -1c -.RI "\fBpassword\fP" -.br -.ti -1c -.RI "\fBfile_array\fP" -.br -.ti -1c -.RI "\fBroot\fP" -.br -.ti -1c -.RI "\fBauto_scan\fP" -.br -.in -1c -.SH "Detailed Description" -.PP -.SH "Member Function Documentation" -.PP -.SS "def pyShelf\&.src\&.backend\&.tests\&.library_test\&.Test_Config\&.open_file ( self, _cp = \fC'config\&.json'\fP)" - -.PP -.nf -Opens config.json and reads in configuration options - -.fi -.PP - -.PP -Reimplemented from \fBpyShelf\&.src\&.backend\&.lib\&.config\&.Config\fP\&. - -.SH "Author" -.PP -Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&. diff --git a/docs/man/man3/pyShelf_src_frontend_settings.3 b/docs/man/man3/pyShelf_src_frontend_settings.3 deleted file mode 100644 index 71c8190..0000000 --- a/docs/man/man3/pyShelf_src_frontend_settings.3 +++ /dev/null @@ -1,180 +0,0 @@ -.TH "pyShelf.src.frontend.settings" 3 "Sun Dec 1 2019" "Version 0.2.1" "pyShelf Open Source Ebook Server" \" -*- nroff -*- -.ad l -.nh -.SH NAME -pyShelf.src.frontend.settings -.SH SYNOPSIS -.br -.PP -.SS "Variables" - -.in +1c -.ti -1c -.RI "\fBBASE_DIR\fP = os\&.path\&.dirname(os\&.path\&.dirname(os\&.path\&.abspath(__file__)))" -.br -.ti -1c -.RI "string \fBSECRET_KEY\fP = '@(9b9jslgg41u1u=mr)\-2*\-n2x0vef0zsy39*z@sz18&tvow18'" -.br -.ti -1c -.RI "bool \fBDEBUG\fP = False" -.br -.ti -1c -.RI "list \fBALLOWED_HOSTS\fP = ['*']" -.br -.ti -1c -.RI "list \fBINSTALLED_APPS\fP" -.br -.ti -1c -.RI "list \fBMIDDLEWARE\fP" -.br -.ti -1c -.RI "list \fBINTERNAL_IPS\fP" -.br -.ti -1c -.RI "string \fBROOT_URLCONF\fP = 'frontend\&.urls'" -.br -.ti -1c -.RI "list \fBTEMPLATES\fP" -.br -.ti -1c -.RI "string \fBWSGI_APPLICATION\fP = 'frontend\&.wsgi\&.application'" -.br -.ti -1c -.RI "dictionary \fBDATABASES\fP" -.br -.ti -1c -.RI "list \fBAUTH_PASSWORD_VALIDATORS\fP" -.br -.ti -1c -.RI "string \fBLANGUAGE_CODE\fP = 'en\-us'" -.br -.ti -1c -.RI "string \fBTIME_ZONE\fP = 'UTC'" -.br -.ti -1c -.RI "bool \fBUSE_I18N\fP = True" -.br -.ti -1c -.RI "bool \fBUSE_L10N\fP = True" -.br -.ti -1c -.RI "bool \fBUSE_TZ\fP = True" -.br -.ti -1c -.RI "string \fBSTATIC_URL\fP = '/static/'" -.br -.ti -1c -.RI "\fBSTATIC_ROOT\fP = os\&.path\&.join(BASE_DIR, 'interface/static/')" -.br -.in -1c -.SH "Detailed Description" -.PP - -.PP -.nf -Django settings for frontend project. - -Generated by 'django-admin startproject' using Django 2.2.7. - -For more information on this file, see -https://docs.djangoproject.com/en/2.2/topics/settings/ - -For the full list of settings and their values, see -https://docs.djangoproject.com/en/2.2/ref/settings/ - -.fi -.PP - -.SH "Variable Documentation" -.PP -.SS "list pyShelf\&.src\&.frontend\&.settings\&.AUTH_PASSWORD_VALIDATORS" -\fBInitial value:\fP -.PP -.nf -1 = [ -2 { -3 "NAME": "django\&.contrib\&.auth\&.password_validation\&.UserAttributeSimilarityValidator", -4 }, -5 {"NAME": "django\&.contrib\&.auth\&.password_validation\&.MinimumLengthValidator",}, -6 {"NAME": "django\&.contrib\&.auth\&.password_validation\&.CommonPasswordValidator",}, -7 {"NAME": "django\&.contrib\&.auth\&.password_validation\&.NumericPasswordValidator",}, -8 ] -.fi -.SS "dictionary pyShelf\&.src\&.frontend\&.settings\&.DATABASES" -\fBInitial value:\fP -.PP -.nf -1 = { -2 "default": { -3 "ENGINE": "django\&.db\&.backends\&.postgresql", -4 # "ENGINE": "django\&.db\&.backends\&.sqlite3", -5 "NAME": "pyshelf", -6 "PASSWORD": "", -7 # "NAME": os\&.path\&.join(BASE_DIR, "db\&.sqlite3"), -8 } -9 } -.fi -.SS "list pyShelf\&.src\&.frontend\&.settings\&.INSTALLED_APPS" -\fBInitial value:\fP -.PP -.nf -1 = [ -2 "django\&.contrib\&.admin", -3 "django\&.contrib\&.auth", -4 "django\&.contrib\&.contenttypes", -5 "django\&.contrib\&.sessions", -6 "django\&.contrib\&.messages", -7 "django\&.contrib\&.staticfiles", -8 "interface", -9 "interface\&.templatetags", -10 "debug_toolbar", -11 ] -.fi -.SS "list pyShelf\&.src\&.frontend\&.settings\&.INTERNAL_IPS" -\fBInitial value:\fP -.PP -.nf -1 = [ -2 # \&.\&.\&. -3 "127\&.0\&.0\&.1", -4 # \&.\&.\&. -5 ] -.fi -.SS "list pyShelf\&.src\&.frontend\&.settings\&.MIDDLEWARE" -\fBInitial value:\fP -.PP -.nf -1 = [ -2 "django\&.middleware\&.security\&.SecurityMiddleware", -3 "django\&.contrib\&.sessions\&.middleware\&.SessionMiddleware", -4 "django\&.middleware\&.common\&.CommonMiddleware", -5 "django\&.middleware\&.csrf\&.CsrfViewMiddleware", -6 "debug_toolbar\&.middleware\&.DebugToolbarMiddleware", -7 "django\&.contrib\&.auth\&.middleware\&.AuthenticationMiddleware", -8 "django\&.contrib\&.messages\&.middleware\&.MessageMiddleware", -9 "django\&.middleware\&.clickjacking\&.XFrameOptionsMiddleware", -10 ] -.fi -.SS "list pyShelf\&.src\&.frontend\&.settings\&.TEMPLATES" -\fBInitial value:\fP -.PP -.nf -1 = [ -2 { -3 "BACKEND": "django\&.template\&.backends\&.django\&.DjangoTemplates", -4 "DIRS": [], -5 "APP_DIRS": True, -6 "OPTIONS": { -7 "context_processors": [ -8 "django\&.template\&.context_processors\&.debug", -9 "django\&.template\&.context_processors\&.request", -10 "django\&.contrib\&.auth\&.context_processors\&.auth", -11 "django\&.contrib\&.messages\&.context_processors\&.messages", -12 ], -13 }, -14 }, -15 ] -.fi -.SH "Author" -.PP -Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&. diff --git a/docs/man/man3/pyShelf_src_frontend_urls.3 b/docs/man/man3/pyShelf_src_frontend_urls.3 deleted file mode 100644 index c3d36df..0000000 --- a/docs/man/man3/pyShelf_src_frontend_urls.3 +++ /dev/null @@ -1,55 +0,0 @@ -.TH "pyShelf.src.frontend.urls" 3 "Sun Dec 1 2019" "Version 0.2.1" "pyShelf Open Source Ebook Server" \" -*- nroff -*- -.ad l -.nh -.SH NAME -pyShelf.src.frontend.urls -.SH SYNOPSIS -.br -.PP -.SS "Variables" - -.in +1c -.ti -1c -.RI "list \fBurlpatterns\fP" -.br -.in -1c -.SH "Detailed Description" -.PP - -.PP -.nf -frontend URL Configuration - -The `urlpatterns` list routes URLs to views. For more information please see: - https://docs.djangoproject.com/en/2.2/topics/http/urls/ -Examples: -Function views - 1. Add an import: from my_app import views - 2. Add a URL to urlpatterns: path('', views.home, name='home') -Class-based views - 1. Add an import: from other_app.views import Home - 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') -Including another URLconf - 1. Import the include() function: from django.urls import include, path - 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) - -.fi -.PP - -.SH "Variable Documentation" -.PP -.SS "list pyShelf\&.src\&.frontend\&.urls\&.urlpatterns" -\fBInitial value:\fP -.PP -.nf -1 = [ -2 path("admin/", admin\&.site\&.urls), -3 path("", views\&.index, name="index"), -4 path("download/", views\&.download, name="download"), -5 path("prev_page/", views\&.prev_page, name="prev_page"), -6 path("next_page/", views\&.next_page, name="next_page"), -7 ] -.fi -.SH "Author" -.PP -Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&. diff --git a/docs/man/man3/pyShelf_src_frontend_wsgi.3 b/docs/man/man3/pyShelf_src_frontend_wsgi.3 deleted file mode 100644 index bc5c880..0000000 --- a/docs/man/man3/pyShelf_src_frontend_wsgi.3 +++ /dev/null @@ -1,33 +0,0 @@ -.TH "pyShelf.src.frontend.wsgi" 3 "Sun Dec 1 2019" "Version 0.2.1" "pyShelf Open Source Ebook Server" \" -*- nroff -*- -.ad l -.nh -.SH NAME -pyShelf.src.frontend.wsgi -.SH SYNOPSIS -.br -.PP -.SS "Variables" - -.in +1c -.ti -1c -.RI "\fBapplication\fP = get_wsgi_application()" -.br -.in -1c -.SH "Detailed Description" -.PP - -.PP -.nf -WSGI config for frontend project. - -It exposes the WSGI callable as a module-level variable named ``application``. - -For more information on this file, see -https://docs.djangoproject.com/en/2.2/howto/deployment/wsgi/ - -.fi -.PP - -.SH "Author" -.PP -Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&. diff --git a/docs/man/man3/pyShelf_src_interface_apps_InterfaceConfig.3 b/docs/man/man3/pyShelf_src_interface_apps_InterfaceConfig.3 deleted file mode 100644 index 8f30494..0000000 --- a/docs/man/man3/pyShelf_src_interface_apps_InterfaceConfig.3 +++ /dev/null @@ -1,24 +0,0 @@ -.TH "pyShelf.src.interface.apps.InterfaceConfig" 3 "Sun Dec 1 2019" "Version 0.2.1" "pyShelf Open Source Ebook Server" \" -*- nroff -*- -.ad l -.nh -.SH NAME -pyShelf.src.interface.apps.InterfaceConfig -.SH SYNOPSIS -.br -.PP -.PP -Inherits AppConfig\&. -.SS "Static Public Attributes" - -.in +1c -.ti -1c -.RI "string \fBname\fP = 'interface'" -.br -.in -1c -.SH "Detailed Description" -.PP - - -.SH "Author" -.PP -Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&. diff --git a/docs/man/man3/pyShelf_src_interface_migrations_0001_initial_Migration.3 b/docs/man/man3/pyShelf_src_interface_migrations_0001_initial_Migration.3 deleted file mode 100644 index 6812b9b..0000000 --- a/docs/man/man3/pyShelf_src_interface_migrations_0001_initial_Migration.3 +++ /dev/null @@ -1,61 +0,0 @@ -.TH "pyShelf.src.interface.migrations.0001_initial.Migration" 3 "Sun Dec 1 2019" "Version 0.2.1" "pyShelf Open Source Ebook Server" \" -*- nroff -*- -.ad l -.nh -.SH NAME -pyShelf.src.interface.migrations.0001_initial.Migration -.SH SYNOPSIS -.br -.PP -.PP -Inherits Migration\&. -.SS "Static Public Attributes" - -.in +1c -.ti -1c -.RI "bool \fBinitial\fP = True" -.br -.ti -1c -.RI "list \fBdependencies\fP = []" -.br -.ti -1c -.RI "list \fBoperations\fP" -.br -.in -1c -.SH "Detailed Description" -.PP -.SH "Member Data Documentation" -.PP -.SS "list pyShelf\&.src\&.interface\&.migrations\&.0001_initial\&.Migration\&.operations\fC [static]\fP" -\fBInitial value:\fP -.PP -.nf -= [ - 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",}, - ), - ] -.fi - - -.SH "Author" -.PP -Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&. diff --git a/docs/man/man3/pyShelf_src_interface_models_Books.3 b/docs/man/man3/pyShelf_src_interface_models_Books.3 deleted file mode 100644 index 1c3aeea..0000000 --- a/docs/man/man3/pyShelf_src_interface_models_Books.3 +++ /dev/null @@ -1,83 +0,0 @@ -.TH "pyShelf.src.interface.models.Books" 3 "Sun Dec 1 2019" "Version 0.2.1" "pyShelf Open Source Ebook Server" \" -*- nroff -*- -.ad l -.nh -.SH NAME -pyShelf.src.interface.models.Books -.SH SYNOPSIS -.br -.PP -.PP -Inherits Model\&. -.SS "Classes" - -.in +1c -.ti -1c -.RI "class \fBMeta\fP" -.br -.in -1c -.SS "Public Member Functions" - -.in +1c -.ti -1c -.RI "def \fB__str__\fP (self)" -.br -.ti -1c -.RI "def \fBget_absolute_url\fP (self)" -.br -.in -1c -.SS "Static Public Attributes" - -.in +1c -.ti -1c -.RI "\fBtitle\fP = models\&.CharField(max_length=255)" -.br -.ti -1c -.RI "\fBauthor\fP = models\&.CharField(max_length=255, null=True)" -.br -.ti -1c -.RI "\fBcategories\fP = models\&.CharField(max_length=255, null=True)" -.br -.ti -1c -.RI "\fBcover\fP = models\&.BinaryField(null=True, editable=True)" -.br -.ti -1c -.RI "\fBpages\fP = models\&.IntegerField(null=True)" -.br -.ti -1c -.RI "\fBprogress\fP = models\&.IntegerField(null=True)" -.br -.ti -1c -.RI "\fBfile_name\fP = models\&.CharField(max_length=255, null=False)" -.br -.in -1c -.SH "Detailed Description" -.PP - -.PP -.nf -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 - -.fi -.PP - -.SH "Member Function Documentation" -.PP -.SS "def pyShelf\&.src\&.interface\&.models\&.Books\&.get_absolute_url ( self)" - -.PP -.nf -Returns the url to access a particular instance of MyModelName. -.fi -.PP - - -.SH "Author" -.PP -Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&. diff --git a/docs/man/man3/pyShelf_src_interface_models_Books_Meta.3 b/docs/man/man3/pyShelf_src_interface_models_Books_Meta.3 deleted file mode 100644 index 5ea7e8b..0000000 --- a/docs/man/man3/pyShelf_src_interface_models_Books_Meta.3 +++ /dev/null @@ -1,22 +0,0 @@ -.TH "pyShelf.src.interface.models.Books.Meta" 3 "Sun Dec 1 2019" "Version 0.2.1" "pyShelf Open Source Ebook Server" \" -*- nroff -*- -.ad l -.nh -.SH NAME -pyShelf.src.interface.models.Books.Meta -.SH SYNOPSIS -.br -.PP -.SS "Static Public Attributes" - -.in +1c -.ti -1c -.RI "string \fBdb_table\fP = 'books'" -.br -.in -1c -.SH "Detailed Description" -.PP - - -.SH "Author" -.PP -Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&. diff --git a/docs/man/man3/pyShelf_src_manage.3 b/docs/man/man3/pyShelf_src_manage.3 deleted file mode 100644 index fbd7370..0000000 --- a/docs/man/man3/pyShelf_src_manage.3 +++ /dev/null @@ -1,27 +0,0 @@ -.TH "pyShelf.src.manage" 3 "Sun Dec 1 2019" "Version 0.2.1" "pyShelf Open Source Ebook Server" \" -*- nroff -*- -.ad l -.nh -.SH NAME -pyShelf.src.manage -.SH SYNOPSIS -.br -.PP -.SS "Functions" - -.in +1c -.ti -1c -.RI "def \fBmain\fP ()" -.br -.in -1c -.SH "Detailed Description" -.PP - -.PP -.nf -Django's command-line utility for administrative tasks. -.fi -.PP - -.SH "Author" -.PP -Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&. diff --git a/docs/warn.log b/docs/warn.log deleted file mode 100644 index 2cf983b..0000000 --- a/docs/warn.log +++ /dev/null @@ -1,149 +0,0 @@ -/home/raelon/Projects/pyShelf/src/backend/tests/library_test.py:19: warning: Compound pyShelf::src::backend::tests::library_test::Test_Catalogue is not documented. -/home/raelon/Projects/pyShelf/src/backend/tests/library_test.py:28: warning: Compound pyShelf::src::backend::tests::library_test::TestCatalogue is not documented. -/home/raelon/Projects/pyShelf/src/interface/models.py:18: warning: Compound pyShelf::src::interface::models::Books::Meta is not documented. -/home/raelon/Projects/pyShelf/src/backend/tests/config_test.py:6: warning: Compound pyShelf::src::backend::tests::config_test::TestConfig is not documented. -/home/raelon/Projects/pyShelf/src/interface/apps.py:4: warning: Compound pyShelf::src::interface::apps::InterfaceConfig is not documented. -/home/raelon/Projects/pyShelf/src/backend/tests/library_test.py:8: warning: Compound pyShelf::src::backend::tests::library_test::Test_Config is not documented. -/home/raelon/Projects/pyShelf/src/interface/migrations/0001_initial.py:6: warning: Compound pyShelf::src::interface::migrations::0001_initial::Migration is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/api_hooks.py:12: warning: Member __init__(self) (function) of class pyShelf::src::backend::lib::api_hooks::DuckDuckGo is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/api_hooks.py:13: warning: Member url (variable) of class pyShelf::src::backend::lib::api_hooks::DuckDuckGo is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/api_hooks.py:15: warning: return type of member pyShelf.src.backend.lib.api_hooks.DuckDuckGo.image_result is not documented -/home/raelon/Projects/pyShelf/src/backend/lib/config.py:14: warning: Member __init__(self, root) (function) of class pyShelf::src::backend::lib::config::Config is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/config.py:17: warning: Member book_path (variable) of class pyShelf::src::backend::lib::config::Config is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/config.py:18: warning: Member TITLE (variable) of class pyShelf::src::backend::lib::config::Config is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/config.py:19: warning: Member VERSION (variable) of class pyShelf::src::backend::lib::config::Config is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/config.py:21: warning: Member book_shelf (variable) of class pyShelf::src::backend::lib::config::Config is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/config.py:24: warning: Member catalogue_db (variable) of class pyShelf::src::backend::lib::config::Config is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/config.py:25: warning: Member user (variable) of class pyShelf::src::backend::lib::config::Config is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/config.py:26: warning: Member password (variable) of class pyShelf::src::backend::lib::config::Config is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/config.py:27: warning: Member file_array (variable) of class pyShelf::src::backend::lib::config::Config is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/config.py:31: warning: Member root (variable) of class pyShelf::src::backend::lib::config::Config is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/config.py:32: warning: Member auto_scan (variable) of class pyShelf::src::backend::lib::config::Config is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/config.py:34: warning: return type of member pyShelf.src.backend.lib.config.Config.open_file is not documented -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:22: warning: Member __init__(self, config) (function) of class pyShelf::src::backend::lib::library::Catalogue is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:23: warning: Member file_list (variable) of class pyShelf::src::backend::lib::library::Catalogue is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:24: warning: Member opf_regx (variable) of class pyShelf::src::backend::lib::library::Catalogue is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:25: warning: Member cover_regx (variable) of class pyShelf::src::backend::lib::library::Catalogue is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:26: warning: Member html_regx (variable) of class pyShelf::src::backend::lib::library::Catalogue is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:27: warning: Member root_dir (variable) of class pyShelf::src::backend::lib::library::Catalogue is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:28: warning: Member book_folder (variable) of class pyShelf::src::backend::lib::library::Catalogue is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:29: warning: Member book_shelf (variable) of class pyShelf::src::backend::lib::library::Catalogue is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:31: warning: Member books (variable) of class pyShelf::src::backend::lib::library::Catalogue is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:32: warning: Member db_pointer (variable) of class pyShelf::src::backend::lib::library::Catalogue is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:33: warning: Member config (variable) of class pyShelf::src::backend::lib::library::Catalogue is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:140: warning: return type of member pyShelf.src.backend.lib.library.Catalogue.compare_shelf_current is not documented -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:115: warning: return type of member pyShelf.src.backend.lib.library.Catalogue.extract_content is not documented -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:122: warning: return type of member pyShelf.src.backend.lib.library.Catalogue.extract_cover_html is not documented -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:129: warning: return type of member pyShelf.src.backend.lib.library.Catalogue.extract_cover_image is not documented -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:89: warning: return type of member pyShelf.src.backend.lib.library.Catalogue.extract_metadata is not documented -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:52: warning: return type of member pyShelf.src.backend.lib.library.Catalogue.filter_books is not documented -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:158: warning: return type of member pyShelf.src.backend.lib.library.Catalogue.import_books is not documented -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:73: warning: return type of member pyShelf.src.backend.lib.library.Catalogue.process_book is not documented -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:35: warning: return type of member pyShelf.src.backend.lib.library.Catalogue.scan_folder is not documented -/home/raelon/Projects/pyShelf/src/backend/lib/pyShelf.py:45: warning: Member books_per_page (variable) of class pyShelf::src::backend::lib::pyShelf::BookDisplay is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/pyShelf.py:46: warning: Member current_page (variable) of class pyShelf::src::backend::lib::pyShelf::BookDisplay is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/pyShelf.py:47: warning: Member thumbnail_size (variable) of class pyShelf::src::backend::lib::pyShelf::BookDisplay is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/pyShelf.py:48: warning: Member thumbnail_scale (variable) of class pyShelf::src::backend::lib::pyShelf::BookDisplay is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/pyShelf.py:49: warning: Member total_pages (variable) of class pyShelf::src::backend::lib::pyShelf::BookDisplay is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/pyShelf.py:51: warning: Member screen_size (variable) of class pyShelf::src::backend::lib::pyShelf::BookDisplay is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/pyShelf.py:40: warning: parameters of member pyShelf.src.backend.lib.pyShelf.BookDisplay.__init__ are not (all) documented -/home/raelon/Projects/pyShelf/src/backend/lib/pyShelf.py:73: warning: return type of member pyShelf.src.backend.lib.pyShelf.BookDisplay.booksPerPage is not documented -/home/raelon/Projects/pyShelf/src/backend/lib/pyShelf.py:55: warning: return type of member pyShelf.src.backend.lib.pyShelf.BookDisplay.nextPage is not documented -/home/raelon/Projects/pyShelf/src/backend/lib/pyShelf.py:64: warning: return type of member pyShelf.src.backend.lib.pyShelf.BookDisplay.previousPage is not documented -/home/raelon/Projects/pyShelf/src/backend/lib/pyShelf.py:15: warning: Member __init__(self, file_array) (function) of class pyShelf::src::backend::lib::pyShelf::InitFiles is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/pyShelf.py:27: warning: return type of member pyShelf.src.backend.lib.pyShelf.InitFiles.CreateFile is not documented -/home/raelon/Projects/pyShelf/src/backend/lib/storage.py:14: warning: Member __init__(self, db_pointer, config) (function) of class pyShelf::src::backend::lib::storage::Storage is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/storage.py:16: warning: Member sql (variable) of class pyShelf::src::backend::lib::storage::Storage is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/storage.py:17: warning: Member user (variable) of class pyShelf::src::backend::lib::storage::Storage is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/storage.py:18: warning: Member password (variable) of class pyShelf::src::backend::lib::storage::Storage is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/storage.py:26: warning: Member db (variable) of class pyShelf::src::backend::lib::storage::Storage is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/storage.py:27: warning: Member cursor (variable) of class pyShelf::src::backend::lib::storage::Storage is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/storage.py:71: warning: return type of member pyShelf.src.backend.lib.storage.Storage.book_paths_list is not documented -/home/raelon/Projects/pyShelf/src/backend/lib/storage.py:93: warning: return type of member pyShelf.src.backend.lib.storage.Storage.close is not documented -/home/raelon/Projects/pyShelf/src/backend/lib/storage.py:83: warning: return type of member pyShelf.src.backend.lib.storage.Storage.commit is not documented -/home/raelon/Projects/pyShelf/src/backend/lib/storage.py:34: warning: return type of member pyShelf.src.backend.lib.storage.Storage.create_tables is not documented -/home/raelon/Projects/pyShelf/src/backend/lib/storage.py:22: warning: return type of member pyShelf.src.backend.lib.storage.Storage.database is not documented -/home/raelon/Projects/pyShelf/src/backend/lib/storage.py:45: warning: return type of member pyShelf.src.backend.lib.storage.Storage.insert_book is not documented -/home/raelon/Projects/pyShelf/src/backend/tests/config_test.py:9: warning: Member test_book_dir(self) (function) of class pyShelf::src::backend::tests::config_test::TestConfig is not documented. -/home/raelon/Projects/pyShelf/src/backend/tests/config_test.py:12: warning: Member test_title(self) (function) of class pyShelf::src::backend::tests::config_test::TestConfig is not documented. -/home/raelon/Projects/pyShelf/src/backend/tests/config_test.py:15: warning: Member test_version(self) (function) of class pyShelf::src::backend::tests::config_test::TestConfig is not documented. -/home/raelon/Projects/pyShelf/src/backend/tests/config_test.py:7: warning: Member config (variable) of class pyShelf::src::backend::tests::config_test::TestConfig is not documented. -/home/raelon/Projects/pyShelf/src/backend/tests/library_test.py:20: warning: Member __init__(self) (function) of class pyShelf::src::backend::tests::library_test::Test_Catalogue is not documented. -/home/raelon/Projects/pyShelf/src/backend/tests/library_test.py:24: warning: Member book_shelf (variable) of class pyShelf::src::backend::tests::library_test::Test_Catalogue is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:23: warning: Member file_list (variable) of class pyShelf::src::backend::lib::library::Catalogue is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:24: warning: Member opf_regx (variable) of class pyShelf::src::backend::lib::library::Catalogue is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:25: warning: Member cover_regx (variable) of class pyShelf::src::backend::lib::library::Catalogue is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:26: warning: Member html_regx (variable) of class pyShelf::src::backend::lib::library::Catalogue is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:27: warning: Member root_dir (variable) of class pyShelf::src::backend::lib::library::Catalogue is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:28: warning: Member book_folder (variable) of class pyShelf::src::backend::lib::library::Catalogue is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:31: warning: Member books (variable) of class pyShelf::src::backend::lib::library::Catalogue is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:32: warning: Member db_pointer (variable) of class pyShelf::src::backend::lib::library::Catalogue is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:33: warning: Member config (variable) of class pyShelf::src::backend::lib::library::Catalogue is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:140: warning: return type of member pyShelf.src.backend.lib.library.Catalogue.compare_shelf_current is not documented -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:115: warning: return type of member pyShelf.src.backend.lib.library.Catalogue.extract_content is not documented -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:122: warning: return type of member pyShelf.src.backend.lib.library.Catalogue.extract_cover_html is not documented -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:129: warning: return type of member pyShelf.src.backend.lib.library.Catalogue.extract_cover_image is not documented -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:89: warning: return type of member pyShelf.src.backend.lib.library.Catalogue.extract_metadata is not documented -/home/raelon/Projects/pyShelf/src/backend/tests/library_test.py:23: warning: return type of member pyShelf.src.backend.tests.library_test.Test_Catalogue.filter_books is not documented -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:158: warning: return type of member pyShelf.src.backend.lib.library.Catalogue.import_books is not documented -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:73: warning: return type of member pyShelf.src.backend.lib.library.Catalogue.process_book is not documented -/home/raelon/Projects/pyShelf/src/backend/lib/library.py:35: warning: return type of member pyShelf.src.backend.lib.library.Catalogue.scan_folder is not documented -/home/raelon/Projects/pyShelf/src/backend/tests/library_test.py:9: warning: Member __init__(self) (function) of class pyShelf::src::backend::tests::library_test::Test_Config is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/config.py:17: warning: Member book_path (variable) of class pyShelf::src::backend::lib::config::Config is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/config.py:18: warning: Member TITLE (variable) of class pyShelf::src::backend::lib::config::Config is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/config.py:19: warning: Member VERSION (variable) of class pyShelf::src::backend::lib::config::Config is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/config.py:21: warning: Member book_shelf (variable) of class pyShelf::src::backend::lib::config::Config is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/config.py:24: warning: Member catalogue_db (variable) of class pyShelf::src::backend::lib::config::Config is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/config.py:25: warning: Member user (variable) of class pyShelf::src::backend::lib::config::Config is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/config.py:26: warning: Member password (variable) of class pyShelf::src::backend::lib::config::Config is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/config.py:27: warning: Member file_array (variable) of class pyShelf::src::backend::lib::config::Config is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/config.py:31: warning: Member root (variable) of class pyShelf::src::backend::lib::config::Config is not documented. -/home/raelon/Projects/pyShelf/src/backend/lib/config.py:32: warning: Member auto_scan (variable) of class pyShelf::src::backend::lib::config::Config is not documented. -/home/raelon/Projects/pyShelf/src/backend/tests/library_test.py:13: warning: return type of member pyShelf.src.backend.tests.library_test.Test_Config.open_file is not documented -/home/raelon/Projects/pyShelf/src/backend/tests/library_test.py:32: warning: Member test_filter_books(self) (function) of class pyShelf::src::backend::tests::library_test::TestCatalogue is not documented. -/home/raelon/Projects/pyShelf/src/backend/tests/library_test.py:29: warning: Member root (variable) of class pyShelf::src::backend::tests::library_test::TestCatalogue is not documented. -/home/raelon/Projects/pyShelf/src/backend/tests/library_test.py:30: warning: Member config (variable) of class pyShelf::src::backend::tests::library_test::TestCatalogue is not documented. -/home/raelon/Projects/pyShelf/src/frontend/settings.py:16: warning: Member BASE_DIR (variable) of namespace pyShelf::src::frontend::settings is not documented. -/home/raelon/Projects/pyShelf/src/frontend/settings.py:23: warning: Member SECRET_KEY (variable) of namespace pyShelf::src::frontend::settings is not documented. -/home/raelon/Projects/pyShelf/src/frontend/settings.py:26: warning: Member DEBUG (variable) of namespace pyShelf::src::frontend::settings is not documented. -/home/raelon/Projects/pyShelf/src/frontend/settings.py:28: warning: Member ALLOWED_HOSTS (variable) of namespace pyShelf::src::frontend::settings is not documented. -/home/raelon/Projects/pyShelf/src/frontend/settings.py:33: warning: Member INSTALLED_APPS (variable) of namespace pyShelf::src::frontend::settings is not documented. -/home/raelon/Projects/pyShelf/src/frontend/settings.py:45: warning: Member MIDDLEWARE (variable) of namespace pyShelf::src::frontend::settings is not documented. -/home/raelon/Projects/pyShelf/src/frontend/settings.py:56: warning: Member INTERNAL_IPS (variable) of namespace pyShelf::src::frontend::settings is not documented. -/home/raelon/Projects/pyShelf/src/frontend/settings.py:62: warning: Member ROOT_URLCONF (variable) of namespace pyShelf::src::frontend::settings is not documented. -/home/raelon/Projects/pyShelf/src/frontend/settings.py:64: warning: Member TEMPLATES (variable) of namespace pyShelf::src::frontend::settings is not documented. -/home/raelon/Projects/pyShelf/src/frontend/settings.py:80: warning: Member WSGI_APPLICATION (variable) of namespace pyShelf::src::frontend::settings is not documented. -/home/raelon/Projects/pyShelf/src/frontend/settings.py:86: warning: Member DATABASES (variable) of namespace pyShelf::src::frontend::settings is not documented. -/home/raelon/Projects/pyShelf/src/frontend/settings.py:100: warning: Member AUTH_PASSWORD_VALIDATORS (variable) of namespace pyShelf::src::frontend::settings is not documented. -/home/raelon/Projects/pyShelf/src/frontend/settings.py:113: warning: Member LANGUAGE_CODE (variable) of namespace pyShelf::src::frontend::settings is not documented. -/home/raelon/Projects/pyShelf/src/frontend/settings.py:115: warning: Member TIME_ZONE (variable) of namespace pyShelf::src::frontend::settings is not documented. -/home/raelon/Projects/pyShelf/src/frontend/settings.py:117: warning: Member USE_I18N (variable) of namespace pyShelf::src::frontend::settings is not documented. -/home/raelon/Projects/pyShelf/src/frontend/settings.py:119: warning: Member USE_L10N (variable) of namespace pyShelf::src::frontend::settings is not documented. -/home/raelon/Projects/pyShelf/src/frontend/settings.py:121: warning: Member USE_TZ (variable) of namespace pyShelf::src::frontend::settings is not documented. -/home/raelon/Projects/pyShelf/src/frontend/settings.py:127: warning: Member STATIC_URL (variable) of namespace pyShelf::src::frontend::settings is not documented. -/home/raelon/Projects/pyShelf/src/frontend/settings.py:128: warning: Member STATIC_ROOT (variable) of namespace pyShelf::src::frontend::settings is not documented. -/home/raelon/Projects/pyShelf/src/frontend/settings.py:100: warning: parameters of member pyShelf.src.frontend.settings.AUTH_PASSWORD_VALIDATORS are not (all) documented -/home/raelon/Projects/pyShelf/src/frontend/settings.py:86: warning: parameters of member pyShelf.src.frontend.settings.DATABASES are not (all) documented -/home/raelon/Projects/pyShelf/src/frontend/settings.py:33: warning: parameters of member pyShelf.src.frontend.settings.INSTALLED_APPS are not (all) documented -/home/raelon/Projects/pyShelf/src/frontend/settings.py:56: warning: parameters of member pyShelf.src.frontend.settings.INTERNAL_IPS are not (all) documented -/home/raelon/Projects/pyShelf/src/frontend/settings.py:45: warning: parameters of member pyShelf.src.frontend.settings.MIDDLEWARE are not (all) documented -/home/raelon/Projects/pyShelf/src/frontend/settings.py:64: warning: parameters of member pyShelf.src.frontend.settings.TEMPLATES are not (all) documented -/home/raelon/Projects/pyShelf/src/frontend/urls.py:21: warning: Member urlpatterns (variable) of namespace pyShelf::src::frontend::urls is not documented. -/home/raelon/Projects/pyShelf/src/frontend/urls.py:21: warning: parameters of member pyShelf.src.frontend.urls.urlpatterns are not (all) documented -/home/raelon/Projects/pyShelf/src/frontend/wsgi.py:16: warning: Member application (variable) of namespace pyShelf::src::frontend::wsgi is not documented. -/home/raelon/Projects/pyShelf/src/interface/apps.py:5: warning: Member name (variable) of class pyShelf::src::interface::apps::InterfaceConfig is not documented. -/home/raelon/Projects/pyShelf/src/interface/migrations/0001_initial.py:8: warning: Member initial (variable) of class pyShelf::src::interface::migrations::0001_initial::Migration is not documented. -/home/raelon/Projects/pyShelf/src/interface/migrations/0001_initial.py:10: warning: Member dependencies (variable) of class pyShelf::src::interface::migrations::0001_initial::Migration is not documented. -/home/raelon/Projects/pyShelf/src/interface/migrations/0001_initial.py:12: warning: Member operations (variable) of class pyShelf::src::interface::migrations::0001_initial::Migration is not documented. -/home/raelon/Projects/pyShelf/src/interface/migrations/0001_initial.py:12: warning: parameters of member pyShelf.src.interface.migrations.0001_initial.Migration.operations are not (all) documented -/home/raelon/Projects/pyShelf/src/interface/models.py:21: warning: Member __str__(self) (function) of class pyShelf::src::interface::models::Books is not documented. -/home/raelon/Projects/pyShelf/src/interface/models.py:24: warning: Member title (variable) of class pyShelf::src::interface::models::Books is not documented. -/home/raelon/Projects/pyShelf/src/interface/models.py:25: warning: Member author (variable) of class pyShelf::src::interface::models::Books is not documented. -/home/raelon/Projects/pyShelf/src/interface/models.py:26: warning: Member categories (variable) of class pyShelf::src::interface::models::Books is not documented. -/home/raelon/Projects/pyShelf/src/interface/models.py:27: warning: Member cover (variable) of class pyShelf::src::interface::models::Books is not documented. -/home/raelon/Projects/pyShelf/src/interface/models.py:28: warning: Member pages (variable) of class pyShelf::src::interface::models::Books is not documented. -/home/raelon/Projects/pyShelf/src/interface/models.py:29: warning: Member progress (variable) of class pyShelf::src::interface::models::Books is not documented. -/home/raelon/Projects/pyShelf/src/interface/models.py:30: warning: Member file_name (variable) of class pyShelf::src::interface::models::Books is not documented. -/home/raelon/Projects/pyShelf/src/interface/models.py:32: warning: return type of member pyShelf.src.interface.models.Books.get_absolute_url is not documented -/home/raelon/Projects/pyShelf/src/interface/models.py:19: warning: Member db_table (variable) of class pyShelf::src::interface::models::Books::Meta is not documented. -/home/raelon/Projects/pyShelf/src/manage.py:7: warning: Member main() (function) of namespace pyShelf::src::manage is not documented.