* Add a timeout to prevent hanging when the KoboStore isn't reachable.
* Add back a the dummy auth implementation for when proxying is
disabled.
* Return the dummy auth response as a fallback when failing to contact
the KoboStore.
* Don't contact the KoboStore during the /sync API call when proxying is
disabled.
them to the KoboStore for books that aren't in Calibre.
Note: There's still an edge case where a book is removed from Calibre
without first being archived, in which case the delete call will fail.
move jsonschema dependency to optional-requirements.txt
Added version of jsonschema to about section
Added additional column to RemoteAuthToken table
Update configuration of Kobo sync protocol
Instead, the user generates the api_endpoint url to set on their device
by visiting http://.../kobo_auth/generate_auth_token.
The generated url will contain a RemoteAuthorizationToken that will be
included on all subsequent requests from the device to the kobo/
endpoints. (In contrast, the device is authenticated using a session cookie on
requests to the download endpoint).
Also use Flask.url_for to generate download urls.
This is required to support ebook downloads which the Kobo device emits
without any auth headers.
* Also some other small bug fixes discovered during device testing.
* Add proper authorization checks on the new Kobo endpoints.
Important Note: As a side-effect, all CalibreWeb API calls can be
authorized using this token (i.e without a username&password).
- Supports /v1/library/sync call to get list of books
- Supports /v1/library/metadata call to get metadata for a given book
+ Assumes books are stored on Backblaze for metadata call
- Changes to helper.py so that we can return no cover instead of a blank
image.