diff --git a/cps/admin.py b/cps/admin.py index 86e59317..89f1b463 100755 --- a/cps/admin.py +++ b/cps/admin.py @@ -1772,6 +1772,7 @@ def _configuration_update_helper(): reboot_required |= _config_checkbox_int(to_save, "config_kobo_sync") _config_int(to_save, "config_external_port") _config_checkbox_int(to_save, "config_kobo_proxy") + _config_string(to_save, "config_auto_convert_to_format") if "config_upload_formats" in to_save: to_save["config_upload_formats"] = ','.join( diff --git a/cps/config_sql.py b/cps/config_sql.py index 8176bf41..e8864cc7 100644 --- a/cps/config_sql.py +++ b/cps/config_sql.py @@ -144,6 +144,7 @@ class _Settings(_Base): config_binariesdir = Column(String, default=None) config_calibre = Column(String) config_rarfile_location = Column(String, default=None) + config_auto_convert_to_format = Column(String, default=None) config_upload_formats = Column(String, default=','.join(constants.EXTENSIONS_UPLOAD)) config_unicode_filename = Column(Boolean, default=False) config_embed_metadata = Column(Boolean, default=True) diff --git a/cps/editbooks.py b/cps/editbooks.py index d5fe580c..b52ba7e7 100644 --- a/cps/editbooks.py +++ b/cps/editbooks.py @@ -305,6 +305,24 @@ def upload(): WorkerThread.add(current_user.name, TaskUpload(upload_text, escape(title))) helper.add_book_to_thumbnail_cache(book_id) + book_format_from = meta.extension.upper()[1:] + if ( + config.config_auto_convert_to_format and + config.config_auto_convert_to_format.upper() != meta.extension.lower() + ): + book_format_to = config.config_auto_convert_to_format.upper() + rtn = helper.convert_book_format(book_id, + config.get_book_path(), + book_format_from, + book_format_to, + current_user.name) + if rtn is None: + flash(_("Book successfully queued for converting to %(book_format)s", + book_format=book_format_to), + category="success") + else: + flash(_("There was an error converting this book: %(res)s", res=rtn), category="error") + if len(request.files.getlist("btn-upload")) < 2: if current_user.role_edit() or current_user.role_admin(): resp = {"location": url_for('edit-book.show_edit_book', book_id=book_id)} diff --git a/cps/templates/config_edit.html b/cps/templates/config_edit.html index 8035d03f..4476b6f9 100755 --- a/cps/templates/config_edit.html +++ b/cps/templates/config_edit.html @@ -111,6 +111,14 @@ +
+ + +