diff --git a/cps/static/js/kthoom.js b/cps/static/js/kthoom.js index 28b139e6..c1afb64c 100644 --- a/cps/static/js/kthoom.js +++ b/cps/static/js/kthoom.js @@ -179,19 +179,21 @@ kthoom.ImageFile = function(file) { }; function updateDirectionButtons(){ - $("#right").show(); - $("#left").show(); if (currentImage == 0 ) { if (settings.direction === 0) { + $("#right").show(); $("#left").hide(); } else { + $("#left").show(); $("#right").hide(); } } if ((currentImage + 1) >= Math.max(totalImages, imageFiles.length)) { if (settings.direction === 0) { + $("#left").show(); $("#right").hide(); } else { + $("#right").show(); $("#left").hide(); } } diff --git a/setup.cfg b/setup.cfg index 1f617648..d4deb399 100644 --- a/setup.cfg +++ b/setup.cfg @@ -40,62 +40,62 @@ include_package_data = True install_requires = APScheduler>=3.6.3,<3.11.0 Babel>=1.3,<3.0 - Flask-Babel>=0.11.1,<3.1.0 + Flask-Babel>=0.11.1,<3.2.0 Flask-Login>=0.3.2,<0.6.3 Flask-Principal>=0.3.2,<0.5.1 Flask>=1.0.2,<2.4.0 iso-639>=0.4.5,<0.5.0 - PyPDF>=3.0.0,<3.8.0 + PyPDF>=3.0.0,<3.16.0 pytz>=2016.10 - requests>=2.11.1,<2.29.0 + requests>=2.28.0,<2.32.0 SQLAlchemy>=1.3.0,<2.0.0 - tornado>=4.1,<6.3 + tornado>=6.3,<6.4 Wand>=0.4.4,<0.7.0 unidecode>=0.04.19,<1.4.0 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.4.0 + Flask-Limiter>=2.3.0,<3.5.0 [options.extras_require] gdrive = - google-api-python-client>=1.7.11,<2.90.0 - gevent>20.6.0,<23.0.0 + google-api-python-client>=1.7.11,<2.98.0 + gevent>20.6.0,<24.0.0 greenlet>=0.4.17,<2.1.0 httplib2>=0.9.2,<0.23.0 oauth2client>=4.0.0,<4.1.4 uritemplate>=3.0.0,<4.2.0 pyasn1-modules>=0.0.8,<0.4.0 pyasn1>=0.1.9,<0.6.0 - PyDrive2>=1.3.1,<1.16.0 - PyYAML>=3.12 + PyDrive2>=1.3.1,<1.18.0 + PyYAML>=3.12,<6.1 rsa>=3.4.2,<4.10.0 gmail = - google-auth-oauthlib>=0.4.3,<0.9.0 - google-api-python-client>=1.7.11,<2.90.0 + google-auth-oauthlib>=0.4.3,<1.1.0 + google-api-python-client>=1.7.11,<2.98.0 goodreads = goodreads>=0.3.2,<0.4.0 - python-Levenshtein>=0.12.0,<0.21.0 + python-Levenshtein>=0.12.0,<0.22.0 ldap = python-ldap>=3.0.0,<3.5.0 Flask-SimpleLDAP>=1.4.0,<1.5.0 oauth = - Flask-Dance>=2.0.0,<6.3.0 - SQLAlchemy-Utils>=0.33.5,<0.40.0 + Flask-Dance>=2.0.0,<7.1.0 + SQLAlchemy-Utils>=0.33.5,<0.42.0 metadata = rarfile>=3.2 scholarly>=1.2.0,<1.8 markdown2>=2.0.0,<2.5.0 html2text>=2020.1.16,<2022.1.1 python-dateutil>=2.1,<2.9.0 - beautifulsoup4>=4.0.1,<4.12.0 - faust-cchardet>=2.1.18 + beautifulsoup4>=4.0.1,<4.13.0 + faust-cchardet>=2.1.18,<2.1.20 py7zr>=0.15.0,<0.21.0 comics = natsort>=2.2.0,<8.4.0 comicapi>=2.2.0,<3.3.0 kobo = - jsonschema>=3.2.0,<4.18.0 + jsonschema>=3.2.0,<4.20.0 diff --git a/test/Calibre-Web TestSummary_Linux.html b/test/Calibre-Web TestSummary_Linux.html index 66d4df88..b6ed61e8 100644 --- a/test/Calibre-Web TestSummary_Linux.html +++ b/test/Calibre-Web TestSummary_Linux.html @@ -37,20 +37,20 @@
Start Time: 2023-08-23 21:16:31
+Start Time: 2023-08-28 19:42:24
Stop Time: 2023-08-24 03:51:45
+Stop Time: 2023-08-29 02:13:03
Duration: 5h 34 min
+Duration: 5h 31 min
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_anonymous.py", line 294, in test_guest_change_visibility_series + self.assertEqual(books[1]['id'], '2') +IndexError: list index out of range+
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_backup_metadata.py", line 205, in test_backup_change_book_publishing_date + self.assertEqual(metadata['pub_date'].date(), date(2023, 6, 3)) +AssertionError: datetime.date(101, 1, 1) != datetime.date(2023, 6, 3)+
Traceback (most recent call last): - File "/home/ozzie/Development/calibre-web-test/test/test_edit_books.py", line 1159, in test_upload_book_cb7 - self.check_element_on_page((By.ID, 'edit_cancel')).click() -AttributeError: 'bool' object has no attribute 'click'-
Traceback (most recent call last): - File "/home/ozzie/Development/calibre-web-test/test/test_edit_books.py", line 866, in test_upload_cover_hdd - self.delete_book(details['id']) -NameError: name 'details' is not defined-
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_edit_books_list.py", line 184, in test_bookslist_edit_series + self.assertEqual(3, len(elements)) +AssertionError: 3 != 2+
Traceback (most recent call last): - File "/home/ozzie/Development/calibre-web-test/test/test_edit_books_metadata.py", line 209, in test_load_metadata - self.assertEqual(old_results, results) -AssertionError: Lists differ: [] != [{'cover_element': <selenium.webdriver.rem[10121 chars]4/'}] - -Second list contains 20 additional elements. -First extra element 0: -{'cover_element': <selenium.webdriver.remote.webelement.WebElement (session="34034d2d-f804-47c1-b9ad-fcf09f75f812", element="6dfe81e2-4752-4f1f-bd33-9388d0d529c1")>, 'cover': 'https://books.google.com/books/content?id=Ub8TAQAAIAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api&fife=w800-h900', 'source': 'https://books.google.com/', 'author': 'Martin Vogt', 'publisher': '', 'title': 'Der Buchtitel in der römischen Poesie', 'title_link': 'https://books.google.com/books?id=Ub8TAQAAIAAJ'} - -Diff is 10795 characters long. Set self.maxDiff to None to see it.+ File "/home/ozzie/Development/calibre-web-test/test/test_edit_books_metadata.py", line 167, in test_load_metadata + self.assertGreaterEqual(diff(BytesIO(cover), BytesIO(original_cover), delete_diff_file=True), 0.05) +AssertionError: 0.0 not greater than or equal to 0.05
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_edit_ebooks_gdrive.py", line 173, in test_edit_title + self.assertEqual('Unknown', values['title']) +KeyError: 'title'+
ImportError: Failed to import test module: test_pdf_metadata +Traceback (most recent call last): + File "/usr/lib/python3.10/unittest/loader.py", line 436, in _find_test_path + module = self._get_module_from_name(name) + File "/usr/lib/python3.10/unittest/loader.py", line 377, in _get_module_from_name + __import__(name) + File "/home/ozzie/Development/calibre-web-test/test/test_pdf_metadata.py", line 261 + )''' + ^ +SyntaxError: unterminated triple-quoted string literal (detected at line 270)+
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_reader.py", line 218, in test_comic_MACOS_files + left.click() + File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webelement.py", line 93, in click + self._execute(Command.CLICK_ELEMENT) + File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webelement.py", line 403, in _execute + return self._parent.execute(command, params) + File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 440, in execute + self.error_handler.check_response(response) + File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.10/site-packages/selenium/webdriver/remote/errorhandler.py", line 245, in check_response + raise exception_class(message, screen, stacktrace) +selenium.common.exceptions.ElementNotInteractableException: Message: Element <div id="left" class="arrow"> could not be scrolled into view +Stacktrace: +RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8 +WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:187:5 +ElementNotInteractableError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:347:5 +webdriverClickElement@chrome://remote/content/marionette/interaction.sys.mjs:152:11 +interaction.clickElement@chrome://remote/content/marionette/interaction.sys.mjs:121:11 +clickElement@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:204:29 +receiveMessage@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:86:31+