From 9f260128cfb6a3384fc5d01e8c74183a2dd7ed06 Mon Sep 17 00:00:00 2001 From: Bernat <6201454+bernizt@users.noreply.github.com> Date: Sun, 24 Oct 2021 20:14:47 +0200 Subject: [PATCH 1/7] Prevent virtual keyboard login auto capitalization Stops virtual keyboards, such as the ones on mobile devices, to default to uppercase for the first letter of the login user input field. --- cps/templates/login.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cps/templates/login.html b/cps/templates/login.html index 0d5232e3..708e63ea 100644 --- a/cps/templates/login.html +++ b/cps/templates/login.html @@ -7,7 +7,7 @@
- +
From b4772d9b6617a6dc24b2abc4efa5909223bd663d Mon Sep 17 00:00:00 2001 From: ElQuimm <50202052+ElQuimm@users.noreply.github.com> Date: Tue, 26 Oct 2021 11:10:46 +0200 Subject: [PATCH 2/7] Update italian version of message.po --- cps/translations/it/LC_MESSAGES/messages.po | 112 ++++++++------------ 1 file changed, 44 insertions(+), 68 deletions(-) diff --git a/cps/translations/it/LC_MESSAGES/messages.po b/cps/translations/it/LC_MESSAGES/messages.po index 2d9f2f54..807a1a66 100644 --- a/cps/translations/it/LC_MESSAGES/messages.po +++ b/cps/translations/it/LC_MESSAGES/messages.po @@ -184,14 +184,12 @@ msgid "Are you sure you want to change the selected visibility restrictions for msgstr "Sei sicuro di voler modificare le impostazioni delle restrizioni di visualizzazione dell'/degli utente/i selezionato/i?" #: cps/admin.py:590 -#, fuzzy msgid "Are you sure you want to change shelf sync behavior for the selected user(s)?" -msgstr "Sei sicuro di voler modificare il ruolo evidenziato dell'/degli utente/i selezionato/i?" +msgstr "Sei sicuro di voler modificare il comportamento di sincronizzazione dello scaffale per l'/gli utente/i selezionato/i?" #: cps/admin.py:592 -#, fuzzy msgid "Are you sure you want to change Calibre library location?" -msgstr "Vuoi veramente arrestare Calibre-Web?" +msgstr "Sei sicuro di voler modificare la posizione della libreria di Calibre?" #: cps/admin.py:741 msgid "Tag not found" @@ -230,13 +228,12 @@ msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "Per favore digita un Provider LDAP, porta, DN e User Object Identifier" #: cps/admin.py:1102 -#, fuzzy msgid "Please Enter a LDAP Service Account and Password" -msgstr "Per favore digita un nome di utente valido per resettare la password" +msgstr "Per favore digita nome di utente e password del servizio LDAP" #: cps/admin.py:1105 msgid "Please Enter a LDAP Service Account" -msgstr "" +msgstr "Per favore indica un account di servizio LDAP" #: cps/admin.py:1110 #, python-format @@ -292,14 +289,12 @@ msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "La posizione del Certfile non è valida, per favore indica il percorso corretto" #: cps/admin.py:1316 -#, fuzzy msgid "Database Settings updated" -msgstr "Configurazione del server e-mail aggiornata" +msgstr "Configurazione del Database aggiornata" #: cps/admin.py:1324 -#, fuzzy msgid "Database Configuration" -msgstr "Ulteriori opzioni" +msgstr "Configurazione del Database" #: cps/admin.py:1340 cps/web.py:1479 msgid "Please fill out all fields!" @@ -438,18 +433,16 @@ msgid "General error" msgstr "Errore generale" #: cps/admin.py:1696 -#, fuzzy msgid "Update file could not be saved in temp dir" msgstr "Il file di aggiornamento non può essere salvato nella cartella temporanea" #: cps/admin.py:1697 msgid "Files could not be replaced during update" -msgstr "" +msgstr "Durante l'aggiornamento non è stato possibile sostituire alcuni file" #: cps/admin.py:1721 -#, fuzzy msgid "Failed to extract at least One LDAP User" -msgstr "Fallita la creazione di almeno un utente LDAP" +msgstr "Fallita l'estrazione di almeno un utente LDAP" #: cps/admin.py:1766 msgid "Failed to Create at Least One LDAP User" @@ -505,7 +498,7 @@ msgstr "modifica i metadati" #: cps/editbooks.py:455 #, python-format msgid "%(seriesindex)s is not a valid number, skipping" -msgstr "" +msgstr "%(seriesindex)s non è un numero valido, proseguo" #: cps/editbooks.py:490 #, python-format @@ -646,9 +639,9 @@ msgid "Send %(format)s to Kindle" msgstr "Invia %(format)s a Kindle" #: cps/helper.py:219 cps/tasks/convert.py:90 -#, fuzzy, python-format +#, python-format msgid "%(book)s send to Kindle" -msgstr "Invia a Kindle" +msgstr "%(book)s inviato a Kindle" #: cps/helper.py:224 msgid "The requested file could not be read. Maybe wrong permissions?" @@ -665,9 +658,9 @@ msgid "Deleting book %(id)s failed: %(message)s" msgstr "L'eliminazione del libro %(id)s non è riuscita: %(message)s" #: cps/helper.py:333 -#, fuzzy, python-format +#, python-format msgid "Deleting book %(id)s from database only, book path in database not valid: %(path)s" -msgstr "Eliminazione del libro %(id)s. Il percorso del libro non è valido: %(path)s" +msgstr "Eliminazione del libro %(id)s unicamente dal database. Il percorso del libro nel database non è valido: %(path)s" #: cps/helper.py:388 #, python-format @@ -961,7 +954,7 @@ msgstr "Valutazioni" #: cps/render_template.py:88 cps/templates/user_table.html:164 msgid "Show ratings selection" -msgstr "Mostra l'opzione per la selezione della valutazione" +msgstr "Mostra l'opzione per la selezione delle valutazioni" #: cps/render_template.py:89 cps/templates/index.xml:112 msgid "File formats" @@ -1034,16 +1027,15 @@ msgstr "Il libro è stato rimosso dallo scaffale: %(sname)s" #: cps/shelf.py:218 #, python-format msgid "Sorry you are not allowed to remove a book from this shelf: %(sname)s" -msgstr "Spiacente, ma non sei autorizzato a togliere libri dallo scaffale: %(sname)s" +msgstr "Spiacente, non sei autorizzato a togliere libri dallo scaffale: %(sname)s" #: cps/shelf.py:228 cps/templates/layout.html:142 msgid "Create a Shelf" msgstr "Crea uno scaffale" #: cps/shelf.py:236 -#, fuzzy msgid "Sorry you are not allowed to edit this shelf" -msgstr "Spiacente, ma non sei autorizzato a togliere libri dallo scaffale: %(sname)s" +msgstr "Spiacente, non sei autorizzato a modificare questo scaffale" #: cps/shelf.py:238 msgid "Edit a shelf" @@ -1216,7 +1208,7 @@ msgstr "Stato di lettura = %(status)s" #: cps/web.py:1354 msgid "Error on search for custom columns, please restart Calibre-Web" -msgstr "" +msgstr "Errore di ricerca nelle colonne personalizzate. Per favore riavvia Calibre-Web" #: cps/web.py:1449 #, python-format @@ -1478,9 +1470,8 @@ msgid "Reverse Proxy Header Name" msgstr "Nome dell'intestazione Reverse Proxy" #: cps/templates/admin.html:153 -#, fuzzy msgid "Edit Calibre Database Configuration" -msgstr "Modifica la configurazione di base" +msgstr "Modifica la configurazione del Database di Calibre" #: cps/templates/admin.html:154 msgid "Edit Basic Configuration" @@ -1747,9 +1738,8 @@ msgid "Keyword" msgstr "Parola chiave" #: cps/templates/book_edit.html:237 -#, fuzzy msgid "Search keyword" -msgstr " ricerca parola chiave " +msgstr "Cerca parola chiave" #: cps/templates/book_edit.html:243 msgid "Click the cover to load metadata to the form" @@ -1793,7 +1783,7 @@ msgstr "Rimuovi le selezioni" #: cps/templates/book_table.html:41 msgid "Exchange author and title" -msgstr "" +msgstr "Scambia autore e titolo" #: cps/templates/book_table.html:47 msgid "Update Title Sort automatically" @@ -1860,9 +1850,8 @@ msgstr "Indica gli editori" #: cps/templates/book_table.html:79 cps/templates/book_table.html:81 #: cps/templates/book_table.html:85 cps/templates/book_table.html:87 #: cps/templates/book_table.html:89 -#, fuzzy msgid "Enter " -msgstr "Identificatori" +msgstr "Conferma " #: cps/templates/book_table.html:106 cps/templates/modal_dialogs.html:46 msgid "Are you really sure?" @@ -1905,9 +1894,8 @@ msgid "Revoke" msgstr "Revoca" #: cps/templates/config_db.html:68 -#, fuzzy msgid "New db location is invalid, please enter valid path" -msgstr "La posizione del DB non è valida, per favore indica il percorso corretto" +msgstr "La nuova posizione del DB non è valida, per favore indica un percorso corretto" #: cps/templates/config_edit.html:18 msgid "Server Configuration" @@ -1959,7 +1947,7 @@ msgstr "Ulteriori opzioni" #: cps/templates/config_edit.html:100 msgid "Convert non-English characters in title and author while saving to disk" -msgstr "" +msgstr "Converti caratteri non inglesi del titolo e dell'autore durante il salvataggio su disco" #: cps/templates/config_edit.html:104 msgid "Enable Uploads" @@ -2250,18 +2238,16 @@ msgid "Allow Editing Public Shelves" msgstr "Permetti la modifica degli scaffali pubblici" #: cps/templates/config_view_edit.html:119 -#, fuzzy msgid "Default Language" -msgstr "Escludi lingue" +msgstr "Lingua predefinita" #: cps/templates/config_view_edit.html:127 -#, fuzzy msgid "Default Visible Language of Books" -msgstr "Mostra libri in" +msgstr "Lingua predefinita di presentazione dei libri" #: cps/templates/config_view_edit.html:143 msgid "Default Visibilities for New Users" -msgstr "Visibilità di base per i nuovi utenti" +msgstr "Visibilità predefinita per i nuovi utenti" #: cps/templates/config_view_edit.html:159 cps/templates/user_edit.html:81 #: cps/templates/user_table.html:154 @@ -2285,9 +2271,9 @@ msgid "Listen in Browser" msgstr "Ascolta nel navigatore" #: cps/templates/detail.html:124 -#, fuzzy, python-format +#, python-format msgid "Book %(index)s of %(range)s" -msgstr "" +msgstr "Libro %(index)s di %(range)s" #: cps/templates/detail.html:173 msgid "Published" @@ -2344,16 +2330,14 @@ msgid "Use Standard E-Mail Account" msgstr "Utilizza un account e-mail standard" #: cps/templates/email_edit.html:16 -#, fuzzy msgid "Gmail Account with OAuth2 Verification" -msgstr "Utilizza un account Gmail con la verifica OAuth2" +msgstr "Account Gmail con verifica OAuth2" #: cps/templates/email_edit.html:22 msgid "Setup Gmail Account as E-Mail Server" msgstr "Configura l'account Gmail quale server e-mail" #: cps/templates/email_edit.html:24 -#, fuzzy msgid "Revoke Gmail Access" msgstr "Revoca l'accesso Gmail" @@ -2412,9 +2396,8 @@ msgid "Open the .kobo/Kobo eReader.conf file in a text editor and add (or edit): msgstr "Apri il file .kobo/Kobo eReader.conf in un editore di testi e aggiungi (o edita):" #: cps/templates/http_error.html:31 -#, fuzzy msgid "Calibre-Web Instance is unconfigured, please contact your administrator" -msgstr "Il server e-mail non è configurato, per favore contatta l'amministratore" +msgstr "L'istanza Calibre-Web non è configurata, per favore contatta l'amministratore" #: cps/templates/http_error.html:41 msgid "Create Issue" @@ -2426,7 +2409,7 @@ msgstr "Ritorna alla pagina principale" #: cps/templates/http_error.html:50 msgid "Logout User" -msgstr "" +msgstr "Disconnetti l'utente" #: cps/templates/index.html:72 cps/templates/search.html:33 #: cps/templates/shelf.html:21 @@ -2685,18 +2668,16 @@ msgid "Calibre-Web eBook Catalog" msgstr "Catalogo Calibre-Web" #: cps/templates/read.html:6 -#, fuzzy msgid "epub Reader" -msgstr "Lettore PDF" +msgstr "Lettore epub" #: cps/templates/read.html:74 msgid "Reflow text when sidebars are open." msgstr "Adatta il testo quando le barre laterali sono aperte." #: cps/templates/readcbr.html:7 -#, fuzzy msgid "Comic Reader" -msgstr "Lettore PDF" +msgstr "Lettore di fumetti" #: cps/templates/readcbr.html:89 msgid "Keyboard Shortcuts" @@ -2796,38 +2777,35 @@ msgstr "Da destra a sinistra" #: cps/templates/readcbr.html:165 msgid "Reset to Top" -msgstr "" +msgstr "Ripristina all'inizio" #: cps/templates/readcbr.html:166 msgid "Remember Position" -msgstr "" +msgstr "Ricorda la posizione" #: cps/templates/readcbr.html:171 msgid "Scrollbar" -msgstr "" +msgstr "Barra di scorrimento" #: cps/templates/readcbr.html:174 msgid "Show" -msgstr "" +msgstr "Mostra" #: cps/templates/readcbr.html:175 msgid "Hide" -msgstr "" +msgstr "Nascondi" #: cps/templates/readdjvu.html:5 -#, fuzzy msgid "DJVU Reader" -msgstr "Lettore PDF" +msgstr "Lettore DJVU" #: cps/templates/readpdf.html:29 -#, fuzzy msgid "PDF Reader" msgstr "Lettore PDF" #: cps/templates/readtxt.html:6 -#, fuzzy msgid "txt Reader" -msgstr "Lettore PDF" +msgstr "Lettore txt" #: cps/templates/register.html:4 msgid "Register New Account" @@ -2951,7 +2929,7 @@ msgstr "Condividi con tutti" #: cps/templates/shelf_edit.html:21 msgid "Sync this shelf with Kobo device" -msgstr "" +msgstr "Sincronizza questo scaffale con il lettore Kobo" #: cps/templates/shelf_order.html:5 msgid "Drag to Rearrange Order" @@ -3051,7 +3029,7 @@ msgstr "Aggiungi valori personali permessi/negati nelle colonne" #: cps/templates/user_edit.html:130 msgid "Sync only books in selected shelves with Kobo" -msgstr "" +msgstr "Sincronizza con Kobo unicamene i libri negli scaffali selezionati" #: cps/templates/user_edit.html:140 cps/templates/user_table.html:169 msgid "Delete User" @@ -3122,9 +3100,8 @@ msgid "Edit Denied Column Values" msgstr "Modifica i valori delle colonne negate" #: cps/templates/user_table.html:142 -#, fuzzy msgid "Denied Column Values" -msgstr "Valori delle colonne negate" +msgstr "Valori negati per le colonne" #: cps/templates/user_table.html:144 msgid "Change Password" @@ -3135,13 +3112,12 @@ msgid "View" msgstr "Visualizza" #: cps/templates/user_table.html:150 -#, fuzzy msgid "Edit Public Shelves" msgstr "Modifica gli scaffali pubblici" #: cps/templates/user_table.html:152 msgid "Sync selected Shelves with Kobo" -msgstr "" +msgstr "Sincronizza con Kobo gli scaffali selezionati" #: cps/templates/user_table.html:156 msgid "Show read/unread selection" From 857584a9295142b7262a4d8dd8500f862e3b75b2 Mon Sep 17 00:00:00 2001 From: i7-8700 <1281261856@qq.com> Date: Wed, 27 Oct 2021 11:33:30 +0800 Subject: [PATCH 3/7] fix "MIME type ('text/plain') is not executable" on windows --- cps/__init__.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cps/__init__.py b/cps/__init__.py index 771abda7..e213fd5e 100644 --- a/cps/__init__.py +++ b/cps/__init__.py @@ -66,6 +66,8 @@ mimetypes.add_type('application/mp4', '.m4a') mimetypes.add_type('application/mp4', '.m4b') mimetypes.add_type('application/ogg', '.ogg') mimetypes.add_type('application/ogg', '.oga') +mimetypes.add_type('text/css', '.css') +mimetypes.add_type('text/javascript; charset=UTF-8', '.js') app = Flask(__name__) app.config.update( From 1294672809ca2811e294977e63d69c820211644b Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Sat, 30 Oct 2021 07:31:12 +0200 Subject: [PATCH 4/7] Bugfix search with excluded shelfs --- cps/web.py | 2 +- test/Calibre-Web TestSummary_Linux.html | 744 +++++++++++++++--------- 2 files changed, 462 insertions(+), 284 deletions(-) diff --git a/cps/web.py b/cps/web.py index d1de5677..8d5d2adf 100644 --- a/cps/web.py +++ b/cps/web.py @@ -1186,7 +1186,7 @@ def adv_search_serie(q, include_series_inputs, exclude_series_inputs): def adv_search_shelf(q, include_shelf_inputs, exclude_shelf_inputs): q = q.outerjoin(ub.BookShelf, db.Books.id == ub.BookShelf.book_id)\ - .filter(or_(ub.BookShelf.shelf is None, ub.BookShelf.shelf.notin_(exclude_shelf_inputs))) + .filter(or_(ub.BookShelf.shelf == None, ub.BookShelf.shelf.notin_(exclude_shelf_inputs))) if len(include_shelf_inputs) > 0: q = q.filter(ub.BookShelf.shelf.in_(include_shelf_inputs)) return q diff --git a/test/Calibre-Web TestSummary_Linux.html b/test/Calibre-Web TestSummary_Linux.html index 069b8146..7cdaa5a0 100644 --- a/test/Calibre-Web TestSummary_Linux.html +++ b/test/Calibre-Web TestSummary_Linux.html @@ -37,20 +37,20 @@
-

