diff --git a/cps/schedule.py b/cps/schedule.py index 707e9bb3..60fd39fe 100644 --- a/cps/schedule.py +++ b/cps/schedule.py @@ -27,14 +27,12 @@ from .tasks.metadata_backup import TaskBackupMetadata def get_scheduled_tasks(reconnect=True): tasks = list() - # config.schedule_reconnect or - # Reconnect Calibre database (metadata.db) + # Reconnect Calibre database (metadata.db) based on config.schedule_reconnect if reconnect: tasks.append([lambda: TaskReconnectDatabase(), 'reconnect', False]) # ToDo make configurable. Generate metadata.opf file for each changed book - if False: - tasks.append([lambda: TaskBackupMetadata("en"), 'backup metadata', False]) + tasks.append([lambda: TaskBackupMetadata("en"), 'backup metadata', False]) # Generate all missing book cover thumbnails if config.schedule_generate_book_covers: diff --git a/cps/static/js/table.js b/cps/static/js/table.js index 33c22a88..833f1a13 100644 --- a/cps/static/js/table.js +++ b/cps/static/js/table.js @@ -634,7 +634,7 @@ function UserActions (value, row) { /* Function for cancelling tasks */ function TaskActions (value, row) { - var cancellableStats = [0, 1, 2]; + var cancellableStats = [0, 2]; if (row.task_id && row.is_cancellable && cancellableStats.includes(row.stat)) { return [ "
", diff --git a/cps/tasks/metadata_backup.py b/cps/tasks/metadata_backup.py index 717e7202..b700b22a 100644 --- a/cps/tasks/metadata_backup.py +++ b/cps/tasks/metadata_backup.py @@ -22,8 +22,8 @@ from urllib.request import urlopen from lxml import etree from html import escape -from cps import config, db, fs, gdriveutils, logger, ub -from cps.services.worker import CalibreTask, STAT_CANCELLED, STAT_ENDED +from cps import config, db, gdriveutils, logger +from cps.services.worker import CalibreTask from flask_babel import lazy_gettext as N_ OPF_NAMESPACE = "http://www.idpf.org/2007/opf" @@ -74,7 +74,10 @@ class TaskBackupMetadata(CalibreTask): def backup_metadata(self): try: metadata_backup = self.calibre_db.session.query(db.Metadata_Dirtied).all() - custom_columns = self.calibre_db.session.query(db.CustomColumns).order_by(db.CustomColumns.label).all() + custom_columns = (self.calibre_db.session.query(db.CustomColumns) + .filter(db.CustomColumns.mark_for_delete == 0) + .filter(db.CustomColumns.datatype.notin_(db.cc_exceptions)) + .order_by(db.CustomColumns.label).all()) count = len(metadata_backup) i = 0 for backup in metadata_backup: @@ -226,11 +229,11 @@ class TaskBackupMetadata(CalibreTask): # doc = etree.tostring(package, xml_declaration=True, encoding='utf-8', pretty_print=True) # .replace(b"&quot;", b""") try: with open(book_metadata_filepath, 'wb') as f: - # f.write(doc) doc.write(f, xml_declaration=True, encoding='utf-8', pretty_print=True) except Exception: # ToDo: Folder not writeable error pass + @property def name(self): return "Metadata backup" diff --git a/requirements.txt b/requirements.txt index d84daf1b..1eaffa38 100644 --- a/requirements.txt +++ b/requirements.txt @@ -18,4 +18,4 @@ lxml>=3.8.0,<5.0.0 flask-wtf>=0.14.2,<1.2.0 chardet>=3.0.0,<4.1.0 advocate>=1.0.0,<1.1.0 -Flask-Limiter>=2.3.0,<3.2.0 +Flask-Limiter>=2.3.0,<3.3.0