Terminal based ebook server. Open source & Lightweight.
Having used Calibre for hosting my eBook collection in the past, I found myself frustrated having to install X on my server, or manage my library externally, Thus I have decided to spin up my own.
@@ -13,31 +13,20 @@ _Other solutions require you to have access to an X server to at the very least
Follow or influence development @
-## General Notes
-You may need to click import books a second time if your import fails on the first attempt
-## 0.7.0 Patch Notes.
+## 0.8.0 Patch Notes.
-# New Features
-
-* Administration System
-* PDF Support
-
-## Current Features
+## Features
* Recursive Scanning
-* [Django](https://www.djangoproject.com/) based frontend
-* Seach via author, title, & file name fields.
+* Fuzzy Search with optional specifiers
+ - tag:fiction
+ - author:Clancy
+ - title:"The Hunt for Red October"
+ - The Expanse
* Download System
-* Automated Collections
- * A work in progress, the collections are based on your folder structure.
-* User System
-* Per User Favorites
+* Automated Collections based on folder structure
* Expanded book information view
-* Websocket server
- * currently only responds to ping, and importBooks, more responders are planned.
-* Full Docker integration.
-* On Demand Importing
| Branch | Support | Feature set |
| --- | --- | --- |
@@ -54,78 +43,29 @@ You may need to click import books a second time if your import fails on the fir
## Installation & Support Information
# Installation
+ - curl -fsSL https://raw.githubusercontent.com/th3r00t/pyShelf/refs/heads/0.8.0--dev-zipapp/install.sh | sudo bash
-## Docker
-
-The official Docker image for pyShelf is [`pyshelf/pyshelf`](https://hub.docker.com/r/pyshelf/pyshelf). The easiest way to get pyShelf running is through `docker-compose`. An example docker-compose.yml is included in the repo.
-
-You'll need a `.env` file wich sets the `LOCAL_BOOK_DIR` variable, for example:
-
-```
-LOCAL_BOOK_DIR=/home/someone/books
-```
-
-The Docker image is still new, so there could still be some issues and missing features. Feel free to create a bug-issue when you encounter a bug. Development of the Docker image is discussed in https://github.com/th3r00t/pyShelf/pull/53 . Currently the database needs to be [PostgreSQL](https://www.postgresql.org/) with the account details shown in the example `docker-compose.yml`.
-
- Default User/Pass for web interface: pyshelf/pyshelf
-
-## Self Hosted
-This is targeted towards Network Administrators, and home enthusiasts whom I assume will know how to setup a [Django](https://www.djangoproject.com/) app, and a [PostgreSQL](https://www.postgresql.org/) server. For those unfamiliar with the required setup please use the included docker-compose.yml
-
-### Pre-req Dependencies
-
-* gcc
-* python3
-* pip
-* postgresql
-
-Once your database is ready very little is required to get the system up and running:
-
-From the main directory
-
-`pip install -r requirements.txt`
-
-`./configure`
-
-`cd src/ && daphne frontend.asgi:application` add -b 0.0.0.0 -p 8000 as required to specify which interface\'s and port to bind too
-
-As of 0.6.0 Django is being served up via Daphne, and the static files are served up via whitenoise.
-
-## Import Books
-The first step is to login, after logging in the button whill show your username, click on it once again, and a new menu will pop up with the option to logout, or import books.
## In Progress
### Organizational tools.
-- [x] Automated Collections
-- [ ] Manual Collections
-- [x] Books Removal
-- [ ] Access Restrictions
-- [ ] Metadata Manipulation
-- [ ] Ui\Ux Improvements
-- [ ] Others?
+- [x] Automated Collections $id{29fda2fe-4134-4905-8682-aab074acfdb2}
+- [ ] Manual Collections $id{c541949c-2e21-46c9-8089-a62fb6d043f6}
+- [ ] Books Removal $id{6b577a16-ac19-4f95-bf84-47938d966adf}
+- [ ] Access Restrictions $id{b6cf99a7-700b-46dd-9e75-5bc9fc7c4981}
+- [ ] Metadata Manipulation $id{35652d34-5d76-4496-92e5-67617a3226ad}
+- [ ] UiUx Improvements $id{9dd7c416-8919-40ed-a9a5-9503ad737e97}
+- [ ] Others? $id{da6e44b4-312f-43b2-883d-3355a70464e8}
### Improved cover image storage, and acquisition.
### OPDS Support
-### Support for other formats
-
-- [x] .mobi
-- [x] .pdf
-- [ ] .cbz
-- [ ] .zip (Zipped book folders, is this a new idea? (Consider storing your library folders zipped and retrieving a book on demand))
-
-## Future Goals
-
-### Terminal Backend for catalogue maintenance
## Development
* [`pre-commit`](https://pre-commit.com/)
_Before developing, run `pre-commit install` See the [documentation](https://pre-commit.com/) for more information._
-* ['Doxygen'](http://www.doxygen.nl/)
-_Any changes to source should be documented and have run doxygen doxygen.conf prior to commiting._
* ['sem-ver'](https://semver.org)
_Before advancing version numbers be sure to set PROJECT_NUMBER in doxygen.conf accordingly._
diff --git a/docs/Automated Collections.html b/docs/Automated Collections.html
deleted file mode 100644
index 0d61087..0000000
--- a/docs/Automated Collections.html
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-
-
-
-Automated Collections
-
-
-
-
-
-
-The Book Attachment System is used for attaching various filetypes to a book.
-This could be helpfull for storing code snippets or notes to technical documents.
-
-The Book Scraping System is a custom ebook scraper built from the ground up
-for pyShelf. It is designed to be a simple, easy to use, and easy to extend
-system for scraping ebooks from the internet. It is powered by BeutifulSoup.
-
-
-
-pyShelf features a recursive scraping algorithm that itterates over all
-sub-folders in your collection.
-
- Copyright (C) 2007 Free Software Foundation, Inc. https://fsf.org/
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
-
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
-
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
-
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
-
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
-
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
-
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
-
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
-
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
-
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
-Definitions.
- "This License" refers to version 3 of the GNU General Public License.
- "Copyright" also means copyright-like laws that apply to other kinds of
-
-
-
-works, such as semiconductor masks.
-
-
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
-
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
-
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
-
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
-
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
-
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
-
-
-
-Source Code.
- The "source code" for a work means the preferred form of the work
-
-
-
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
-
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
-
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
-
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
-
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
-
-
- The Corresponding Source for a work in source code form is that
-same work.
-
-
-
-
-Basic Permissions.
- All rights granted under this License are granted for the term of
-
-
-
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
-
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
-
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
-
-
-
-Protecting Users' Legal Rights From Anti-Circumvention Law.
- No covered work shall be deemed part of an effective technological
-
-
-
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
-
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
-
-
-
-Conveying Verbatim Copies.
- You may convey verbatim copies of the Program's source code as you
-
-
-
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
-
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
-
-
-
-Conveying Modified Source Versions.
- You may convey a work based on the Program, or the modifications to
-
-
-
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
-
-
-
-The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
-
-The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
-
-
- This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
-
-You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
-
-If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
- A compilation of a covered work with other separate and independent
-
-
-
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
-
-
-
-Conveying Non-Source Forms.
- You may convey a covered work in object code form under the terms
-
-
-
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
-
-
-
-Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
-
-Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
-
-Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
-
-Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
-
-Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
- A separable portion of the object code, whose source code is excluded
-
-
-
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
-
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
-
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
-
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
-
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
-
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
-
-
-
-Additional Terms.
- "Additional permissions" are terms that supplement the terms of this
-
-
-
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
-
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
-
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
-
-
-
-Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
-
-Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
-
-Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
-
-Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
-
-Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
-
-Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
-
-
-with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
- All other non-permissive additional terms are considered "further
-
-
-
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
-
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
-
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
-
-
-
-Termination.
- You may not propagate or modify a covered work except as expressly
-
-
-
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
-
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
-
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
-
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
-
-
-
-Acceptance Not Required for Having Copies.
- You are not required to accept this License in order to receive or
-
-
-
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
-
-
-
-Automatic Licensing of Downstream Recipients.
- Each time you convey a covered work, the recipient automatically
-
-
-
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
-
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
-
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
-
-
-
-Patents.
- A "contributor" is a copyright holder who authorizes use under this
-
-
-
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
-
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
-
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
-
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
-
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
-
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
-
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
-
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
-
-
-
-No Surrender of Others' Freedom.
- If conditions are imposed on you (whether by court order, agreement or
-
-
-
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
-
-
-
-Use with the GNU Affero General Public License.
- Notwithstanding any other provision of this License, you have
-
-
-
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
-
-
-
-Revised Versions of this License.
- The Free Software Foundation may publish revised and/or new versions of
-
-
-
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
-
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
-
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
-
-
-
-Disclaimer of Warranty.
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-
-
-
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-
-
-
-Limitation of Liability.
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-
-
-
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
-
-
-
-Interpretation of Sections 15 and 16.
- If the disclaimer of warranty and limitation of liability provided
-
-
-
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- 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 3 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, see <https://www.gnu.org/licenses/>.
-
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
-
- <program> Copyright (C) <year> <name of author>
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-
-
-The hypothetical commands show w and show c should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
-
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-https://www.gnu.org/licenses/.
-
-
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-https://www.gnu.org/licenses/why-not-lgpl.html.
-
- The Open Publication Distribution System (OPDS) Catalog format is a syndication
- format for electronic publications based on Atom and HTTP. OPDS Catalogs enable
- the aggregation, distribution, discovery, and acquisition of electronic
- publications. OPDS Catalogs use existing or emergent open standards and
- conventions, with a priority on simplicity.
-
-execute_scan(PRG_PATH, config) Book DB Insertion Point
-
-
-MakeCollections(PRG_PATH, config) Collection DB Insertion Point
-
-
-TODO Move collections insertion to run in tandem with book insertion as this is the last time we have all of the information in one place. #a34ad104
-
-
-Any changes to source should be documented and have run doxygen doxygen.conf prior to commiting.
-Before advancing version numbers be sure to set PROJECT_NUMBER in doxygen.conf accordingly.
-
- Please note that I use task, vimwiki, & taskwiki to manage my projects.
- Due to this Task entries marked via * [ ] task are postfixed with hex color
- data. Anyone who knows how to fix that I'm all ears :).
-
Return extracted metadata
-:NOTES: Retrieval of data has been problematic, some pdf's providing
-reliable titles that corespond with the actual, and others being
-nonsense.
-
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.
-
Insert a new book into the database.
-
-Parameters
-----------
-book: dict()
- Book object to insert.
-
-Returns
--------
-bool
- True on success False on failure
-
-
-
-Generated on Sat Mar 18 2023 00:12:14 for pyShelf Open Source Ebook Server by 1.9.6
-
-
-
diff --git a/docs/pyShelf/html/doc.png b/docs/pyShelf/html/doc.png
deleted file mode 100644
index 17edabf..0000000
Binary files a/docs/pyShelf/html/doc.png and /dev/null differ
diff --git a/docs/pyShelf/html/docd.png b/docs/pyShelf/html/docd.png
deleted file mode 100644
index d7c94fd..0000000
Binary files a/docs/pyShelf/html/docd.png and /dev/null differ
diff --git a/docs/pyShelf/html/doxygen.svg b/docs/pyShelf/html/doxygen.svg
deleted file mode 100644
index d42dad5..0000000
--- a/docs/pyShelf/html/doxygen.svg
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
diff --git a/docs/pyShelf/html/dynsections.js b/docs/pyShelf/html/dynsections.js
deleted file mode 100644
index 1f4cd14..0000000
--- a/docs/pyShelf/html/dynsections.js
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- @licstart The following is the entire license notice for the JavaScript code in this file.
-
- The MIT License (MIT)
-
- Copyright (C) 1997-2020 by Dimitri van Heesch
-
- 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.
-
- @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');
- $('table.directory tr').
- removeClass('odd').filter(':visible:odd').addClass('odd');
-}
-
-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
-
-
-
-
-
-
-
-
-
-Generated on Sat Mar 18 2023 00:12:14 for pyShelf Open Source Ebook Server by 1.9.6
-
-
-
diff --git a/docs/pyShelf/html/nav_f.png b/docs/pyShelf/html/nav_f.png
deleted file mode 100644
index 72a58a5..0000000
Binary files a/docs/pyShelf/html/nav_f.png and /dev/null differ
diff --git a/docs/pyShelf/html/nav_fd.png b/docs/pyShelf/html/nav_fd.png
deleted file mode 100644
index 032fbdd..0000000
Binary files a/docs/pyShelf/html/nav_fd.png and /dev/null differ
diff --git a/docs/pyShelf/html/nav_g.png b/docs/pyShelf/html/nav_g.png
deleted file mode 100644
index 2093a23..0000000
Binary files a/docs/pyShelf/html/nav_g.png and /dev/null differ
diff --git a/docs/pyShelf/html/nav_h.png b/docs/pyShelf/html/nav_h.png
deleted file mode 100644
index 33389b1..0000000
Binary files a/docs/pyShelf/html/nav_h.png and /dev/null differ
diff --git a/docs/pyShelf/html/nav_hd.png b/docs/pyShelf/html/nav_hd.png
deleted file mode 100644
index de80f18..0000000
Binary files a/docs/pyShelf/html/nav_hd.png and /dev/null differ
diff --git a/docs/pyShelf/html/open.png b/docs/pyShelf/html/open.png
deleted file mode 100644
index 30f75c7..0000000
Binary files a/docs/pyShelf/html/open.png and /dev/null differ
diff --git a/docs/pyShelf/html/splitbar.png b/docs/pyShelf/html/splitbar.png
deleted file mode 100644
index fe895f2..0000000
Binary files a/docs/pyShelf/html/splitbar.png and /dev/null differ
diff --git a/docs/pyShelf/html/splitbard.png b/docs/pyShelf/html/splitbard.png
deleted file mode 100644
index 8367416..0000000
Binary files a/docs/pyShelf/html/splitbard.png and /dev/null differ
diff --git a/docs/pyShelf/html/sync_off.png b/docs/pyShelf/html/sync_off.png
deleted file mode 100644
index 3b443fc..0000000
Binary files a/docs/pyShelf/html/sync_off.png and /dev/null differ
diff --git a/docs/pyShelf/html/sync_on.png b/docs/pyShelf/html/sync_on.png
deleted file mode 100644
index e08320f..0000000
Binary files a/docs/pyShelf/html/sync_on.png and /dev/null differ
diff --git a/docs/pyShelf/html/tab_a.png b/docs/pyShelf/html/tab_a.png
deleted file mode 100644
index 3b725c4..0000000
Binary files a/docs/pyShelf/html/tab_a.png and /dev/null differ
diff --git a/docs/pyShelf/html/tab_ad.png b/docs/pyShelf/html/tab_ad.png
deleted file mode 100644
index e34850a..0000000
Binary files a/docs/pyShelf/html/tab_ad.png and /dev/null differ
diff --git a/docs/pyShelf/html/tab_b.png b/docs/pyShelf/html/tab_b.png
deleted file mode 100644
index e2b4a86..0000000
Binary files a/docs/pyShelf/html/tab_b.png and /dev/null differ
diff --git a/docs/pyShelf/html/tab_bd.png b/docs/pyShelf/html/tab_bd.png
deleted file mode 100644
index 91c2524..0000000
Binary files a/docs/pyShelf/html/tab_bd.png and /dev/null differ
diff --git a/docs/pyShelf/html/tab_h.png b/docs/pyShelf/html/tab_h.png
deleted file mode 100644
index fd5cb70..0000000
Binary files a/docs/pyShelf/html/tab_h.png and /dev/null differ
diff --git a/docs/pyShelf/html/tab_hd.png b/docs/pyShelf/html/tab_hd.png
deleted file mode 100644
index 2489273..0000000
Binary files a/docs/pyShelf/html/tab_hd.png and /dev/null differ
diff --git a/docs/pyShelf/html/tab_s.png b/docs/pyShelf/html/tab_s.png
deleted file mode 100644
index ab478c9..0000000
Binary files a/docs/pyShelf/html/tab_s.png and /dev/null differ
diff --git a/docs/pyShelf/html/tab_sd.png b/docs/pyShelf/html/tab_sd.png
deleted file mode 100644
index 757a565..0000000
Binary files a/docs/pyShelf/html/tab_sd.png and /dev/null differ
diff --git a/docs/pyShelf/man/man3/DataHooks.3 b/docs/pyShelf/man/man3/DataHooks.3
deleted file mode 100644
index 819ce33..0000000
--- a/docs/pyShelf/man/man3/DataHooks.3
+++ /dev/null
@@ -1,27 +0,0 @@
-.TH "DataHooks" 3 "Sat Mar 18 2023" "Version 0.8.0" "pyShelf Open Source Ebook Server" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-DataHooks
-.SH SYNOPSIS
-.br
-.PP
-.SS "Classes"
-
-.in +1c
-.ti -1c
-.RI "class \fBBookInterface\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-
-.PP
-.nf
-pyShelf's frontend database hooks\&.
-.fi
-.PP
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&.
diff --git a/docs/pyShelf/man/man3/DataHooks_BookInterface.3 b/docs/pyShelf/man/man3/DataHooks_BookInterface.3
deleted file mode 100644
index 64dcd83..0000000
--- a/docs/pyShelf/man/man3/DataHooks_BookInterface.3
+++ /dev/null
@@ -1,37 +0,0 @@
-.TH "DataHooks.BookInterface" 3 "Sat Mar 18 2023" "Version 0.8.0" "pyShelf Open Source Ebook Server" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-DataHooks.BookInterface
-.SH SYNOPSIS
-.br
-.PP
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "\fBconfig\fP"
-.br
-.ti -1c
-.RI "\fBdb\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-
-.PP
-.nf
-Access point for book database\&.
-.fi
-.PP
-
-.SH "Member Data Documentation"
-.PP
-.SS "DataHooks\&.BookInterface\&.config"
-
-.SS "DataHooks\&.BookInterface\&.db"
-
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&.
diff --git a/docs/pyShelf/man/man3/FastAPIServer.3 b/docs/pyShelf/man/man3/FastAPIServer.3
deleted file mode 100644
index cc14024..0000000
--- a/docs/pyShelf/man/man3/FastAPIServer.3
+++ /dev/null
@@ -1,149 +0,0 @@
-.TH "FastAPIServer" 3 "Sat Mar 18 2023" "Version 0.8.0" "pyShelf Open Source Ebook Server" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-FastAPIServer
-.SH SYNOPSIS
-.br
-.PP
-.SS "Classes"
-
-.in +1c
-.ti -1c
-.RI "class \fBFastAPIServer\fP"
-.br
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "str \fBbase64decode\fP (string)"
-.br
-.ti -1c
-.RI "str \fBsummarize\fP (string)"
-.br
-.ti -1c
-.RI "str \fBconvertDateTime\fP (datetime timestamp)"
-.br
-.ti -1c
-.RI "dumps \fBbooks_tojson\fP (obj)"
-.br
-.ti -1c
-.RI "dumps \fBbook_tojson\fP (book)"
-.br
-.ti -1c
-.RI "dumps \fBcollections_tojson\fP (collection)"
-.br
-.in -1c
-.SS "Variables"
-
-.in +1c
-.ti -1c
-.RI "FastAPI \fBapp\fP = FastAPI()"
-.br
-.ti -1c
-.RI "Jinja2Templates \fBtemplates\fP = Jinja2Templates(directory='src/frontend/templates')"
-.br
-.ti -1c
-.RI "list \fBorigins\fP"
-.br
-.ti -1c
-.RI "\fBallow_origins\fP"
-.br
-.ti -1c
-.RI "\fBallow_credentials\fP"
-.br
-.ti -1c
-.RI "\fBallow_methods\fP"
-.br
-.ti -1c
-.RI "\fBallow_headers\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-
-.PP
-.nf
-pyShelf's main frontend library\&.
-.fi
-.PP
-
-.SH "Function Documentation"
-.PP
-.SS " str FastAPIServer\&.base64decode ( string)"
-
-.PP
-.nf
-Decode a base64 string\&.
-.fi
-.PP
-
-.SS " dumps FastAPIServer\&.book_tojson ( book)"
-
-.PP
-.nf
-Convert a book object to a json\&.
-.fi
-.PP
-
-.SS " dumps FastAPIServer\&.books_tojson ( obj)"
-
-.PP
-.nf
-Convert an object to a dictionary\&.
-.fi
-.PP
-
-.SS " dumps FastAPIServer\&.collections_tojson ( collection)"
-
-.PP
-.nf
-Convert a collections object to json\&.
-.fi
-.PP
-
-.SS " str FastAPIServer\&.convertDateTime (datetime timestamp)"
-
-.PP
-.nf
-Convert a datetime object to a string\&.
-.fi
-.PP
-
-.SS " str FastAPIServer\&.summarize ( string)"
-
-.PP
-.nf
-Summarize a string\&.
-.fi
-.PP
-
-.SH "Variable Documentation"
-.PP
-.SS "FastAPIServer\&.allow_credentials"
-
-.SS "FastAPIServer\&.allow_headers"
-
-.SS "FastAPIServer\&.allow_methods"
-
-.SS "FastAPIServer\&.allow_origins"
-
-.SS "FastAPI FastAPIServer\&.app = FastAPI()"
-
-.SS "list FastAPIServer\&.origins"
-\fBInitial value:\fP.PP
-.nf
-1 = [
-2 "http://localhost",
-3 "http://localhost:8081",
-4 "http://localhost:8080",
-5 "*"
-6 ]
-.fi
-
-.SS "Jinja2Templates FastAPIServer\&.templates = Jinja2Templates(directory='src/frontend/templates')"
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&.
diff --git a/docs/pyShelf/man/man3/FastAPIServer_FastAPIServer.3 b/docs/pyShelf/man/man3/FastAPIServer_FastAPIServer.3
deleted file mode 100644
index 14035fa..0000000
--- a/docs/pyShelf/man/man3/FastAPIServer_FastAPIServer.3
+++ /dev/null
@@ -1,114 +0,0 @@
-.TH "FastAPIServer.FastAPIServer" 3 "Sat Mar 18 2023" "Version 0.8.0" "pyShelf Open Source Ebook Server" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-FastAPIServer.FastAPIServer
-.SH SYNOPSIS
-.br
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "def \fB__init__\fP (self, config)"
-.br
-.ti -1c
-.RI "def \fBcompile_static_files\fP (self)"
-.br
-.ti -1c
-.RI "None \fBuse_route_names_as_operation_ids\fP (self, FastAPI app)"
-.br
-.ti -1c
-.RI "def \fBindex\fP (Request request, int skip=0, int limit=10)"
-.br
-.ti -1c
-.RI "def \fBbooks\fP (Request request, int skip=0, int limit=10, collection=None)"
-.br
-.ti -1c
-.RI "def \fBbook\fP (Request request, int book_id)"
-.br
-.ti -1c
-.RI "def \fBcollections\fP (Request request)"
-.br
-.ti -1c
-.RI "def \fBrun\fP (self)"
-.br
-.in -1c
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "\fBconfig\fP"
-.br
-.ti -1c
-.RI "\fBfe_config\fP"
-.br
-.ti -1c
-.RI "\fBfe_server\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-
-.PP
-.nf
-Entry point for FastAPI server\&.
-.fi
-.PP
-
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "def FastAPIServer\&.FastAPIServer\&.__init__ ( self, config)"
-
-.PP
-.nf
-Initialize FastAPIServer object parameters\&.
-.fi
-.PP
-
-.SH "Member Function Documentation"
-.PP
-.SS "def FastAPIServer\&.FastAPIServer\&.book (Request request, int book_id)"
-
-.SS "def FastAPIServer\&.FastAPIServer\&.books (Request request, int skip = \fC0\fP, int limit = \fC10\fP, collection = \fCNone\fP)"
-
-.SS "def FastAPIServer\&.FastAPIServer\&.collections (Request request)"
-
-.SS "def FastAPIServer\&.FastAPIServer\&.compile_static_files ( self)"
-
-.PP
-.nf
-Compile static files for web frontend\&.
-.fi
-.PP
-
-.SS "def FastAPIServer\&.FastAPIServer\&.index (Request request, int skip = \fC0\fP, int limit = \fC10\fP)"
-
-.SS "def FastAPIServer\&.FastAPIServer\&.run ( self)"
-
-.PP
-.nf
-Front end server entrypoint\&.
-.fi
-.PP
-
-.SS " None FastAPIServer\&.FastAPIServer\&.use_route_names_as_operation_ids ( self, FastAPI app)"
-
-.PP
-.nf
-Use route name as operation id\&.
-.fi
-.PP
-
-.SH "Member Data Documentation"
-.PP
-.SS "FastAPIServer\&.FastAPIServer\&.config"
-
-.SS "FastAPIServer\&.FastAPIServer\&.fe_config"
-
-.SS "FastAPIServer\&.FastAPIServer\&.fe_server"
-
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&.
diff --git a/docs/pyShelf/man/man3/objects.3 b/docs/pyShelf/man/man3/objects.3
deleted file mode 100644
index 7282962..0000000
--- a/docs/pyShelf/man/man3/objects.3
+++ /dev/null
@@ -1,27 +0,0 @@
-.TH "objects" 3 "Sat Mar 18 2023" "Version 0.8.0" "pyShelf Open Source Ebook Server" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-objects
-.SH SYNOPSIS
-.br
-.PP
-.SS "Classes"
-
-.in +1c
-.ti -1c
-.RI "class \fBJSInterface\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-
-.PP
-.nf
-pyShelf's Frontend Objects\&.
-.fi
-.PP
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&.
diff --git a/docs/pyShelf/man/man3/objects_JSInterface.3 b/docs/pyShelf/man/man3/objects_JSInterface.3
deleted file mode 100644
index 5cb1805..0000000
--- a/docs/pyShelf/man/man3/objects_JSInterface.3
+++ /dev/null
@@ -1,51 +0,0 @@
-.TH "objects.JSInterface" 3 "Sat Mar 18 2023" "Version 0.8.0" "pyShelf Open Source Ebook Server" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-objects.JSInterface
-.SH SYNOPSIS
-.br
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "def \fB__init__\fP (self, Config config)"
-.br
-.ti -1c
-.RI "def \fBinstall\fP (self)"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-
-.PP
-.nf
-A class to interface with the JavaScript side of pyShelf\&.
-.fi
-.PP
-
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "def objects\&.JSInterface\&.__init__ ( self, Config config)"
-
-.PP
-.nf
-Initialize the JSInterface object\&.
-.fi
-.PP
-
-.SH "Member Function Documentation"
-.PP
-.SS "def objects\&.JSInterface\&.install ( self)"
-
-.PP
-.nf
-Install the JavaScript dependencies\&.
-.fi
-.PP
-
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&.
diff --git a/docs/pyShelf/man/man3/src_backend_lib_api_hooks_DuckDuckGo.3 b/docs/pyShelf/man/man3/src_backend_lib_api_hooks_DuckDuckGo.3
deleted file mode 100644
index 5b1ca50..0000000
--- a/docs/pyShelf/man/man3/src_backend_lib_api_hooks_DuckDuckGo.3
+++ /dev/null
@@ -1,68 +0,0 @@
-.TH "src.backend.lib.api_hooks.DuckDuckGo" 3 "Sat Mar 18 2023" "Version 0.8.0" "pyShelf Open Source Ebook Server" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-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
-.ti -1c
-.RI "def \fBdescription_result\fP (self, query)"
-.br
-.in -1c
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "\fBurl\fP"
-.br
-.ti -1c
-.RI "\fBimageurl\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-
-.PP
-.nf
-duckduckgo related searching
-.fi
-.PP
-
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "def src\&.backend\&.lib\&.api_hooks\&.DuckDuckGo\&.__init__ ( self)"
-
-.SH "Member Function Documentation"
-.PP
-.SS "def src\&.backend\&.lib\&.api_hooks\&.DuckDuckGo\&.description_result ( self, query)"
-
-.SS "def 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 "Member Data Documentation"
-.PP
-.SS "src\&.backend\&.lib\&.api_hooks\&.DuckDuckGo\&.imageurl"
-
-.SS "src\&.backend\&.lib\&.api_hooks\&.DuckDuckGo\&.url"
-
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&.
diff --git a/docs/pyShelf/man/man3/src_backend_lib_config.3 b/docs/pyShelf/man/man3/src_backend_lib_config.3
deleted file mode 100644
index 44a12a7..0000000
--- a/docs/pyShelf/man/man3/src_backend_lib_config.3
+++ /dev/null
@@ -1,27 +0,0 @@
-.TH "src.backend.lib.config" 3 "Sat Mar 18 2023" "Version 0.8.0" "pyShelf Open Source Ebook Server" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-src.backend.lib.config
-.SH SYNOPSIS
-.br
-.PP
-.SS "Classes"
-
-.in +1c
-.ti -1c
-.RI "class \fBConfig\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-
-.PP
-.nf
-Pyshelf's Configuration Object\&.
-.fi
-.PP
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&.
diff --git a/docs/pyShelf/man/man3/src_backend_lib_config_Config.3 b/docs/pyShelf/man/man3/src_backend_lib_config_Config.3
deleted file mode 100644
index ed4be25..0000000
--- a/docs/pyShelf/man/man3/src_backend_lib_config_Config.3
+++ /dev/null
@@ -1,231 +0,0 @@
-.TH "src.backend.lib.config.Config" 3 "Sat Mar 18 2023" "Version 0.8.0" "pyShelf Open Source Ebook Server" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-src.backend.lib.config.Config
-.SH SYNOPSIS
-.br
-.PP
-.PP
-Inherited by \fBsrc\&.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 \fBinit_config\fP (self)"
-.br
-.ti -1c
-.RI "def \fBget_logger\fP (self)"
-.br
-.ti -1c
-.RI "def \fBopen_file\fP (self)"
-.br
-.in -1c
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "\fBroot\fP"
-.br
-.ti -1c
-.RI "\fBconfig_structure\fP"
-.br
-.ti -1c
-.RI "\fBlogger\fP"
-.br
-.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 "\fBdb_host\fP"
-.br
-.ti -1c
-.RI "\fBdb_port\fP"
-.br
-.ti -1c
-.RI "\fBfile_array\fP"
-.br
-.ti -1c
-.RI "\fBauto_scan\fP"
-.br
-.ti -1c
-.RI "\fBallowed_hosts\fP"
-.br
-.ti -1c
-.RI "\fBdb_engine\fP"
-.br
-.ti -1c
-.RI "\fBdb_user\fP"
-.br
-.ti -1c
-.RI "\fBdb_pass\fP"
-.br
-.ti -1c
-.RI "\fBbuild_mode\fP"
-.br
-.in -1c
-.SS "Protected Attributes"
-
-.in +1c
-.ti -1c
-.RI "\fB_fp\fP"
-.br
-.ti -1c
-.RI "\fB_cp\fP"
-.br
-.ti -1c
-.RI "\fB_data\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-
-.PP
-.nf
-Main System Configuration\&.
-
->>> config = Config(root)
-
-Parameters
-----------
-root : File system root of program
-
-Attributes
-----------
-root : str() stores root\&.
-config_structure : dict() Default Configuration Structure\&.
-_fp : str() file pointer to main configuration\&.
-_cp : Path() object of configuration file\&.
-_data : dict() parsed json of _fp\&.
-logger : holds logging configuration from get_logger()\&.
-book_path : directory pointer to main books folder\&.
-TITLE : str() Program title\&.
-VERSION : str() Program version\&.
-TITLE : str() Combines TITLE & VERSION\&.
-book_shelf : Deprecation TODO: Is this still in use?
-catalogue_db : str() Database Name\&.
-user : str() Database user name\&.
-password : str() Database password\&.
-db_host : str() Database host\&.
-db_port : int() Database port\&.
-file_array : list() copy of book_shelf TODO: See book_shelf
-auto_scan: bool() Do we auto scan on launch?
-allowed_hosts : list() Allowed host list\&.
-db_engine : str() Desired database engine type\&.
-db_user : str() Database user name\&. Duplication Warning\&.
-db_pass : str() Database password\&. Duplication Warning\&.
-build_mode : str() Production | Development mode\&.
-
-Methods
--------
-get_logger : Setup loguru\&.
-open_file : Parse configuration file\&.
-
-.fi
-.PP
-
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "def src\&.backend\&.lib\&.config\&.Config\&.__init__ ( self, root)"
-
-.PP
-.nf
-Initialize main configuration options\&.
-.fi
-.PP
-
-.PP
-Reimplemented in \fBsrc\&.backend\&.tests\&.library_test\&.Test_Config\fP\&.
-.SH "Member Function Documentation"
-.PP
-.SS "def src\&.backend\&.lib\&.config\&.Config\&.get_logger ( self)"
-
-.PP
-.nf
-Instantiate logging system\&.
-.fi
-.PP
-
-.SS "def src\&.backend\&.lib\&.config\&.Config\&.init_config ( self)"
-
-.SS "def src\&.backend\&.lib\&.config\&.Config\&.open_file ( self)"
-
-.PP
-.nf
-Open config\&.json and reads in configuration options\&.
-.fi
-.PP
-
-.PP
-Reimplemented in \fBsrc\&.backend\&.tests\&.library_test\&.Test_Config\fP\&.
-.SH "Member Data Documentation"
-.PP
-.SS "src\&.backend\&.lib\&.config\&.Config\&._cp\fC [protected]\fP"
-
-.SS "src\&.backend\&.lib\&.config\&.Config\&._data\fC [protected]\fP"
-
-.SS "src\&.backend\&.lib\&.config\&.Config\&._fp\fC [protected]\fP"
-
-.SS "src\&.backend\&.lib\&.config\&.Config\&.allowed_hosts"
-
-.SS "src\&.backend\&.lib\&.config\&.Config\&.auto_scan"
-
-.SS "src\&.backend\&.lib\&.config\&.Config\&.book_path"
-
-.SS "src\&.backend\&.lib\&.config\&.Config\&.book_shelf"
-
-.SS "src\&.backend\&.lib\&.config\&.Config\&.build_mode"
-
-.SS "src\&.backend\&.lib\&.config\&.Config\&.catalogue_db"
-
-.SS "src\&.backend\&.lib\&.config\&.Config\&.config_structure"
-
-.SS "src\&.backend\&.lib\&.config\&.Config\&.db_engine"
-
-.SS "src\&.backend\&.lib\&.config\&.Config\&.db_host"
-
-.SS "src\&.backend\&.lib\&.config\&.Config\&.db_pass"
-
-.SS "src\&.backend\&.lib\&.config\&.Config\&.db_port"
-
-.SS "src\&.backend\&.lib\&.config\&.Config\&.db_user"
-
-.SS "src\&.backend\&.lib\&.config\&.Config\&.file_array"
-
-.SS "src\&.backend\&.lib\&.config\&.Config\&.logger"
-
-.SS "src\&.backend\&.lib\&.config\&.Config\&.password"
-
-.SS "src\&.backend\&.lib\&.config\&.Config\&.root"
-
-.SS "src\&.backend\&.lib\&.config\&.Config\&.TITLE"
-
-.SS "src\&.backend\&.lib\&.config\&.Config\&.user"
-
-.SS "src\&.backend\&.lib\&.config\&.Config\&.VERSION"
-
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&.
diff --git a/docs/pyShelf/man/man3/src_backend_lib_library_Catalogue.3 b/docs/pyShelf/man/man3/src_backend_lib_library_Catalogue.3
deleted file mode 100644
index 044a637..0000000
--- a/docs/pyShelf/man/man3/src_backend_lib_library_Catalogue.3
+++ /dev/null
@@ -1,263 +0,0 @@
-.TH "src.backend.lib.library.Catalogue" 3 "Sat Mar 18 2023" "Version 0.8.0" "pyShelf Open Source Ebook Server" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-src.backend.lib.library.Catalogue
-.SH SYNOPSIS
-.br
-.PP
-.PP
-Inherited by \fBsrc\&.backend\&.lib\&.overide\&.ACatalogue\fP, and \fBsrc\&.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 \fBprocess_by_filetype\fP (self, book)"
-.br
-.ti -1c
-.RI "def \fBextract_metadata_epub\fP (self, book)"
-.br
-.ti -1c
-.RI "def \fBextract_metadata_pdf\fP (self, book)"
-.br
-.ti -1c
-.RI "def \fBextract_metadata_mobi\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, **kwargs)"
-.br
-.in -1c
-.SS "Static Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "def \fBprocess_epub\fP (book)"
-.br
-.ti -1c
-.RI "def \fBstripTags\fP (source)"
-.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 "\fBtitle_sanitization_regx\fP"
-.br
-.ti -1c
-.RI "\fBtitle_sanitization_lvl2_regx\fP"
-.br
-.ti -1c
-.RI "\fBtitle_sanitization_dirs_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
-
-.PP
-.nf
-Decodes book metadata for storage
-
-.fi
-.PP
-
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "def src\&.backend\&.lib\&.library\&.Catalogue\&.__init__ ( self, config)"
-
-.SH "Member Function Documentation"
-.PP
-.SS "def 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 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 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 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 src\&.backend\&.lib\&.library\&.Catalogue\&.extract_metadata_epub ( 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 src\&.backend\&.lib\&.library\&.Catalogue\&.extract_metadata_mobi ( self, book)"
-
-.SS "def src\&.backend\&.lib\&.library\&.Catalogue\&.extract_metadata_pdf ( self, book)"
-
-.PP
-.nf
-Return extracted metadata
-:NOTES: Retrieval of data has been problematic, some pdf's providing
-reliable titles that corespond with the actual, and others being
-nonsense\&.
-
-.fi
-.PP
-
-.SS "def src\&.backend\&.lib\&.library\&.Catalogue\&.filter_books ( self)"
-
-.PP
-.nf
-Calls scan_folder and filters out book files\&.
-
-:returns self\&._book_list_expanded: json string containing
-all book metadata
-
-.fi
-.PP
-
-.PP
-Reimplemented in \fBsrc\&.backend\&.tests\&.library_test\&.Test_Catalogue\fP\&.
-.SS "def src\&.backend\&.lib\&.library\&.Catalogue\&.import_books ( self, list = \fCNone\fP, ** kwargs)"
-
-.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
-
-.PP
-Reimplemented in \fBsrc\&.backend\&.lib\&.overide\&.ACatalogue\fP\&.
-.SS "def src\&.backend\&.lib\&.library\&.Catalogue\&.process_by_filetype ( self, book)"
-
-.PP
-.nf
-Determine books filetype and process\&.
-.fi
-.PP
-
-.SS "def src\&.backend\&.lib\&.library\&.Catalogue\&.process_epub ( book)\fC [static]\fP"
-
-.PP
-.nf
-Return dictionary of epub file contents
-.fi
-.PP
-
-.SS "def src\&.backend\&.lib\&.library\&.Catalogue\&.scan_folder ( self, _path = \fCNone\fP)"
-
-.PP
-.nf
-Scan folder by _path, allows recurisive scanning
-
-.fi
-.PP
-
-.PP
-Reimplemented in \fBsrc\&.backend\&.lib\&.overide\&.ACatalogue\fP\&.
-.SS "def src\&.backend\&.lib\&.library\&.Catalogue\&.stripTags ( source)\fC [static]\fP"
-
-.SH "Member Data Documentation"
-.PP
-.SS "src\&.backend\&.lib\&.library\&.Catalogue\&.book_folder"
-
-.SS "src\&.backend\&.lib\&.library\&.Catalogue\&.books"
-
-.SS "src\&.backend\&.lib\&.library\&.Catalogue\&.config"
-
-.SS "src\&.backend\&.lib\&.library\&.Catalogue\&.cover_regx"
-
-.SS "src\&.backend\&.lib\&.library\&.Catalogue\&.db_pointer"
-
-.SS "src\&.backend\&.lib\&.library\&.Catalogue\&.file_list"
-
-.SS "src\&.backend\&.lib\&.library\&.Catalogue\&.html_regx"
-
-.SS "src\&.backend\&.lib\&.library\&.Catalogue\&.opf_regx"
-
-.SS "src\&.backend\&.lib\&.library\&.Catalogue\&.root_dir"
-
-.SS "src\&.backend\&.lib\&.library\&.Catalogue\&.title_sanitization_dirs_regx"
-
-.SS "src\&.backend\&.lib\&.library\&.Catalogue\&.title_sanitization_lvl2_regx"
-
-.SS "src\&.backend\&.lib\&.library\&.Catalogue\&.title_sanitization_regx"
-
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&.
diff --git a/docs/pyShelf/man/man3/src_backend_lib_models_Base.3 b/docs/pyShelf/man/man3/src_backend_lib_models_Base.3
deleted file mode 100644
index 2fd17d4..0000000
--- a/docs/pyShelf/man/man3/src_backend_lib_models_Base.3
+++ /dev/null
@@ -1,25 +0,0 @@
-.TH "src.backend.lib.models.Base" 3 "Sat Mar 18 2023" "Version 0.8.0" "pyShelf Open Source Ebook Server" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-src.backend.lib.models.Base
-.SH SYNOPSIS
-.br
-.PP
-.PP
-Inherits DeclarativeBase\&.
-.PP
-Inherited by \fBsrc\&.backend\&.lib\&.models\&.Book\fP, and \fBsrc\&.backend\&.lib\&.models\&.Collection\fP\&.
-.SH "Detailed Description"
-.PP
-
-.PP
-.nf
-Base class for all models\&.
-.fi
-.PP
-
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&.
diff --git a/docs/pyShelf/man/man3/src_backend_lib_models_Book.3 b/docs/pyShelf/man/man3/src_backend_lib_models_Book.3
deleted file mode 100644
index 4c473fd..0000000
--- a/docs/pyShelf/man/man3/src_backend_lib_models_Book.3
+++ /dev/null
@@ -1,99 +0,0 @@
-.TH "src.backend.lib.models.Book" 3 "Sat Mar 18 2023" "Version 0.8.0" "pyShelf Open Source Ebook Server" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-src.backend.lib.models.Book
-.SH SYNOPSIS
-.br
-.PP
-.PP
-Inherits \fBsrc\&.backend\&.lib\&.models\&.Base\fP\&.
-.SS "Static Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "Mapped \fBbook_id\fP = mapped_column(primary_key=True, nullable=False)"
-.br
-.ti -1c
-.RI "Mapped \fBtitle\fP [str]"
-.br
-.ti -1c
-.RI "Mapped \fBauthor\fP [Optional[str]]"
-.br
-.ti -1c
-.RI "Mapped \fBcategories\fP [Optional[str]]"
-.br
-.ti -1c
-.RI "Mapped \fBcover\fP [Optional[bytes]]"
-.br
-.ti -1c
-.RI "Mapped \fBpages\fP [Optional[int]]"
-.br
-.ti -1c
-.RI "Mapped \fBprogress\fP [Optional[float]]"
-.br
-.ti -1c
-.RI "Mapped \fBfile_name\fP [str]"
-.br
-.ti -1c
-.RI "Mapped \fBdescription\fP [Optional[str]]"
-.br
-.ti -1c
-.RI "Mapped \fBdate\fP [timestamp]"
-.br
-.ti -1c
-.RI "Mapped \fBrights\fP [Optional[str]]"
-.br
-.ti -1c
-.RI "Mapped \fBtags\fP [Optional[str]]"
-.br
-.ti -1c
-.RI "Mapped \fBidentifier\fP [Optional[str]]"
-.br
-.ti -1c
-.RI "Mapped \fBpublisher\fP [Optional[str]]"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-
-.PP
-.nf
-Book model\&.
-.fi
-.PP
-
-.SH "Member Data Documentation"
-.PP
-.SS "Mapped src\&.backend\&.lib\&.models\&.Book\&.author [Optional[str]]\fC [static]\fP"
-
-.SS "Mapped src\&.backend\&.lib\&.models\&.Book\&.book_id = mapped_column(primary_key=True, nullable=False)\fC [static]\fP"
-
-.SS "Mapped src\&.backend\&.lib\&.models\&.Book\&.categories [Optional[str]]\fC [static]\fP"
-
-.SS "Mapped src\&.backend\&.lib\&.models\&.Book\&.cover [Optional[bytes]]\fC [static]\fP"
-
-.SS "Mapped src\&.backend\&.lib\&.models\&.Book\&.date [timestamp]\fC [static]\fP"
-
-.SS "Mapped src\&.backend\&.lib\&.models\&.Book\&.description [Optional[str]]\fC [static]\fP"
-
-.SS "Mapped src\&.backend\&.lib\&.models\&.Book\&.file_name [str]\fC [static]\fP"
-
-.SS "Mapped src\&.backend\&.lib\&.models\&.Book\&.identifier [Optional[str]]\fC [static]\fP"
-
-.SS "Mapped src\&.backend\&.lib\&.models\&.Book\&.pages [Optional[int]]\fC [static]\fP"
-
-.SS "Mapped src\&.backend\&.lib\&.models\&.Book\&.progress [Optional[float]]\fC [static]\fP"
-
-.SS "Mapped src\&.backend\&.lib\&.models\&.Book\&.publisher [Optional[str]]\fC [static]\fP"
-
-.SS "Mapped src\&.backend\&.lib\&.models\&.Book\&.rights [Optional[str]]\fC [static]\fP"
-
-.SS "Mapped src\&.backend\&.lib\&.models\&.Book\&.tags [Optional[str]]\fC [static]\fP"
-
-.SS "Mapped src\&.backend\&.lib\&.models\&.Book\&.title [str]\fC [static]\fP"
-
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&.
diff --git a/docs/pyShelf/man/man3/src_backend_lib_models_Collection.3 b/docs/pyShelf/man/man3/src_backend_lib_models_Collection.3
deleted file mode 100644
index 57bd0ea..0000000
--- a/docs/pyShelf/man/man3/src_backend_lib_models_Collection.3
+++ /dev/null
@@ -1,44 +0,0 @@
-.TH "src.backend.lib.models.Collection" 3 "Sat Mar 18 2023" "Version 0.8.0" "pyShelf Open Source Ebook Server" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-src.backend.lib.models.Collection
-.SH SYNOPSIS
-.br
-.PP
-.PP
-Inherits \fBsrc\&.backend\&.lib\&.models\&.Base\fP\&.
-.SS "Static Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "Mapped \fBcollection\fP [str]"
-.br
-.ti -1c
-.RI "Mapped \fBbook_id\fP = mapped_column(ForeignKey(Book\&.book_id))"
-.br
-.ti -1c
-.RI "Mapped \fBcollection_id\fP = mapped_column(primary_key=True)"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-
-.PP
-.nf
-Collection model\&.
-.fi
-.PP
-
-.SH "Member Data Documentation"
-.PP
-.SS "Mapped src\&.backend\&.lib\&.models\&.Collection\&.book_id = mapped_column(ForeignKey(Book\&.book_id))\fC [static]\fP"
-
-.SS "Mapped src\&.backend\&.lib\&.models\&.Collection\&.collection [str]\fC [static]\fP"
-
-.SS "Mapped src\&.backend\&.lib\&.models\&.Collection\&.collection_id = mapped_column(primary_key=True)\fC [static]\fP"
-
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&.
diff --git a/docs/pyShelf/man/man3/src_backend_lib_overide_ACatalogue.3 b/docs/pyShelf/man/man3/src_backend_lib_overide_ACatalogue.3
deleted file mode 100644
index 013ce15..0000000
--- a/docs/pyShelf/man/man3/src_backend_lib_overide_ACatalogue.3
+++ /dev/null
@@ -1,68 +0,0 @@
-.TH "src.backend.lib.overide.ACatalogue" 3 "Sat Mar 18 2023" "Version 0.8.0" "pyShelf Open Source Ebook Server" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-src.backend.lib.overide.ACatalogue
-.SH SYNOPSIS
-.br
-.PP
-.PP
-Inherits \fBsrc\&.backend\&.lib\&.library\&.Catalogue\fP\&.
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "def \fB__init__\fP (self)"
-.br
-.ti -1c
-.RI "def \fBscan_folder\fP (self, _path=None)"
-.br
-.ti -1c
-.RI "def \fBimport_books\fP (self, **kwargs)"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-
-.PP
-.nf
-Aynchronous overide of library\&.Catalogue,
-: TODO : Complete or discard this overide
-
-.fi
-.PP
-
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "def src\&.backend\&.lib\&.overide\&.ACatalogue\&.__init__ ( self)"
-
-.PP
-Reimplemented from \fBsrc\&.backend\&.lib\&.library\&.Catalogue\fP\&.
-.SH "Member Function Documentation"
-.PP
-.SS "def src\&.backend\&.lib\&.overide\&.ACatalogue\&.import_books ( self, ** kwargs)"
-
-.PP
-.nf
-Async overide of import_books
-
-.fi
-.PP
-
-.PP
-Reimplemented from \fBsrc\&.backend\&.lib\&.library\&.Catalogue\fP\&.
-.SS "def src\&.backend\&.lib\&.overide\&.ACatalogue\&.scan_folder ( self, _path = \fCNone\fP)"
-
-.PP
-.nf
-Scan folder by _path, allows recurisive scanning
-
-.fi
-.PP
-
-.PP
-Reimplemented from \fBsrc\&.backend\&.lib\&.library\&.Catalogue\fP\&.
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&.
diff --git a/docs/pyShelf/man/man3/src_backend_lib_pyShelf_Admin.3 b/docs/pyShelf/man/man3/src_backend_lib_pyShelf_Admin.3
deleted file mode 100644
index b0228ea..0000000
--- a/docs/pyShelf/man/man3/src_backend_lib_pyShelf_Admin.3
+++ /dev/null
@@ -1,48 +0,0 @@
-.TH "src.backend.lib.pyShelf.Admin" 3 "Sat Mar 18 2023" "Version 0.8.0" "pyShelf Open Source Ebook Server" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-src.backend.lib.pyShelf.Admin
-.SH SYNOPSIS
-.br
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "def \fB__init__\fP (self, root)"
-.br
-.ti -1c
-.RI "def \fBcreatesuperuser\fP (self)"
-.br
-.in -1c
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "\fBconfig\fP"
-.br
-.ti -1c
-.RI "\fBdb\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "def src\&.backend\&.lib\&.pyShelf\&.Admin\&.__init__ ( self, root)"
-
-.SH "Member Function Documentation"
-.PP
-.SS "def src\&.backend\&.lib\&.pyShelf\&.Admin\&.createsuperuser ( self)"
-
-.SH "Member Data Documentation"
-.PP
-.SS "src\&.backend\&.lib\&.pyShelf\&.Admin\&.config"
-
-.SS "src\&.backend\&.lib\&.pyShelf\&.Admin\&.db"
-
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&.
diff --git a/docs/pyShelf/man/man3/src_backend_lib_pyShelf_InitFiles.3 b/docs/pyShelf/man/man3/src_backend_lib_pyShelf_InitFiles.3
deleted file mode 100644
index a129f8f..0000000
--- a/docs/pyShelf/man/man3/src_backend_lib_pyShelf_InitFiles.3
+++ /dev/null
@@ -1,46 +0,0 @@
-.TH "src.backend.lib.pyShelf.InitFiles" 3 "Sat Mar 18 2023" "Version 0.8.0" "pyShelf Open Source Ebook Server" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-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 "Constructor & Destructor Documentation"
-.PP
-.SS "def src\&.backend\&.lib\&.pyShelf\&.InitFiles\&.__init__ ( self, file_array)"
-
-.SH "Member Function Documentation"
-.PP
-.SS "def 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/pyShelf/man/man3/src_backend_lib_pyShelf_Server.3 b/docs/pyShelf/man/man3/src_backend_lib_pyShelf_Server.3
deleted file mode 100644
index e583892..0000000
--- a/docs/pyShelf/man/man3/src_backend_lib_pyShelf_Server.3
+++ /dev/null
@@ -1,97 +0,0 @@
-.TH "src.backend.lib.pyShelf.Server" 3 "Sat Mar 18 2023" "Version 0.8.0" "pyShelf Open Source Ebook Server" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-src.backend.lib.pyShelf.Server
-.SH SYNOPSIS
-.br
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "def \fB__init__\fP (self, root)"
-.br
-.ti -1c
-.RI "def \fB__aexit__\fP (self, *args, **kwargs)"
-.br
-.ti -1c
-.RI "def \fBinitialize_server\fP (self)"
-.br
-.ti -1c
-.RI "def \fBrunImport\fP (self)"
-.br
-.ti -1c
-.RI "def \fBsocketio\fP (self, websocket, path)"
-.br
-.ti -1c
-.RI "def \fBpong\fP (self)"
-.br
-.ti -1c
-.RI "def \fBstart\fP (self)"
-.br
-.in -1c
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "\fBroot\fP"
-.br
-.ti -1c
-.RI "\fBhost\fP"
-.br
-.ti -1c
-.RI "\fBconfig\fP"
-.br
-.ti -1c
-.RI "\fBloop\fP"
-.br
-.ti -1c
-.RI "\fBserve\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-
-.PP
-.nf
-Main Server Container
-:TODO: Document this
-
-.fi
-.PP
-
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "def src\&.backend\&.lib\&.pyShelf\&.Server\&.__init__ ( self, root)"
-
-.SH "Member Function Documentation"
-.PP
-.SS "def src\&.backend\&.lib\&.pyShelf\&.Server\&.__aexit__ ( self, * args, ** kwargs)"
-
-.SS "def src\&.backend\&.lib\&.pyShelf\&.Server\&.initialize_server ( self)"
-
-.SS "def src\&.backend\&.lib\&.pyShelf\&.Server\&.pong ( self)"
-
-.SS "def src\&.backend\&.lib\&.pyShelf\&.Server\&.runImport ( self)"
-
-.SS "def src\&.backend\&.lib\&.pyShelf\&.Server\&.socketio ( self, websocket, path)"
-
-.SS "def src\&.backend\&.lib\&.pyShelf\&.Server\&.start ( self)"
-
-.SH "Member Data Documentation"
-.PP
-.SS "src\&.backend\&.lib\&.pyShelf\&.Server\&.config"
-
-.SS "src\&.backend\&.lib\&.pyShelf\&.Server\&.host"
-
-.SS "src\&.backend\&.lib\&.pyShelf\&.Server\&.loop"
-
-.SS "src\&.backend\&.lib\&.pyShelf\&.Server\&.root"
-
-.SS "src\&.backend\&.lib\&.pyShelf\&.Server\&.serve"
-
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&.
diff --git a/docs/pyShelf/man/man3/src_backend_lib_storage.3 b/docs/pyShelf/man/man3/src_backend_lib_storage.3
deleted file mode 100644
index 32a7410..0000000
--- a/docs/pyShelf/man/man3/src_backend_lib_storage.3
+++ /dev/null
@@ -1,27 +0,0 @@
-.TH "src.backend.lib.storage" 3 "Sat Mar 18 2023" "Version 0.8.0" "pyShelf Open Source Ebook Server" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-src.backend.lib.storage
-.SH SYNOPSIS
-.br
-.PP
-.SS "Classes"
-
-.in +1c
-.ti -1c
-.RI "class \fBStorage\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-
-.PP
-.nf
-Pyshelf's Main Storage Class\&.
-.fi
-.PP
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&.
diff --git a/docs/pyShelf/man/man3/src_backend_lib_storage_Storage.3 b/docs/pyShelf/man/man3/src_backend_lib_storage_Storage.3
deleted file mode 100644
index fa439a6..0000000
--- a/docs/pyShelf/man/man3/src_backend_lib_storage_Storage.3
+++ /dev/null
@@ -1,238 +0,0 @@
-.TH "src.backend.lib.storage.Storage" 3 "Sat Mar 18 2023" "Version 0.8.0" "pyShelf Open Source Ebook Server" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-src.backend.lib.storage.Storage
-.SH SYNOPSIS
-.br
-.PP
-.SS "Public Member Functions"
-
-.in +1c
-.ti -1c
-.RI "def \fB__init__\fP (self, config)"
-.br
-.ti -1c
-.RI "def \fBget_connection_string\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 \fBmake_collections\fP (self)"
-.br
-.ti -1c
-.RI "def \fBget_books\fP (self, collection=None, skip=None, limit=None)"
-.br
-.ti -1c
-.RI "def \fBget_book\fP (self, book_id)"
-.br
-.ti -1c
-.RI "def \fBget_collections\fP (self)"
-.br
-.in -1c
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "\fBconfig\fP"
-.br
-.ti -1c
-.RI "\fBsql\fP"
-.br
-.ti -1c
-.RI "\fBuser\fP"
-.br
-.ti -1c
-.RI "\fBpassword\fP"
-.br
-.ti -1c
-.RI "\fBdb_host\fP"
-.br
-.ti -1c
-.RI "\fBdb_port\fP"
-.br
-.ti -1c
-.RI "\fBengine\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-
-.PP
-.nf
-Create a new Storage object\&.
-
->>> db = Storage(config)
-
-Parameters
-----------
-config : Config()
- Main program configuration\&.
-
-Attributes
-----------
-config : Stores configuration
-sql : Database Name
-user : Database User Name
-password : Database Password
-db_host : Database Host
-db_port : Database Port
-engine : sqlalchemy\&.create_engine(url, executor, kw)
-
-.fi
-.PP
-
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "def src\&.backend\&.lib\&.storage\&.Storage\&.__init__ ( self, config)"
-
-.PP
-.nf
-Initialize storage object\&.
-.fi
-.PP
-
-.SH "Member Function Documentation"
-.PP
-.SS "def src\&.backend\&.lib\&.storage\&.Storage\&.book_paths_list ( self)"
-
-.PP
-.nf
-Get file paths from database for comparison to system files\&.
-
-Returns
--------
-_result : ScalarResult Object
-
-.fi
-.PP
-
-.SS "def src\&.backend\&.lib\&.storage\&.Storage\&.create_tables ( self)"
-
-.PP
-.nf
-Create table structure\&.
-.fi
-.PP
-
-.SS "def src\&.backend\&.lib\&.storage\&.Storage\&.get_book ( self, book_id)"
-
-.PP
-.nf
-Get book from database\&.
-
-Parameters
-----------
-book_id : int
- Book ID to filter by\&.
-
-Returns
--------
-_result : ScalarResult Object
-
-.fi
-.PP
-
-.SS "def src\&.backend\&.lib\&.storage\&.Storage\&.get_books ( self, collection = \fCNone\fP, skip = \fCNone\fP, limit = \fCNone\fP)"
-
-.PP
-.nf
-Get books from database\&.
-
-Parameters
-----------
-collection : str
- Collection to filter by\&.
-
-Returns
--------
-_result : ScalarResult Object
-
-.fi
-.PP
-
-.SS "def src\&.backend\&.lib\&.storage\&.Storage\&.get_collections ( self)"
-
-.PP
-.nf
-Get collections from database\&.
-
-Returns
--------
-_result : ScalarResult Object
-
-.fi
-.PP
-
-.SS "def src\&.backend\&.lib\&.storage\&.Storage\&.get_connection_string ( self)"
-
-.PP
-.nf
-Get connection string\&.
-
-Engine type references config\&.json:DB_ENGINE\&.
-
-Returns
--------
-str : sqlalchemy Connection String
-
-.fi
-.PP
-
-.SS "def src\&.backend\&.lib\&.storage\&.Storage\&.insert_book ( self, book)"
-
-.PP
-.nf
-Insert a new book into the database\&.
-
-Parameters
-----------
-book: dict()
- Book object to insert\&.
-
-Returns
--------
-bool
- True on success False on failure
-
-.fi
-.PP
-
-.SS "def src\&.backend\&.lib\&.storage\&.Storage\&.make_collections ( self)"
-
-.PP
-.nf
-Parse book path's to determine common folder structure\&.
-
-Stores collections based on shared paths\&.
-
-.fi
-.PP
-
-.SH "Member Data Documentation"
-.PP
-.SS "src\&.backend\&.lib\&.storage\&.Storage\&.config"
-
-.SS "src\&.backend\&.lib\&.storage\&.Storage\&.db_host"
-
-.SS "src\&.backend\&.lib\&.storage\&.Storage\&.db_port"
-
-.SS "src\&.backend\&.lib\&.storage\&.Storage\&.engine"
-
-.SS "src\&.backend\&.lib\&.storage\&.Storage\&.password"
-
-.SS "src\&.backend\&.lib\&.storage\&.Storage\&.sql"
-
-.SS "src\&.backend\&.lib\&.storage\&.Storage\&.user"
-
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&.
diff --git a/docs/pyShelf/man/man3/src_backend_tests_config_test_TestConfig.3 b/docs/pyShelf/man/man3/src_backend_tests_config_test_TestConfig.3
deleted file mode 100644
index 7b2e608..0000000
--- a/docs/pyShelf/man/man3/src_backend_tests_config_test_TestConfig.3
+++ /dev/null
@@ -1,46 +0,0 @@
-.TH "src.backend.tests.config_test.TestConfig" 3 "Sat Mar 18 2023" "Version 0.8.0" "pyShelf Open Source Ebook Server" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-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 = \fBConfig\fP(os\&.path\&.abspath(os\&.path\&.curdir))"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-.SH "Member Function Documentation"
-.PP
-.SS "def src\&.backend\&.tests\&.config_test\&.TestConfig\&.test_book_dir ( self)"
-
-.SS "def src\&.backend\&.tests\&.config_test\&.TestConfig\&.test_title ( self)"
-
-.SS "def src\&.backend\&.tests\&.config_test\&.TestConfig\&.test_version ( self)"
-
-.SH "Member Data Documentation"
-.PP
-.SS "\fBConfig\fP src\&.backend\&.tests\&.config_test\&.TestConfig\&.config = \fBConfig\fP(os\&.path\&.abspath(os\&.path\&.curdir))\fC [static]\fP"
-
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&.
diff --git a/docs/pyShelf/man/man3/src_backend_tests_library_test_TestCatalogue.3 b/docs/pyShelf/man/man3/src_backend_tests_library_test_TestCatalogue.3
deleted file mode 100644
index 2f70127..0000000
--- a/docs/pyShelf/man/man3/src_backend_tests_library_test_TestCatalogue.3
+++ /dev/null
@@ -1,41 +0,0 @@
-.TH "src.backend.tests.library_test.TestCatalogue" 3 "Sat Mar 18 2023" "Version 0.8.0" "pyShelf Open Source Ebook Server" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-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 "os \fBroot\fP = os\&.path\&.abspath(os\&.path\&.curdir)"
-.br
-.ti -1c
-.RI "\fBTest_Config\fP \fBconfig\fP = \fBTest_Config\fP()"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-.SH "Member Function Documentation"
-.PP
-.SS "def src\&.backend\&.tests\&.library_test\&.TestCatalogue\&.test_filter_books ( self)"
-
-.SH "Member Data Documentation"
-.PP
-.SS "\fBTest_Config\fP src\&.backend\&.tests\&.library_test\&.TestCatalogue\&.config = \fBTest_Config\fP()\fC [static]\fP"
-
-.SS "os src\&.backend\&.tests\&.library_test\&.TestCatalogue\&.root = os\&.path\&.abspath(os\&.path\&.curdir)\fC [static]\fP"
-
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&.
diff --git a/docs/pyShelf/man/man3/src_backend_tests_library_test_Test_Catalogue.3 b/docs/pyShelf/man/man3/src_backend_tests_library_test_Test_Catalogue.3
deleted file mode 100644
index 0711761..0000000
--- a/docs/pyShelf/man/man3/src_backend_tests_library_test_Test_Catalogue.3
+++ /dev/null
@@ -1,59 +0,0 @@
-.TH "src.backend.tests.library_test.Test_Catalogue" 3 "Sat Mar 18 2023" "Version 0.8.0" "pyShelf Open Source Ebook Server" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-src.backend.tests.library_test.Test_Catalogue
-.SH SYNOPSIS
-.br
-.PP
-.PP
-Inherits \fBsrc\&.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
-.in -1c
-.SS "Public Attributes"
-
-.in +1c
-.ti -1c
-.RI "\fBbook_shelf\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "def src\&.backend\&.tests\&.library_test\&.Test_Catalogue\&.__init__ ( self)"
-
-.PP
-Reimplemented from \fBsrc\&.backend\&.lib\&.library\&.Catalogue\fP\&.
-.SH "Member Function Documentation"
-.PP
-.SS "def src\&.backend\&.tests\&.library_test\&.Test_Catalogue\&.filter_books ( self)"
-
-.PP
-.nf
-Calls scan_folder and filters out book files\&.
-
-:returns self\&._book_list_expanded: json string containing
-all book metadata
-
-.fi
-.PP
-
-.PP
-Reimplemented from \fBsrc\&.backend\&.lib\&.library\&.Catalogue\fP\&.
-.SH "Member Data Documentation"
-.PP
-.SS "src\&.backend\&.tests\&.library_test\&.Test_Catalogue\&.book_shelf"
-
-
-.SH "Author"
-.PP
-Generated automatically by Doxygen for pyShelf Open Source Ebook Server from the source code\&.
diff --git a/docs/pyShelf/man/man3/src_backend_tests_library_test_Test_Config.3 b/docs/pyShelf/man/man3/src_backend_tests_library_test_Test_Config.3
deleted file mode 100644
index 011d5a1..0000000
--- a/docs/pyShelf/man/man3/src_backend_tests_library_test_Test_Config.3
+++ /dev/null
@@ -1,50 +0,0 @@
-.TH "src.backend.tests.library_test.Test_Config" 3 "Sat Mar 18 2023" "Version 0.8.0" "pyShelf Open Source Ebook Server" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-src.backend.tests.library_test.Test_Config
-.SH SYNOPSIS
-.br
-.PP
-.PP
-Inherits \fBsrc\&.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
-.SH "Detailed Description"
-.PP
-.SH "Constructor & Destructor Documentation"
-.PP
-.SS "def src\&.backend\&.tests\&.library_test\&.Test_Config\&.__init__ ( self)"
-
-.PP
-.nf
-Initialize main configuration options\&.
-.fi
-.PP
-
-.PP
-Reimplemented from \fBsrc\&.backend\&.lib\&.config\&.Config\fP\&.
-.SH "Member Function Documentation"
-.PP
-.SS "def src\&.backend\&.tests\&.library_test\&.Test_Config\&.open_file ( self, root = \fC'config\&.json'\fP)"
-
-.PP
-.nf
-Open config\&.json and reads in configuration options\&.
-.fi
-.PP
-
-.PP
-Reimplemented from \fBsrc\&.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/style.css b/docs/style.css
deleted file mode 100644
index 43d6b57..0000000
--- a/docs/style.css
+++ /dev/null
@@ -1,187 +0,0 @@
-body {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;;
- margin: 2em 4em 2em 4em;
- font-size: 120%;
- line-height: 130%;
-}
-
-h1, h2, h3, h4, h5, h6 {
- font-weight: bold;
- line-height:100%;
- margin-top: 1.5em;
- margin-bottom: 0.5em;
-}
-
-h1 {font-size: 2em; color: #000000;}
-h2 {font-size: 1.8em; color: #404040;}
-h3 {font-size: 1.6em; color: #707070;}
-h4 {font-size: 1.4em; color: #909090;}
-h5 {font-size: 1.2em; color: #989898;}
-h6 {font-size: 1em; color: #9c9c9c;}
-
-p, pre, blockquote, table, ul, ol, dl {
- margin-top: 1em;
- margin-bottom: 1em;
-}
-
-ul ul, ul ol, ol ol, ol ul {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-li { margin: 0.3em auto; }
-
-ul {
- margin-left: 2em;
- padding-left: 0;
-}
-
-dt { font-weight: bold; }
-
-img { border: none; }
-
-pre {
- border-left: 5px solid #dcdcdc;
- background-color: #f5f5f5;
- padding-left: 1em;
- font-family: Monaco, "Courier New", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", monospace;
- font-size: 0.8em;
- border-radius: 6px;
-}
-
-p > a {
- color: white;
- text-decoration: none;
- font-size: 0.7em;
- padding: 3px 6px;
- border-radius: 3px;
- background-color: #1e90ff;
- text-transform: uppercase;
- font-weight: bold;
-}
-
-p > a:hover {
- color: #dcdcdc;
- background-color: #484848;
-}
-
-li > a {
- color: #1e90ff;
- font-weight: bold;
- text-decoration: none;
-}
-
-li > a:hover { color: #ff4500; }
-
-blockquote {
- color: #686868;
- font-size: 0.8em;
- line-height: 120%;
- padding: 0.8em;
- border-left: 5px solid #dcdcdc;
-}
-
-th, td {
- border: 1px solid #ccc;
- padding: 0.3em;
-}
-
-th { background-color: #f0f0f0; }
-
-hr {
- border: none;
- border-top: 1px solid #ccc;
- width: 100%;
-}
-
-del {
- text-decoration: line-through;
- color: #777777;
-}
-
-.toc li { list-style-type: none; }
-
-.todo {
- font-weight: bold;
- background-color: #ff4500 ;
- color: white;
- font-size: 0.8em;
- padding: 3px 6px;
- border-radius: 3px;
-}
-
-.justleft { text-align: left; }
-.justright { text-align: right; }
-.justcenter { text-align: center; }
-
-.center {
- margin-left: auto;
- margin-right: auto;
-}
-
-.tag {
- background-color: #eeeeee;
- font-family: monospace;
- padding: 2px;
-}
-
-.header a {
- text-decoration: none;
- color: inherit;
-}
-
-/* classes for items of todo lists */
-
-.rejected {
- /* list-style: none; */
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAMAAAAMCGV4AAAACXBIWXMAAADFAAAAxQEdzbqoAAAAB3RJTUUH4QgEFhAtuWgv9wAAAPZQTFRFmpqam5iYnJaWnJeXnpSUn5OTopCQpoqKpouLp4iIqIiIrYCAt3V1vW1tv2xsmZmZmpeXnpKS/x4e/x8f/yAg/yIi/yQk/yUl/yYm/ygo/ykp/yws/zAw/zIy/zMz/zQ0/zU1/zY2/zw8/0BA/0ZG/0pK/1FR/1JS/1NT/1RU/1VV/1ZW/1dX/1pa/15e/19f/2Zm/2lp/21t/25u/3R0/3p6/4CA/4GB/4SE/4iI/46O/4+P/52d/6am/6ur/66u/7Oz/7S0/7e3/87O/9fX/9zc/93d/+Dg/+vr/+3t/+/v//Dw//Ly//X1//f3//n5//z8////gzaKowAAAA90Uk5T/Pz8/Pz8/Pz8/Pz8/f39ppQKWQAAAAFiS0dEEnu8bAAAAACuSURBVAhbPY9ZF4FQFEZPSKbIMmWep4gMGTKLkIv6/3/GPbfF97b3w17rA0kQOPgvAeHW6uJ6+5h7HqLdwowgOzejXRXBdx6UdSru216xuOMBHHNU0clTzeSUA6EhF8V8kqroluMiU6HKcuf4phGPr1o2q9kYZWwNq1qfRRmTaXpqsyjj17KkWCxKBUBgXWueHIyiAIg18gsse4KHkLF5IKIY10WQgv7fOy4ST34BRiopZ8WLNrgAAAAASUVORK5CYII=);
- background-repeat: no-repeat;
- background-position: 0 .2em;
- padding-left: 1.5em;
-}
-.done0 {
- /* list-style: none; */
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAxQAAAMUBHc26qAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAA7SURBVCiR7dMxEgAgCANBI3yVRzF5KxNbW6wsuH7LQ2YKQK1mkswBVERYF5Os3UV3gwd/jF2SkXy66gAZkxS6BniubAAAAABJRU5ErkJggg==);
- background-repeat: no-repeat;
- background-position: 0 .2em;
- padding-left: 1.5em;
-}
-.done1 {
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAxQAAAMUBHc26qAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABtSURBVCiR1ZO7DYAwDER9BDmTeZQMFXmUbGYpOjrEryA0wOvO8itOslFrJYAug5BMM4BeSkmjsrv3aVTa8p48Xw1JSkSsWVUFwD05IqS1tmYzk5zzae9jnVVVzGyXb8sALjse+euRkEzu/uirFomVIdDGOLjuAAAAAElFTkSuQmCC);
- background-repeat: no-repeat;
- background-position: 0 .15em;
- padding-left: 1.5em;
-}
-.done2 {
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAxQAAAMUBHc26qAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAB1SURBVCiRzdO5DcAgDAVQGxjAYgTvxlDIu1FTIRYAp8qlFISkSH7l5kk+ZIwxKiI2mIyqWoeILYRgZ7GINDOLjnmF3VqklKCUMgTee2DmM661Qs55iI3Zm/1u5h9sm4ig9z4ERHTFzLyd4G4+nFlVrYg8+qoF/c0kdpeMsmcAAAAASUVORK5CYII=);
- background-repeat: no-repeat;
- background-position: 0 .15em;
- padding-left: 1.5em;
-}
-.done3 {
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAxQAAAMUBHc26qAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABoSURBVCiR7dOxDcAgDATA/0DtUdiKoZC3YhLkHjkVKF3idJHiztKfvrHZWnOSE8Fx95RJzlprimJVnXktvXeY2S0SEZRSAAAbmxnGGKH2I5T+8VfxPhIReQSuuY3XyYWa3T2p6quvOgGrvSFGlewuUAAAAABJRU5ErkJggg==);
- background-repeat: no-repeat;
- background-position: 0 .15em;
- padding-left: 1.5em;
-}
-.done4 {
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAQCAYAAAAbBi9cAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAzgAAAM4BlP6ToAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAIISURBVDiNnZQ9SFtRFMd/773kpTaGJoQk1im4VDpWQcTNODhkFBcVTCNCF0NWyeDiIIiCm82QoIMIUkHUxcFBg1SEQoZszSat6cdTn1qNue92CMbEr9Sey+XC/Z/zu+f8h6ukUil3sVg0+M+4cFxk42/jH2wAqqqKSCSiPQdwcHHAnDHH9s/tN1h8V28ETdP+eU8fT9Nt62ancYdIPvJNtsu87bmjrJlrTDVM4RROJs1JrHPrD4Bar7A6cpc54iKOaTdJXCUI2UMVrQZ0Js7YPN18ECKkYNQcJe/OE/4dZsw7VqNXQMvHy3QZXQypQ6ycrtwDjf8aJ+PNEDSCzLpn7+m2pD8ZKHlKarYhy6XjEoCYGcN95qansQeA3fNdki+SaJZGTMQIOoL3W/Z89rxv+tokubNajlvk/vm+LFpF2XnUKZHI0I+QrI7Dw0OZTqdzUkpsM7mZTyfy5OPGyw1tK7AFSvmB/Ks8w8YwbUYbe6/3QEKv0vugfxWPnMLJun+d/kI/WLdizpNjMbAIKrhMF4OuwadBALqqs+RfInwUvuNi+fBd+wjogfogAFVRmffO02q01mZZ0HHdgXIzdz0QQLPezIQygX6llxNKKgOFARYCC49CqhoHIUTlss/Vx2phlYwjw8j1CAlfAiwQiJpiy7o1VHnsG5FISkoJu7Q/2YmmaV+i0ei7v38L2CBguSi5AAAAAElFTkSuQmCC);
- background-repeat: no-repeat;
- background-position: 0 .15em;
- padding-left: 1.5em;
-}
-
-code {
- font-family: Monaco, "Courier New", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", monospace;
- -webkit-border-radius: 1px;
- -moz-border-radius: 1px;
- border-radius: 1px;
- -moz-background-clip: padding;
- -webkit-background-clip: padding-box;
- background-clip: padding-box;
- padding: 0px 3px;
- display: inline-block;
- color: #52595d;
- border: 1px solid #ccc;
- background-color: #f9f9f9;
-}
diff --git a/docs/warn.log b/docs/warn.log
deleted file mode 100644
index 7357701..0000000
--- a/docs/warn.log
+++ /dev/null
@@ -1,205 +0,0 @@
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/pyShelf.py:102: warning: Compound src::backend::lib::pyShelf::Admin is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/tests/config_test.py:6: warning: Compound src::backend::tests::config_test::TestConfig is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/tests/library_test.py:28: warning: Compound src::backend::tests::library_test::TestCatalogue is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/tests/library_test.py:19: warning: Compound src::backend::tests::library_test::Test_Catalogue is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/tests/library_test.py:8: warning: Compound src::backend::tests::library_test::Test_Config is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/DataHooks.py:10: warning: Member config (variable) of class DataHooks::BookInterface is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/DataHooks.py:11: warning: Member db (variable) of class DataHooks::BookInterface is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:20: warning: Member app (variable) of namespace FastAPIServer is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:21: warning: Member templates (variable) of namespace FastAPIServer is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:22: warning: Member origins (variable) of namespace FastAPIServer is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:30: warning: Member allow_origins (variable) of namespace FastAPIServer is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:31: warning: Member allow_credentials (variable) of namespace FastAPIServer is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:32: warning: Member allow_methods (variable) of namespace FastAPIServer is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:33: warning: Member allow_headers (variable) of namespace FastAPIServer is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:38: warning: parameters of member FastAPIServer.base64decode are not documented
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:38: warning: return type of member FastAPIServer.base64decode is not documented
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:90: warning: parameters of member FastAPIServer.book_tojson are not documented
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:90: warning: return type of member FastAPIServer.book_tojson is not documented
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:62: warning: parameters of member FastAPIServer.books_tojson are not documented
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:62: warning: return type of member FastAPIServer.books_tojson is not documented
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:110: warning: parameters of member FastAPIServer.collections_tojson are not documented
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:110: warning: return type of member FastAPIServer.collections_tojson is not documented
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:57: warning: parameters of member FastAPIServer.convertDateTime are not documented
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:57: warning: return type of member FastAPIServer.convertDateTime is not documented
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:47: warning: parameters of member FastAPIServer.summarize are not documented
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:47: warning: return type of member FastAPIServer.summarize is not documented
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:160: warning: Member index(Request request, int skip=0, int limit=10) (function) of class FastAPIServer::FastAPIServer is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:168: warning: Member books(Request request, int skip=0, int limit=10, collection=None) (function) of class FastAPIServer::FastAPIServer is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:177: warning: Member book(Request request, int book_id) (function) of class FastAPIServer::FastAPIServer is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:184: warning: Member collections(Request request) (function) of class FastAPIServer::FastAPIServer is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:131: warning: Member config (variable) of class FastAPIServer::FastAPIServer is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:135: warning: Member fe_config (variable) of class FastAPIServer::FastAPIServer is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:137: warning: Member fe_server (variable) of class FastAPIServer::FastAPIServer is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:130: warning: parameters of member FastAPIServer.FastAPIServer.__init__ are not documented
-:1: warning: parameters of member FastAPIServer.FastAPIServer.book are not documented
-:1: warning: parameters of member FastAPIServer.FastAPIServer.books are not documented
-:1: warning: parameters of member FastAPIServer.FastAPIServer.collections are not documented
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:142: warning: return type of member FastAPIServer.FastAPIServer.compile_static_files is not documented
-:1: warning: parameters of member FastAPIServer.FastAPIServer.index are not documented
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:192: warning: return type of member FastAPIServer.FastAPIServer.run is not documented
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:154: warning: parameters of member FastAPIServer.FastAPIServer.use_route_names_as_operation_ids are not documented
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/FastAPIServer.py:154: warning: return type of member FastAPIServer.FastAPIServer.use_route_names_as_operation_ids is not documented
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/objects.py:13: warning: parameters of member objects.JSInterface.__init__ are not documented
-/home/th3r00t/.local/builds/pyShelf/src/frontend/lib/objects.py:18: warning: return type of member objects.JSInterface.install is not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/api_hooks.py:10: warning: Member __init__(self) (function) of class src::backend::lib::api_hooks::DuckDuckGo is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/api_hooks.py:40: warning: Member description_result(self, query) (function) of class src::backend::lib::api_hooks::DuckDuckGo is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/api_hooks.py:11: warning: Member url (variable) of class src::backend::lib::api_hooks::DuckDuckGo is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/api_hooks.py:12: warning: Member imageurl (variable) of class src::backend::lib::api_hooks::DuckDuckGo is not documented.
-<__init__>:1: warning: parameters of member src.backend.lib.api_hooks.DuckDuckGo.__init__ are not documented
-:1: warning: parameters of member src.backend.lib.api_hooks.DuckDuckGo.description_result are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/api_hooks.py:15: warning: parameters of member src.backend.lib.api_hooks.DuckDuckGo.image_result are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/api_hooks.py:15: warning: return type of member src.backend.lib.api_hooks.DuckDuckGo.image_result is not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/config.py:101: warning: Member init_config(self) (function) of class src::backend::lib::config::Config is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/config.py:51: warning: Member root (variable) of class src::backend::lib::config::Config is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/config.py:52: warning: Member config_structure (variable) of class src::backend::lib::config::Config is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/config.py:81: warning: Member logger (variable) of class src::backend::lib::config::Config is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/config.py:82: warning: Member book_path (variable) of class src::backend::lib::config::Config is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/config.py:83: warning: Member TITLE (variable) of class src::backend::lib::config::Config is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/config.py:84: warning: Member VERSION (variable) of class src::backend::lib::config::Config is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/config.py:86: warning: Member book_shelf (variable) of class src::backend::lib::config::Config is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/config.py:87: warning: Member catalogue_db (variable) of class src::backend::lib::config::Config is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/config.py:88: warning: Member user (variable) of class src::backend::lib::config::Config is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/config.py:89: warning: Member password (variable) of class src::backend::lib::config::Config is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/config.py:90: warning: Member db_host (variable) of class src::backend::lib::config::Config is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/config.py:91: warning: Member db_port (variable) of class src::backend::lib::config::Config is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/config.py:92: warning: Member file_array (variable) of class src::backend::lib::config::Config is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/config.py:93: warning: Member auto_scan (variable) of class src::backend::lib::config::Config is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/config.py:94: warning: Member allowed_hosts (variable) of class src::backend::lib::config::Config is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/config.py:96: warning: Member db_engine (variable) of class src::backend::lib::config::Config is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/config.py:97: warning: Member db_user (variable) of class src::backend::lib::config::Config is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/config.py:98: warning: Member db_pass (variable) of class src::backend::lib::config::Config is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/config.py:99: warning: Member build_mode (variable) of class src::backend::lib::config::Config is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/config.py:72: warning: Member _fp (variable) of class src::backend::lib::config::Config is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/config.py:74: warning: Member _cp (variable) of class src::backend::lib::config::Config is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/config.py:77: warning: Member _data (variable) of class src::backend::lib::config::Config is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/config.py:50: warning: parameters of member src.backend.lib.config.Config.__init__ are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/config.py:111: warning: return type of member src.backend.lib.config.Config.get_logger is not documented
-:1: warning: parameters of member src.backend.lib.config.Config.init_config are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/config.py:120: warning: return type of member src.backend.lib.config.Config.open_file is not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:19: warning: Member __init__(self, config) (function) of class src::backend::lib::library::Catalogue is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:225: warning: Member extract_metadata_mobi(self, book) (function) of class src::backend::lib::library::Catalogue is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:221: warning: Member stripTags(source) (function) of class src::backend::lib::library::Catalogue is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:20: warning: Member file_list (variable) of class src::backend::lib::library::Catalogue is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:21: warning: Member opf_regx (variable) of class src::backend::lib::library::Catalogue is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:22: warning: Member cover_regx (variable) of class src::backend::lib::library::Catalogue is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:23: warning: Member html_regx (variable) of class src::backend::lib::library::Catalogue is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:24: warning: Member title_sanitization_regx (variable) of class src::backend::lib::library::Catalogue is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:25: warning: Member title_sanitization_lvl2_regx (variable) of class src::backend::lib::library::Catalogue is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:26: warning: Member title_sanitization_dirs_regx (variable) of class src::backend::lib::library::Catalogue is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:27: warning: Member root_dir (variable) of class src::backend::lib::library::Catalogue is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:28: warning: Member book_folder (variable) of class src::backend::lib::library::Catalogue is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:29: warning: Member books (variable) of class src::backend::lib::library::Catalogue is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:30: warning: Member db_pointer (variable) of class src::backend::lib::library::Catalogue is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:31: warning: Member config (variable) of class src::backend::lib::library::Catalogue is not documented.
-<__init__>:1: warning: parameters of member src.backend.lib.library.Catalogue.__init__ are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:303: warning: return type of member src.backend.lib.library.Catalogue.compare_shelf_current is not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:276: warning: parameters of member src.backend.lib.library.Catalogue.extract_content are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:276: warning: return type of member src.backend.lib.library.Catalogue.extract_content is not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:283: warning: parameters of member src.backend.lib.library.Catalogue.extract_cover_html are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:283: warning: return type of member src.backend.lib.library.Catalogue.extract_cover_html is not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:290: warning: parameters of member src.backend.lib.library.Catalogue.extract_cover_image are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:290: warning: return type of member src.backend.lib.library.Catalogue.extract_cover_image is not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:97: warning: parameters of member src.backend.lib.library.Catalogue.extract_metadata_epub are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:97: warning: return type of member src.backend.lib.library.Catalogue.extract_metadata_epub is not documented
-:1: warning: parameters of member src.backend.lib.library.Catalogue.extract_metadata_mobi are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:171: warning: parameters of member src.backend.lib.library.Catalogue.extract_metadata_pdf are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:171: warning: return type of member src.backend.lib.library.Catalogue.extract_metadata_pdf is not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:54: warning: return type of member src.backend.lib.library.Catalogue.filter_books is not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:324: warning: parameters of member src.backend.lib.library.Catalogue.import_books are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:324: warning: return type of member src.backend.lib.library.Catalogue.import_books is not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:69: warning: parameters of member src.backend.lib.library.Catalogue.process_by_filetype are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:69: warning: return type of member src.backend.lib.library.Catalogue.process_by_filetype is not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:81: warning: parameters of member src.backend.lib.library.Catalogue.process_epub are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:81: warning: return type of member src.backend.lib.library.Catalogue.process_epub is not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:34: warning: parameters of member src.backend.lib.library.Catalogue.scan_folder are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:34: warning: return type of member src.backend.lib.library.Catalogue.scan_folder is not documented
-:1: warning: parameters of member src.backend.lib.library.Catalogue.stripTags are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/models.py:24: warning: Member book_id (variable) of class src::backend::lib::models::Book is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/models.py:25: warning: Member title (variable) of class src::backend::lib::models::Book is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/models.py:26: warning: Member author (variable) of class src::backend::lib::models::Book is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/models.py:27: warning: Member categories (variable) of class src::backend::lib::models::Book is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/models.py:28: warning: Member cover (variable) of class src::backend::lib::models::Book is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/models.py:29: warning: Member pages (variable) of class src::backend::lib::models::Book is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/models.py:30: warning: Member progress (variable) of class src::backend::lib::models::Book is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/models.py:31: warning: Member file_name (variable) of class src::backend::lib::models::Book is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/models.py:32: warning: Member description (variable) of class src::backend::lib::models::Book is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/models.py:33: warning: Member date (variable) of class src::backend::lib::models::Book is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/models.py:34: warning: Member rights (variable) of class src::backend::lib::models::Book is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/models.py:35: warning: Member tags (variable) of class src::backend::lib::models::Book is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/models.py:36: warning: Member identifier (variable) of class src::backend::lib::models::Book is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/models.py:37: warning: Member publisher (variable) of class src::backend::lib::models::Book is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/models.py:46: warning: Member collection (variable) of class src::backend::lib::models::Collection is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/models.py:47: warning: Member book_id (variable) of class src::backend::lib::models::Collection is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/models.py:48: warning: Member collection_id (variable) of class src::backend::lib::models::Collection is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/overide.py:15: warning: Member __init__(self) (function) of class src::backend::lib::overide::ACatalogue is not documented.
-<__init__>:1: warning: parameters of member src.backend.lib.overide.ACatalogue.__init__ are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/overide.py:38: warning: parameters of member src.backend.lib.overide.ACatalogue.import_books are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/overide.py:38: warning: return type of member src.backend.lib.overide.ACatalogue.import_books is not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/overide.py:19: warning: parameters of member src.backend.lib.overide.ACatalogue.scan_folder are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/overide.py:19: warning: return type of member src.backend.lib.overide.ACatalogue.scan_folder is not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/pyShelf.py:104: warning: Member __init__(self, root) (function) of class src::backend::lib::pyShelf::Admin is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/pyShelf.py:109: warning: Member createsuperuser(self) (function) of class src::backend::lib::pyShelf::Admin is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/pyShelf.py:105: warning: Member config (variable) of class src::backend::lib::pyShelf::Admin is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/pyShelf.py:106: warning: Member db (variable) of class src::backend::lib::pyShelf::Admin is not documented.
-<__init__>:1: warning: parameters of member src.backend.lib.pyShelf.Admin.__init__ are not documented
-:1: warning: parameters of member src.backend.lib.pyShelf.Admin.createsuperuser are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/pyShelf.py:25: warning: Member __init__(self, file_array) (function) of class src::backend::lib::pyShelf::InitFiles is not documented.
-<__init__>:1: warning: parameters of member src.backend.lib.pyShelf.InitFiles.__init__ are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/pyShelf.py:33: warning: parameters of member src.backend.lib.pyShelf.InitFiles.CreateFile are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/pyShelf.py:33: warning: return type of member src.backend.lib.pyShelf.InitFiles.CreateFile is not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/pyShelf.py:48: warning: Member __init__(self, root) (function) of class src::backend::lib::pyShelf::Server is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/pyShelf.py:55: warning: Member __aexit__(self, *args, **kwargs) (function) of class src::backend::lib::pyShelf::Server is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/pyShelf.py:58: warning: Member initialize_server(self) (function) of class src::backend::lib::pyShelf::Server is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/pyShelf.py:64: warning: Member runImport(self) (function) of class src::backend::lib::pyShelf::Server is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/pyShelf.py:73: warning: Member socketio(self, websocket, path) (function) of class src::backend::lib::pyShelf::Server is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/pyShelf.py:91: warning: Member pong(self) (function) of class src::backend::lib::pyShelf::Server is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/pyShelf.py:95: warning: Member start(self) (function) of class src::backend::lib::pyShelf::Server is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/pyShelf.py:49: warning: Member root (variable) of class src::backend::lib::pyShelf::Server is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/pyShelf.py:50: warning: Member host (variable) of class src::backend::lib::pyShelf::Server is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/pyShelf.py:51: warning: Member config (variable) of class src::backend::lib::pyShelf::Server is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/pyShelf.py:52: warning: Member loop (variable) of class src::backend::lib::pyShelf::Server is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/pyShelf.py:53: warning: Member serve (variable) of class src::backend::lib::pyShelf::Server is not documented.
-<__init__>:1: warning: parameters of member src.backend.lib.pyShelf.Server.__init__ are not documented
-<__aexit__>:1: warning: parameters of member src.backend.lib.pyShelf.Server.__aexit__ are not documented
-:1: warning: parameters of member src.backend.lib.pyShelf.Server.initialize_server are not documented
-:1: warning: parameters of member src.backend.lib.pyShelf.Server.pong are not documented
-:1: warning: parameters of member src.backend.lib.pyShelf.Server.runImport are not documented
-:1: warning: parameters of member src.backend.lib.pyShelf.Server.socketio are not documented
-:1: warning: parameters of member src.backend.lib.pyShelf.Server.start are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/storage.py:33: warning: Member config (variable) of class src::backend::lib::storage::Storage is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/storage.py:34: warning: Member sql (variable) of class src::backend::lib::storage::Storage is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/storage.py:35: warning: Member user (variable) of class src::backend::lib::storage::Storage is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/storage.py:36: warning: Member password (variable) of class src::backend::lib::storage::Storage is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/storage.py:37: warning: Member db_host (variable) of class src::backend::lib::storage::Storage is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/storage.py:38: warning: Member db_port (variable) of class src::backend::lib::storage::Storage is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/storage.py:39: warning: Member engine (variable) of class src::backend::lib::storage::Storage is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/storage.py:32: warning: parameters of member src.backend.lib.storage.Storage.__init__ are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/storage.py:109: warning: return type of member src.backend.lib.storage.Storage.book_paths_list is not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/storage.py:61: warning: return type of member src.backend.lib.storage.Storage.create_tables is not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/storage.py:193: warning: parameters of member src.backend.lib.storage.Storage.get_book are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/storage.py:193: warning: return type of member src.backend.lib.storage.Storage.get_book is not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/storage.py:169: warning: parameters of member src.backend.lib.storage.Storage.get_books are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/storage.py:169: warning: return type of member src.backend.lib.storage.Storage.get_books is not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/storage.py:210: warning: return type of member src.backend.lib.storage.Storage.get_collections is not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/storage.py:43: warning: return type of member src.backend.lib.storage.Storage.get_connection_string is not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/storage.py:67: warning: parameters of member src.backend.lib.storage.Storage.insert_book are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/storage.py:67: warning: return type of member src.backend.lib.storage.Storage.insert_book is not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/storage.py:121: warning: return type of member src.backend.lib.storage.Storage.make_collections is not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/tests/config_test.py:9: warning: Member test_book_dir(self) (function) of class src::backend::tests::config_test::TestConfig is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/tests/config_test.py:12: warning: Member test_title(self) (function) of class src::backend::tests::config_test::TestConfig is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/tests/config_test.py:15: warning: Member test_version(self) (function) of class src::backend::tests::config_test::TestConfig is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/tests/config_test.py:7: warning: Member config (variable) of class src::backend::tests::config_test::TestConfig is not documented.
-:1: warning: parameters of member src.backend.tests.config_test.TestConfig.test_book_dir are not documented
-:1: warning: parameters of member src.backend.tests.config_test.TestConfig.test_title are not documented
-:1: warning: parameters of member src.backend.tests.config_test.TestConfig.test_version are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/tests/library_test.py:20: warning: Member __init__(self) (function) of class src::backend::tests::library_test::Test_Catalogue is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/tests/library_test.py:24: warning: Member book_shelf (variable) of class src::backend::tests::library_test::Test_Catalogue is not documented.
-<__init__>:1: warning: parameters of member src.backend.tests.library_test.Test_Catalogue.__init__ are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/library.py:54: warning: return type of member src.backend.tests.library_test.Test_Catalogue.filter_books is not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/config.py:120: warning: parameters of member src.backend.tests.library_test.Test_Config.open_file are not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/lib/config.py:120: warning: return type of member src.backend.tests.library_test.Test_Config.open_file is not documented
-/home/th3r00t/.local/builds/pyShelf/src/backend/tests/library_test.py:32: warning: Member test_filter_books(self) (function) of class src::backend::tests::library_test::TestCatalogue is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/tests/library_test.py:29: warning: Member root (variable) of class src::backend::tests::library_test::TestCatalogue is not documented.
-/home/th3r00t/.local/builds/pyShelf/src/backend/tests/library_test.py:30: warning: Member config (variable) of class src::backend::tests::library_test::TestCatalogue is not documented.
-:1: warning: parameters of member src.backend.tests.library_test.TestCatalogue.test_filter_books are not documented
diff --git a/wiki/Automated Collections.wiki b/wiki/Automated Collections.wiki
deleted file mode 100644
index 72a279e..0000000
--- a/wiki/Automated Collections.wiki
+++ /dev/null
@@ -1,24 +0,0 @@
-= Automated Collection Management System =
-The collection management system needs rewritten from the ground up.
-The model should look something like this.
-* [ ] TODO :: Refactor collections algorithm. #aebaee91
-{{{python
- Collection {
- id: int
- name: String
- books: list(Book)
- }
-}}}
-
-it is likely the book object will need rewritten as well.
-{{{python
- Book {
- id: int
- title: String
- # other book metadata
- collection: list(Collection.id)
- }
-}}}
-
-{{file://$HOME/.local/builds/pyShelf/src/backend/lib/storage.py}}
-{{file://$HOME/.local/builds/pyShelf/src/backend/pyShelf_ScanLibrary.py}}
diff --git a/wiki/Book Attachment System.wiki b/wiki/Book Attachment System.wiki
deleted file mode 100644
index 9e79a65..0000000
--- a/wiki/Book Attachment System.wiki
+++ /dev/null
@@ -1,11 +0,0 @@
-[[index|Home]] [[TOC]] [[https://github.com/th3r00t/pyShelf.git|github]]
-= Book Attachment System =
-== Introduction ==
-
-The Book Attachment System is used for attaching various filetypes to a book.
-This could be helpfull for storing code snippets or notes to technical documents.
-
-
-== State ==
-
-Concept.
diff --git a/wiki/Book Scraping System.wiki b/wiki/Book Scraping System.wiki
deleted file mode 100644
index fcdd627..0000000
--- a/wiki/Book Scraping System.wiki
+++ /dev/null
@@ -1,25 +0,0 @@
-[[index|Home]] [[TOC]] [[https://github.com/th3r00t/pyShelf.git|github]]
-= Book Scraping System =
-== Introduction ==
-
-The Book Scraping System is a custom ebook scraper built from the ground up
-for pyShelf. It is designed to be a simple, easy to use, and easy to extend
-system for scraping ebooks from the internet. It is powered by BeutifulSoup.
-
-pyShelf features a recursive scraping algorithm that itterates over all
-sub-folders in your collection.
-
-== Scrapers ==
- * [X] epub #2899a8e9
- * [X] mobi #ec035720
- * [X] pdf #05875e64
- * [ ] cbz #4a513e39
-
-== Collections ==
- * [ ] Manual Collections #b07156f4
- * [ ] [[Automated Collections]] #f258c1f8
-
-== State ==
-
-Fully functional.
-Awaiting further feature implementation.
diff --git a/wiki/BrandBoard.pdf b/wiki/BrandBoard.pdf
deleted file mode 100644
index b8d485e..0000000
Binary files a/wiki/BrandBoard.pdf and /dev/null differ
diff --git a/wiki/Client.wiki b/wiki/Client.wiki
deleted file mode 100644
index 50586ef..0000000
--- a/wiki/Client.wiki
+++ /dev/null
@@ -1,41 +0,0 @@
-[[index|Home]] [[TOC]] [[https://github.com/th3r00t/pyShelf.git|github]]
-= Client =
-:frontend:ui:
-
-== Dependency Management ==
-:dependency:
-
-* [X] npm #c5f8d347
-* [X] sass #8f43ab4c
-* [ ] pip #14ee256e
-
-== [[https://create.t3.gg|T3.gg]] ==
-=== User System ===
-- NextAuthjs
-- Authentication Providers
- - Discord
- Required: Client ID, Client Secret
- - Github
- Required: Client ID, Client Secret, only one callback per app.
- {{https://next-auth.js.org/providers/github|NextAuthjs Github}}
-=== User Experience ===
-
-
-:ux:
-
-* [ ] Favorites #0fc67f94
-* [ ] Permissions / Roles #9c4f279e
-* [ ] User Profile #289e0fe0
-* [ ] User Settings #51955b33
-
-=== Data Management ===
-:data:
-
-* [ ] Book Management System #92e523d2
- * [ ] add #bda9a0f3
- * [ ] remove #4b34e931
- * [ ] update #eb959340
- * [ ] access level #b00795a4
- * [ ] ownership #8c80edc5
- * [ ] attach #8acb21a9
- * [ ] detach #2e263616
diff --git a/wiki/Description.wiki b/wiki/Description.wiki
deleted file mode 100644
index e69de29..0000000
diff --git a/wiki/Frontend.wiki b/wiki/Frontend.wiki
deleted file mode 100644
index 205015c..0000000
--- a/wiki/Frontend.wiki
+++ /dev/null
@@ -1,41 +0,0 @@
-[[index|Home]] [[TOC]] [[https://github.com/th3r00t/pyShelf.git|github]]
-= Frontend Services =
-:frontend:ui:
-
-== Dependency Management ==
-:dependency:
-
- * [X] npm #c5f8d347
- * [X] sass #8f43ab4c
- * [ ] pip #14ee256e
-
-== User Management ==
-:user:
-
- * [ ] Registration System #d1198f16
- * [ ] oauth #aa94c112
- * [ ] email&password #97231d67
- * [ ] Login(out) System #1df25e4a
- * [ ] oauth #67ea705c
- * [ ] email&password #80381cdb
- * [ ] Reset Password System #bf997b97
- * [ ] email&password #87fe5e34
- * [ ] User Delete System #d29c98a1
-
-== User Experience ==
-:ux:
-
- * [ ] Favorites #0fc67f94
- * [ ] Permissions / Roles #9c4f279e
- * [ ] User Profile #289e0fe0
- * [ ] User Settings #51955b33
-
-== Data Management ==
-:data:
-
- * [ ] Book Management System #e31c2bd7
- * [ ] add #bda9a0f3
- * [ ] remove #4b34e931
- * [ ] update #eb959340
- * [ ] access level #b00795a4
- * [ ] ownership #8c80edc5
diff --git a/wiki/License.wiki b/wiki/License.wiki
deleted file mode 100644
index dd57a8e..0000000
--- a/wiki/License.wiki
+++ /dev/null
@@ -1,677 +0,0 @@
-[[index|Home]] [[TOC]] [[https://github.com/th3r00t/pyShelf.git|github]]
- = GNU GENERAL PUBLIC LICENSE =
- == Version 3, 29 June 2007 ==
-
- Copyright (C) 2007 Free Software Foundation, Inc. [[https://fsf.org/]]
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-== Preamble ==
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
-== TERMS AND CONDITIONS ==
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- == END OF TERMS AND CONDITIONS ==
-
- == How to Apply These Terms to Your New Programs ==
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-{{{
-
- Copyright (C)
-
- 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 3 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, see .
-}}}
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-{{{
- Copyright (C)
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-}}}
-
-The hypothetical commands `show w` and `show c` should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-[[https://www.gnu.org/licenses/]].
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-[[https://www.gnu.org/licenses/why-not-lgpl.html]].
diff --git a/wiki/Notes.wiki b/wiki/Notes.wiki
deleted file mode 100644
index 394e580..0000000
--- a/wiki/Notes.wiki
+++ /dev/null
@@ -1,15 +0,0 @@
-= ux =
-== Next / React / Material / Typescript ==
-=== Guides ===
-- {{https://nextjs.org/docs/getting-started|Next.js}}
-- {{https://blog.logrocket.com/using-next-js-with-typescript/|Next w/ Typescript}}
-- {{https://react-typescript-cheatsheet.netlify.app/|React Typescript Cheatsheet}}
-- {{https://reactjs.org/docs/hooks-intro.html|React Hooks}}
-- {{https://reactjs.org/docs/hooks-custom.html|React Custom Hooks}}
-- {{https://reactjs.org/docs/hooks-reference.html|React Hooks Reference}}
-- {{https://material-ui.com/|Material UI}}
-- {{https://material-ui.com/guides/typescript/|Material UI w/ Typescript}}
-- {{https://material-ui.com/guides/server-rendering/|Material UI Server Rendering}}
-- {{https://material-ui.com/guides/minimizing-bundle-size/|Material UI Minimizing Bundle Size}}
-- {{https://material-ui.com/guides/composition/|Material UI Composition}}
-- {{https://www.prisma.io/|Prisma}}
diff --git a/wiki/OPDS.wiki b/wiki/OPDS.wiki
deleted file mode 100644
index 0ea6635..0000000
--- a/wiki/OPDS.wiki
+++ /dev/null
@@ -1,14 +0,0 @@
-[[index|Home]] [[TOC]] [[https://github.com/th3r00t/pyShelf.git|github]]
- = Open Public Distribution System =
-== Introduction ==
-
- [[https://opds-spec.org/]]
-
- The Open Publication Distribution System (OPDS) Catalog format is a syndication
- format for electronic publications based on Atom and HTTP. OPDS Catalogs enable
- the aggregation, distribution, discovery, and acquisition of electronic
- publications. OPDS Catalogs use existing or emergent open standards and
- conventions, with a priority on simplicity.
-
-== State ==
- Concept.
diff --git a/wiki/Program Flow.wiki b/wiki/Program Flow.wiki
deleted file mode 100644
index 6d596df..0000000
--- a/wiki/Program Flow.wiki
+++ /dev/null
@@ -1,20 +0,0 @@
-= PyShelf's Program Flow Chart =
-
-== Entry Point ==
-{{{bash
- > ./pyShelf.py
-}}}
-=== pyShelf.py ===
-- from src.backend.pyShelf_ScanLibrary import execute_scan
-- from src.backend.pyShelf_MakeCollections import MakeCollections
-- config = Config()
-- PRG_PATH
-- Storage(config).create_tables()
-- Thread(run_import)
-- FastAPIServer(config)
-
-==== run_import() ====
-:bookimport:
-- execute_scan(PRG_PATH, config) *Book DB Insertion Point*
-- MakeCollections(PRG_PATH, config) *Collection DB Insertion Point*
-* [ ] TODO Move collections insertion to run in tandem with book insertion as this is the last time we have all of the information in one place. #a34ad104
diff --git a/wiki/REST API.wiki b/wiki/REST API.wiki
deleted file mode 100644
index 6eac67e..0000000
--- a/wiki/REST API.wiki
+++ /dev/null
@@ -1,9 +0,0 @@
-[[index|Home]] [[TOC]] [[https://github.com/th3r00t/pyShelf.git|github]]
-= REST API |project:pyshelf:restapi =
-
-== Endpoints ==
-* [X] Book /book/id #405f1aac
-* [X] Books /books #932fd202
-* [X] Collections /collections #d4f585b6
-* [ ] User /user/id #3f538207
-* [ ] Users /users #c669d926
diff --git a/wiki/TOC.wiki b/wiki/TOC.wiki
deleted file mode 100644
index 32303ec..0000000
--- a/wiki/TOC.wiki
+++ /dev/null
@@ -1,11 +0,0 @@
-[[index|Home]] [[https://github.com/th3r00t/pyShelf.git|github]]
-= Table Of Contents =
- - [[Book Attachment System]]
- - [[Book Scraping System]]
- - [[Frontend]]
- - [[License]]
- - [[OPDS]]
- - [[REST API]]
- - [[TOC]]
- - [[doxygen]]
- - [[index]]
diff --git a/wiki/doxygen.wiki b/wiki/doxygen.wiki
deleted file mode 100644
index 5012bbd..0000000
--- a/wiki/doxygen.wiki
+++ /dev/null
@@ -1,6 +0,0 @@
-[[index|Home]] [[TOC]] [[https://github.com/th3r00t/pyShelf.git|github]]
-== Doxygen ==
-
-Any changes to source should be documented and have run doxygen doxygen.conf prior to commiting.
-Before advancing version numbers be sure to set PROJECT_NUMBER in doxygen.conf accordingly.
-
diff --git a/wiki/index.wiki b/wiki/index.wiki
deleted file mode 100644
index 2947991..0000000
--- a/wiki/index.wiki
+++ /dev/null
@@ -1,57 +0,0 @@
-[[TOC]] [[https://github.com/th3r00t/pyShelf.git|github]]
-= pyShelf | project:pyshelf =
-
-{{https://github.com/th3r00t/pyShelf/raw/0.7.1-dev/src/frontend/static/images/png/logo-no-background.png}}
-
-Version 0.7.0
-[[License|GPLv3]]
-
-pyShelf is an open source ebook server written in Python.
-It is designed with ease of use in mind.
-
-== Branches ==
-- *Master* is the most stable branch, but may be behind in features.
-- *Dev* is the most active branch, this branch is a rolling release branch.
-- *--** are used for day to day development.
-
-== Formats ==
-
-pyShelf supports the following formats:
-
- - epub
- - mobi
- - pdf
-
-
-== Services ==
- - Backend
- - [[Book Scraping System|Book Scraper]]
- - [[OPDS]]
- - Filesystem-io
- - [[Book Attachment System]]
- - [[Frontend]]
- - [[REST API|RESTAPI]]
- - [[Frontend#Dependency Management|Dependency Management]]
- - [[Frontend#User Management|User Management]]
- - [[Frontend#User Experience|User Experience]]
- - [[Frontend#Data Management|Data Management]]
-== TODO ==
- * [ ] [[Book Scraping System]] #f7edafb1
- * [ ] [[REST API]] #c7bc51c5
- * [ ] [[Client]] #21cbc756
-
-== Development ==
-
-pyShelf takes advantage of the following tools:
-
- [[https://pre-commit.com/|pre-commit]] [[http://www.doxygen.nl/|doxygen]] &
- [[https://vimwiki.github.io/|VimWiki]] we also follow
- [[https://semver.org|semver]] standards.
-
-
- - [[Program Flow]]
-
-
- Please note that I use task, vimwiki, & taskwiki to manage my projects.
- Due to this Task entries marked via `* [ ] task` are postfixed with hex color
- data. Anyone who knows how to fix that I'm all ears :).