Start Time: 2021-10-12 06:15:04

+

Start Time: 2021-10-29 07:17:17

-

Stop Time: 2021-10-12 09:37:09

+

Stop Time: 2021-10-29 10:46:29

-

Duration: 2h 43 min

+

Duration: 2h 49 min

@@ -378,11 +378,11 @@ - + TestDeleteDatabase 1 - 1 0 + 1 0 0 @@ -392,11 +392,32 @@ - +
TestDeleteDatabase - test_delete_books_in_database
- PASS + +
+ FAIL +
+ + + + @@ -696,13 +717,13 @@ - + TestEditAdditionalBooks 16 14 - 1 0 - 1 + 0 + 2 Detail @@ -844,31 +865,11 @@ - +
TestEditAdditionalBooks - test_xss_author_edit
- -
- FAIL -
- - - - + SKIP @@ -1239,11 +1240,11 @@ AssertionError: 200 != 400 - + TestEditBooksList 10 - 10 - 0 + 9 + 1 0 0 @@ -1316,11 +1317,31 @@ AssertionError: 200 != 400 - +
TestEditBooksList - test_list_visibility
- PASS + +
+ FAIL +
+ + + + @@ -1344,11 +1365,11 @@ AssertionError: 200 != 400 - + TestEditBooksOnGdrive 20 - 20 - 0 + 19 + 1 0 0 @@ -1529,11 +1550,31 @@ AssertionError: 200 != 400 - +
TestEditBooksOnGdrive - test_watch_metadata
- PASS + +
+ FAIL +
+ + + + @@ -1902,6 +1943,117 @@ AssertionError: 200 != 400 + + TestKoboSyncBig + 4 + 1 + 1 + 2 + 0 + + Detail + + + + + + + +
TestKoboSyncBig - test_kobo_sync_selected_shelfs
+ + +
+ ERROR +
+ + + + + + + + + + +
TestKoboSyncBig - test_sync_changed_book
+ + +
+ ERROR +
+ + + + + + + + + + +
TestKoboSyncBig - test_sync_reading_state
+ + PASS + + + + + + +
TestKoboSyncBig - test_sync_shelf
+ + +
+ FAIL +
+ + + + + + + + + TestLdapLogin 13 @@ -1910,13 +2062,13 @@ AssertionError: 200 != 400 0 0 - Detail + Detail - +
TestLdapLogin - test_LDAP_SSL
@@ -1925,7 +2077,7 @@ AssertionError: 200 != 400 - +
TestLdapLogin - test_LDAP_SSL_CERTIFICATE
@@ -1934,7 +2086,7 @@ AssertionError: 200 != 400 - +
TestLdapLogin - test_LDAP_STARTTLS
@@ -1943,7 +2095,7 @@ AssertionError: 200 != 400 - +
TestLdapLogin - test_LDAP_fallback_Login
@@ -1952,7 +2104,7 @@ AssertionError: 200 != 400 - +
TestLdapLogin - test_LDAP_import
@@ -1961,7 +2113,7 @@ AssertionError: 200 != 400 - +
TestLdapLogin - test_LDAP_import_memberfield
@@ -1970,7 +2122,7 @@ AssertionError: 200 != 400 - +
TestLdapLogin - test_LDAP_login
@@ -1979,7 +2131,7 @@ AssertionError: 200 != 400 - +
TestLdapLogin - test_invalid_LDAP
@@ -1988,7 +2140,7 @@ AssertionError: 200 != 400 - +
TestLdapLogin - test_ldap_about
@@ -1997,7 +2149,7 @@ AssertionError: 200 != 400 - +
TestLdapLogin - test_ldap_authentication
@@ -2006,7 +2158,7 @@ AssertionError: 200 != 400 - +
TestLdapLogin - test_ldap_kobo_sync
@@ -2015,7 +2167,7 @@ AssertionError: 200 != 400 - +
TestLdapLogin - test_ldap_opds_anonymous
@@ -2024,7 +2176,7 @@ AssertionError: 200 != 400 - +
TestLdapLogin - test_ldap_opds_download_book
@@ -2042,13 +2194,13 @@ AssertionError: 200 != 400 0 1 - Detail + Detail - +
TestLogging - test_access_log_recover
@@ -2057,7 +2209,7 @@ AssertionError: 200 != 400 - +
TestLogging - test_debug_log
@@ -2066,7 +2218,7 @@ AssertionError: 200 != 400 - +
TestLogging - test_debuginfo_download
@@ -2075,7 +2227,7 @@ AssertionError: 200 != 400 - +
TestLogging - test_failed_login
@@ -2084,19 +2236,19 @@ AssertionError: 200 != 400 - +
TestLogging - test_failed_register
- SKIP + SKIP
-