From e44494aad0147c278c603777a8c8e0f5376c0459 Mon Sep 17 00:00:00 2001 From: Ozzieisaacs Date: Mon, 27 Jan 2020 20:32:37 +0100 Subject: [PATCH] Kobo sync enable/disable working --- cps.py | 4 ++-- cps/admin.py | 18 ++++++++++-------- cps/kobo.py | 2 ++ cps/services/__init__.py | 1 + cps/templates/user_edit.html | 2 +- cps/web.py | 12 +++++++----- optional-requirements.txt | 3 ++- 7 files changed, 25 insertions(+), 17 deletions(-) diff --git a/cps.py b/cps.py index 7da3f790..3601e4b6 100755 --- a/cps.py +++ b/cps.py @@ -43,9 +43,9 @@ from cps.gdrive import gdrive from cps.editbooks import editbook try: - from cps.kobo import kobo + from cps.kobo import kobo, get_kobo_activated from cps.kobo_auth import kobo_auth - kobo_available = True + kobo_available = get_kobo_activated() except ImportError: kobo_available = False diff --git a/cps/admin.py b/cps/admin.py index 141241b4..5d2b3812 100644 --- a/cps/admin.py +++ b/cps/admin.py @@ -532,7 +532,7 @@ def _configuration_update_helper(): _config_checkbox_int("config_uploading") _config_checkbox_int("config_anonbrowse") _config_checkbox_int("config_public_reg") - _config_checkbox_int("config_kobo_sync") + reboot_required |= _config_checkbox_int("config_kobo_sync") _config_checkbox_int("config_kobo_proxy") @@ -679,6 +679,7 @@ def new_user(): content = ub.User() languages = speaking_language() translations = [LC('en')] + babel.list_translations() + kobo_support = feature_support['kobo'] and config.config_kobo_sync if request.method == "POST": to_save = request.form.to_dict() content.default_language = to_save["default_language"] @@ -694,7 +695,7 @@ def new_user(): if not to_save["nickname"] or not to_save["email"] or not to_save["password"]: flash(_(u"Please fill out all fields!"), category="error") return render_title_template("user_edit.html", new_user=1, content=content, translations=translations, - registered_oauth=oauth_check, feature_support=feature_support, + registered_oauth=oauth_check, kobo_support=kobo_support, title=_(u"Add new user")) content.password = generate_password_hash(to_save["password"]) existing_user = ub.session.query(ub.User).filter(func.lower(ub.User.nickname) == to_save["nickname"].lower())\ @@ -706,7 +707,7 @@ def new_user(): if config.config_public_reg and not check_valid_domain(to_save["email"]): flash(_(u"E-mail is not from valid domain"), category="error") return render_title_template("user_edit.html", new_user=1, content=content, translations=translations, - registered_oauth=oauth_check, feature_support=feature_support, + registered_oauth=oauth_check, kobo_support=kobo_support, title=_(u"Add new user")) else: content.email = to_save["email"] @@ -714,7 +715,7 @@ def new_user(): flash(_(u"Found an existing account for this e-mail address or nickname."), category="error") return render_title_template("user_edit.html", new_user=1, content=content, translations=translations, languages=languages, title=_(u"Add new user"), page="newuser", - feature_support=feature_support, registered_oauth=oauth_check) + kobo_support=kobo_support, registered_oauth=oauth_check) try: ub.session.add(content) ub.session.commit() @@ -732,7 +733,7 @@ def new_user(): # content.mature_content = bool(config.config_default_show & constants.MATURE_CONTENT) return render_title_template("user_edit.html", new_user=1, content=content, translations=translations, languages=languages, title=_(u"Add new user"), page="newuser", - feature_support=feature_support, registered_oauth=oauth_check) + kobo_support=kobo_support, registered_oauth=oauth_check) @admi.route("/admin/mailsettings") @@ -787,6 +788,7 @@ def edit_user(user_id): downloads = list() languages = speaking_language() translations = babel.list_translations() + [LC('en')] + kobo_support = feature_support['kobo'] and config.config_kobo_sync for book in content.downloads: downloadbook = db.session.query(db.Books).filter(db.Books.id == book.book_id).first() if downloadbook: @@ -855,7 +857,7 @@ def edit_user(user_id): translations=translations, languages=languages, mail_configured = config.get_mail_server_configured(), - feature_support=feature_support, + kobo_support=kobo_support, new_user=0, content=content, downloads=downloads, @@ -874,7 +876,7 @@ def edit_user(user_id): new_user=0, content=content, downloads=downloads, registered_oauth=oauth_check, - feature_support=feature_support, + kobo_support=kobo_support, title=_(u"Edit User %(nick)s", nick=content.nickname), page="edituser") @@ -894,7 +896,7 @@ def edit_user(user_id): downloads=downloads, registered_oauth=oauth_check, mail_configured=config.get_mail_server_configured(), - feature_support=feature_support, + kobo_support=kobo_support, title=_(u"Edit User %(nick)s", nick=content.nickname), page="edituser") diff --git a/cps/kobo.py b/cps/kobo.py index 1ad9ebca..85337fb3 100644 --- a/cps/kobo.py +++ b/cps/kobo.py @@ -69,6 +69,8 @@ CONNECTION_SPECIFIC_HEADERS = [ "transfer-encoding", ] +def get_kobo_activated(): + return config.config_kobo_sync def redirect_or_proxy_request(): if config.config_kobo_proxy: diff --git a/cps/services/__init__.py b/cps/services/__init__.py index 18b49b88..2eb82f0d 100644 --- a/cps/services/__init__.py +++ b/cps/services/__init__.py @@ -41,3 +41,4 @@ try: except ImportError as err: log.debug("cannot import SyncToken, syncing books with Kobo Devices will not work: %s", err) kobo = None + SyncToken = None diff --git a/cps/templates/user_edit.html b/cps/templates/user_edit.html index 4b57b110..7457e5f6 100644 --- a/cps/templates/user_edit.html +++ b/cps/templates/user_edit.html @@ -58,7 +58,7 @@ {% endfor %} {% endif %} - {% if feature_support['kobo'] and not new_user %} + {% if kobo_support and not new_user %}
{{_('Create/View')}} diff --git a/cps/web.py b/cps/web.py index 5c535e8d..bd168e53 100644 --- a/cps/web.py +++ b/cps/web.py @@ -43,7 +43,7 @@ from werkzeug.exceptions import default_exceptions from werkzeug.datastructures import Headers from werkzeug.security import generate_password_hash, check_password_hash -from . import constants, config, logger, isoLanguages, services, worker +from . import constants, logger, isoLanguages, services, worker from . import searched_ids, lm, babel, db, ub, config, get_locale, app from .gdriveutils import getFileFromEbooksFolder, do_gdrive_download from .helper import common_filters, get_search_results, fill_indexpage, speaking_language, check_valid_domain, \ @@ -1287,10 +1287,12 @@ def profile(): downloads = list() languages = speaking_language() translations = babel.list_translations() + [LC('en')] + kobo_support = feature_support['kobo'] and config.config_kobo_sync if feature_support['oauth']: oauth_status = get_oauth_status() else: oauth_status = None + for book in current_user.downloads: downloadBook = db.session.query(db.Books).filter(db.Books.id == book.book_id).first() if downloadBook: @@ -1312,7 +1314,7 @@ def profile(): flash(_(u"E-mail is not from valid domain"), category="error") return render_title_template("user_edit.html", content=current_user, downloads=downloads, title=_(u"%(name)s's profile", name=current_user.nickname), page="me", - feature_support=feature_support, + kobo_support=kobo_support, registered_oauth=oauth_check, oauth_status=oauth_status) if "nickname" in to_save and to_save["nickname"] != current_user.nickname: # Query User nickname, if not existing, change @@ -1323,7 +1325,7 @@ def profile(): return render_title_template("user_edit.html", translations=translations, languages=languages, - feature_support=feature_support, + kobo_support=kobo_support, new_user=0, content=current_user, downloads=downloads, registered_oauth=oauth_check, @@ -1355,13 +1357,13 @@ def profile(): flash(_(u"Found an existing account for this e-mail address."), category="error") log.debug(u"Found an existing account for this e-mail address.") return render_title_template("user_edit.html", content=current_user, downloads=downloads, - translations=translations, feature_support=feature_support, + translations=translations, kobo_support=kobo_support, title=_(u"%(name)s's profile", name=current_user.nickname), page="me", registered_oauth=oauth_check, oauth_status=oauth_status) flash(_(u"Profile updated"), category="success") log.debug(u"Profile updated") return render_title_template("user_edit.html", translations=translations, profile=1, languages=languages, - content=current_user, downloads=downloads, feature_support=feature_support, + content=current_user, downloads=downloads, kobo_support=kobo_support, title= _(u"%(name)s's profile", name=current_user.nickname), page="me", registered_oauth=oauth_check, oauth_status=oauth_status) diff --git a/optional-requirements.txt b/optional-requirements.txt index a1024626..2598c526 100644 --- a/optional-requirements.txt +++ b/optional-requirements.txt @@ -32,6 +32,7 @@ rarfile>=2.7 # other natsort>=2.2.0 git+https://github.com/OzzieIsaacs/comicapi.git@ad8bfe5a1c31db882480433f86db2c5c57634a3f#egg=comicapi -#kobo integration + +#Kobo integration jsonschema>=3.2.0