From 1be0ff96205ae9269e5ee183590770c8879f8428 Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Sun, 18 Aug 2024 18:52:13 +0200 Subject: [PATCH] Bugfix load metadata Bugfix xchange author and title Better handling of incompatible iso-639 module on python3.12 --- cps/about.py | 1 - cps/isoLanguages.py | 21 +++++++++++++-------- cps/static/js/edit_books.js | 6 +++--- cps/static/js/get_meta.js | 4 ++-- optional-requirements.txt | 1 + requirements.txt | 2 +- 6 files changed, 20 insertions(+), 15 deletions(-) diff --git a/cps/about.py b/cps/about.py index 9053dfee..fb031343 100644 --- a/cps/about.py +++ b/cps/about.py @@ -27,7 +27,6 @@ import importlib from collections import OrderedDict import flask -import jinja2 from flask_babel import gettext as _ from . import db, calibre_db, converter, uploader, constants, dep_check diff --git a/cps/isoLanguages.py b/cps/isoLanguages.py index 8a8413ff..bbab7089 100644 --- a/cps/isoLanguages.py +++ b/cps/isoLanguages.py @@ -15,6 +15,7 @@ # # You should have received a copy of the GNU General Public License # along with this program. If not, see . +import sys from .iso_language_names import LANGUAGE_NAMES as _LANGUAGE_NAMES from . import logger @@ -24,16 +25,20 @@ log = logger.create() try: - from iso639 import languages, __version__ + from iso639 import languages + # iso_version = importlib.metadata.version("iso639") get = languages.get -except ImportError: - from pycountry import languages as pyc_languages try: - import pkg_resources - __version__ = pkg_resources.get_distribution('pycountry').version + ' (PyCountry)' - del pkg_resources - except (ImportError, Exception): - __version__ = "? (PyCountry)" + if sys.version_info >= (3, 12): + import pkg_resources + except ImportError: + print("Python 3.12 isn't compatible with iso-639. Please install pycountry.") +except ImportError as ex: + from pycountry import languages as pyc_languages + #try: + # iso_version = importlib.metadata.version("pycountry") + ' (PyCountry)' + #except (ImportError, Exception): + # iso_version = "?" + ' (PyCountry)' def _copy_fields(l): l.part1 = getattr(l, 'alpha_2', None) diff --git a/cps/static/js/edit_books.js b/cps/static/js/edit_books.js index 7cc6c4db..46cc238c 100644 --- a/cps/static/js/edit_books.js +++ b/cps/static/js/edit_books.js @@ -93,7 +93,7 @@ var authors = new Bloodhound({ }, }); -$(".form-group #bookAuthor").typeahead( +$(".form-group #authors").typeahead( { highlight: true, minLength: 1, @@ -262,7 +262,7 @@ $("#btn-upload-cover").on("change", function () { $("#xchange").click(function () { this.blur(); var title = $("#title").val(); - $("#title").val($("#bookAuthor").val()); - $("#bookAuthor").val(title); + $("#title").val($("#authors").val()); + $("#authors").val(title); }); diff --git a/cps/static/js/get_meta.js b/cps/static/js/get_meta.js index 10fd5835..df4119dc 100644 --- a/cps/static/js/get_meta.js +++ b/cps/static/js/get_meta.js @@ -38,11 +38,11 @@ $(function () { } function populateForm (book) { - tinymce.get("comments").setContent(book.comments); + tinymce.get("comments").setContent(book.description); var uniqueTags = getUniqueValues('tags', book) var uniqueLanguages = getUniqueValues('languages', book) var ampSeparatedAuthors = (book.authors || []).join(" & "); - $("#bookAuthor").val(ampSeparatedAuthors); + $("#authors").val(ampSeparatedAuthors); $("#title").val(book.title); $("#tags").val(uniqueTags.join(", ")); $("#languages").val(uniqueLanguages.join(", ")); diff --git a/optional-requirements.txt b/optional-requirements.txt index 0d715524..4ab6ef0f 100644 --- a/optional-requirements.txt +++ b/optional-requirements.txt @@ -37,6 +37,7 @@ beautifulsoup4>=4.0.1,<4.13.0 faust-cchardet>=2.1.18,<2.1.20 py7zr>=0.15.0,<0.21.0 mutagen>=1.40.0,<1.50.0 +pycountry>=20.0.0,<25.0.0 # Comics natsort>=2.2.0,<8.5.0 diff --git a/requirements.txt b/requirements.txt index 71074892..1207e148 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,7 +3,7 @@ Babel>=1.3,<3.0 Flask-Babel>=0.11.1,<4.1.0 Flask-Principal>=0.3.2,<0.5.1 Flask>=1.0.2,<3.1.0 -iso-639>=0.4.5,<0.5.0 +# iso-639>=0.4.5,<0.5.0 # alternative pycountry PyPDF>=3.15.6,<4.3.0 pytz>=2016.10 requests>=2.28.0,<2.32.0