From d6a974682406edd366cd972b0823002526ec06dc Mon Sep 17 00:00:00 2001 From: Michael Shavit Date: Fri, 20 Dec 2019 01:28:53 -0500 Subject: [PATCH] Add a filter to the Sync request endpoint to ignore books that don't have any formats supported by the device. --- cps/kobo.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cps/kobo.py b/cps/kobo.py index 2acecb6c..c44915c4 100644 --- a/cps/kobo.py +++ b/cps/kobo.py @@ -33,6 +33,9 @@ from sqlalchemy import func from . import config, logger, kobo_auth, db, helper from .web import download_required +#TODO: Test more formats :) . +KOBO_SUPPORTED_FORMATS = {"KEPUB"} + kobo = Blueprint("kobo", __name__, url_prefix="/kobo/") kobo_auth.disable_failed_auth_redirect_for_blueprint(kobo) kobo_auth.register_url_value_preprocessor(kobo) @@ -169,7 +172,9 @@ def HandleSyncRequest(): # the comparison because of the +00:00 suffix. changed_entries = ( db.session.query(db.Books) + .join(db.Data) .filter(func.datetime(db.Books.last_modified) > sync_token.books_last_modified) + .filter(db.Data.format.in_(KOBO_SUPPORTED_FORMATS)) .all() ) for book in changed_entries: @@ -275,11 +280,10 @@ def get_series(book): def get_metadata(book): - ALLOWED_FORMATS = {"KEPUB"} download_urls = [] for book_data in book.data: - if book_data.format in ALLOWED_FORMATS: + if book_data.format in KOBO_SUPPORTED_FORMATS: download_urls.append( { "Format": book_data.format,