From ce7f891b9b2cb57c6644aaf96f89a8bda6307664 Mon Sep 17 00:00:00 2001 From: advplyr Date: Sun, 26 May 2024 16:01:08 -0500 Subject: [PATCH] Update:Disable epubs from running scripts by default, add library setting to enable it GHSA-7j99-76cj-q9pg --- .../modals/libraries/LibrarySettings.vue | 16 +++++- client/components/readers/EpubReader.vue | 5 +- client/store/libraries.js | 54 ++++++++++--------- client/strings/bg.json | 2 + client/strings/bn.json | 2 + client/strings/cs.json | 2 + client/strings/da.json | 2 + client/strings/de.json | 2 + client/strings/en-us.json | 2 + client/strings/es.json | 2 + client/strings/et.json | 2 + client/strings/fr.json | 2 + client/strings/gu.json | 2 + client/strings/he.json | 2 + client/strings/hi.json | 2 + client/strings/hr.json | 2 + client/strings/hu.json | 2 + client/strings/it.json | 2 + client/strings/lt.json | 2 + client/strings/nl.json | 2 + client/strings/no.json | 2 + client/strings/pl.json | 2 + client/strings/pt-br.json | 2 + client/strings/ru.json | 2 + client/strings/sv.json | 2 + client/strings/uk.json | 2 + client/strings/vi-vn.json | 2 + client/strings/zh-cn.json | 2 + client/strings/zh-tw.json | 2 + server/objects/settings/LibrarySettings.js | 5 +- 30 files changed, 104 insertions(+), 28 deletions(-) diff --git a/client/components/modals/libraries/LibrarySettings.vue b/client/components/modals/libraries/LibrarySettings.vue index 4183c4fe..3808ed07 100644 --- a/client/components/modals/libraries/LibrarySettings.vue +++ b/client/components/modals/libraries/LibrarySettings.vue @@ -60,6 +60,17 @@ +
+
+ + +

+ {{ $strings.LabelSettingsEpubsAllowScriptedContent }} + info_outlined +

+
+
+
@@ -83,6 +94,7 @@ export default { skipMatchingMediaWithAsin: false, skipMatchingMediaWithIsbn: false, audiobooksOnly: false, + epubsAllowScriptedContent: false, hideSingleBookSeries: false, onlyShowLaterBooksInContinueSeries: false, podcastSearchRegion: 'us' @@ -118,6 +130,7 @@ export default { skipMatchingMediaWithAsin: !!this.skipMatchingMediaWithAsin, skipMatchingMediaWithIsbn: !!this.skipMatchingMediaWithIsbn, audiobooksOnly: !!this.audiobooksOnly, + epubsAllowScriptedContent: !!this.epubsAllowScriptedContent, hideSingleBookSeries: !!this.hideSingleBookSeries, onlyShowLaterBooksInContinueSeries: !!this.onlyShowLaterBooksInContinueSeries, podcastSearchRegion: this.podcastSearchRegion @@ -133,6 +146,7 @@ export default { this.skipMatchingMediaWithAsin = !!this.librarySettings.skipMatchingMediaWithAsin this.skipMatchingMediaWithIsbn = !!this.librarySettings.skipMatchingMediaWithIsbn this.audiobooksOnly = !!this.librarySettings.audiobooksOnly + this.epubsAllowScriptedContent = !!this.librarySettings.epubsAllowScriptedContent this.hideSingleBookSeries = !!this.librarySettings.hideSingleBookSeries this.onlyShowLaterBooksInContinueSeries = !!this.librarySettings.onlyShowLaterBooksInContinueSeries this.podcastSearchRegion = this.librarySettings.podcastSearchRegion || 'us' @@ -142,4 +156,4 @@ export default { this.init() } } - \ No newline at end of file + diff --git a/client/components/readers/EpubReader.vue b/client/components/readers/EpubReader.vue index 3941c0d8..819f5beb 100644 --- a/client/components/readers/EpubReader.vue +++ b/client/components/readers/EpubReader.vue @@ -63,6 +63,9 @@ export default { libraryItemId() { return this.libraryItem?.id }, + allowScriptedContent() { + return this.$store.getters['libraries/getLibraryEpubsAllowScriptedContent'] + }, hasPrev() { return !this.rendition?.location?.atStart }, @@ -316,7 +319,7 @@ export default { reader.rendition = reader.book.renderTo('viewer', { width: this.readerWidth, height: this.readerHeight * 0.8, - allowScriptedContent: true, + allowScriptedContent: this.allowScriptedContent, spread: 'auto', snap: true, manager: 'continuous', diff --git a/client/store/libraries.js b/client/store/libraries.js index 1d13d632..f56bdad6 100644 --- a/client/store/libraries.js +++ b/client/store/libraries.js @@ -16,8 +16,8 @@ export const state = () => ({ }) export const getters = { - getCurrentLibrary: state => { - return state.libraries.find(lib => lib.id === state.currentLibraryId) + getCurrentLibrary: (state) => { + return state.libraries.find((lib) => lib.id === state.currentLibraryId) }, getCurrentLibraryName: (state, getters) => { var currentLibrary = getters.getCurrentLibrary @@ -28,11 +28,11 @@ export const getters = { if (!getters.getCurrentLibrary) return null return getters.getCurrentLibrary.mediaType }, - getSortedLibraries: state => () => { - return state.libraries.map(lib => ({ ...lib })).sort((a, b) => a.displayOrder - b.displayOrder) + getSortedLibraries: (state) => () => { + return state.libraries.map((lib) => ({ ...lib })).sort((a, b) => a.displayOrder - b.displayOrder) }, - getLibraryProvider: state => libraryId => { - var library = state.libraries.find(l => l.id === libraryId) + getLibraryProvider: (state) => (libraryId) => { + var library = state.libraries.find((l) => l.id === libraryId) if (!library) return null return library.provider }, @@ -60,11 +60,14 @@ export const getters = { getLibraryIsAudiobooksOnly: (state, getters) => { return !!getters.getCurrentLibrarySettings?.audiobooksOnly }, - getCollection: state => id => { - return state.collections.find(c => c.id === id) + getLibraryEpubsAllowScriptedContent: (state, getters) => { + return !!getters.getCurrentLibrarySettings?.epubsAllowScriptedContent }, - getPlaylist: state => id => { - return state.userPlaylists.find(p => p.id === id) + getCollection: (state) => (id) => { + return state.collections.find((c) => c.id === id) + }, + getPlaylist: (state) => (id) => { + return state.userPlaylists.find((p) => p.id === id) } } @@ -75,7 +78,8 @@ export const actions = { loadFolders({ state, commit }) { if (state.folders.length) { const lastCheck = Date.now() - state.folderLastUpdate - if (lastCheck < 1000 * 5) { // 5 seconds + if (lastCheck < 1000 * 5) { + // 5 seconds // Folders up to date return state.folders } @@ -204,7 +208,7 @@ export const mutations = { }) }, addUpdate(state, library) { - var index = state.libraries.findIndex(a => a.id === library.id) + var index = state.libraries.findIndex((a) => a.id === library.id) if (index >= 0) { state.libraries.splice(index, 1, library) } else { @@ -216,19 +220,19 @@ export const mutations = { }) }, remove(state, library) { - state.libraries = state.libraries.filter(a => a.id !== library.id) + state.libraries = state.libraries.filter((a) => a.id !== library.id) state.listeners.forEach((listener) => { listener.meth() }) }, addListener(state, listener) { - var index = state.listeners.findIndex(l => l.id === listener.id) + var index = state.listeners.findIndex((l) => l.id === listener.id) if (index >= 0) state.listeners.splice(index, 1, listener) else state.listeners.push(listener) }, removeListener(state, listenerId) { - state.listeners = state.listeners.filter(l => l.id !== listenerId) + state.listeners = state.listeners.filter((l) => l.id !== listenerId) }, setLibraryFilterData(state, filterData) { state.filterData = filterData @@ -238,7 +242,7 @@ export const mutations = { }, removeSeriesFromFilterData(state, seriesId) { if (!seriesId || !state.filterData) return - state.filterData.series = state.filterData.series.filter(se => se.id !== seriesId) + state.filterData.series = state.filterData.series.filter((se) => se.id !== seriesId) }, updateFilterDataWithItem(state, libraryItem) { if (!libraryItem || !state.filterData) return @@ -260,12 +264,12 @@ export const mutations = { // Add/update book authors if (mediaMetadata.authors?.length) { mediaMetadata.authors.forEach((author) => { - const indexOf = state.filterData.authors.findIndex(au => au.id === author.id) + const indexOf = state.filterData.authors.findIndex((au) => au.id === author.id) if (indexOf >= 0) { state.filterData.authors.splice(indexOf, 1, author) } else { state.filterData.authors.push(author) - state.filterData.authors.sort((a, b) => (a.name || '').localeCompare((b.name || ''))) + state.filterData.authors.sort((a, b) => (a.name || '').localeCompare(b.name || '')) } }) } @@ -273,12 +277,12 @@ export const mutations = { // Add/update series if (mediaMetadata.series?.length) { mediaMetadata.series.forEach((series) => { - const indexOf = state.filterData.series.findIndex(se => se.id === series.id) + const indexOf = state.filterData.series.findIndex((se) => se.id === series.id) if (indexOf >= 0) { state.filterData.series.splice(indexOf, 1, { id: series.id, name: series.name }) } else { state.filterData.series.push({ id: series.id, name: series.name }) - state.filterData.series.sort((a, b) => (a.name || '').localeCompare((b.name || ''))) + state.filterData.series.sort((a, b) => (a.name || '').localeCompare(b.name || '')) } }) } @@ -329,7 +333,7 @@ export const mutations = { state.collections = collections }, addUpdateCollection(state, collection) { - var index = state.collections.findIndex(c => c.id === collection.id) + var index = state.collections.findIndex((c) => c.id === collection.id) if (index >= 0) { state.collections.splice(index, 1, collection) } else { @@ -337,14 +341,14 @@ export const mutations = { } }, removeCollection(state, collection) { - state.collections = state.collections.filter(c => c.id !== collection.id) + state.collections = state.collections.filter((c) => c.id !== collection.id) }, setUserPlaylists(state, playlists) { state.userPlaylists = playlists state.numUserPlaylists = playlists.length }, addUpdateUserPlaylist(state, playlist) { - const index = state.userPlaylists.findIndex(p => p.id === playlist.id) + const index = state.userPlaylists.findIndex((p) => p.id === playlist.id) if (index >= 0) { state.userPlaylists.splice(index, 1, playlist) } else { @@ -353,10 +357,10 @@ export const mutations = { } }, removeUserPlaylist(state, playlist) { - state.userPlaylists = state.userPlaylists.filter(p => p.id !== playlist.id) + state.userPlaylists = state.userPlaylists.filter((p) => p.id !== playlist.id) state.numUserPlaylists = state.userPlaylists.length }, setEReaderDevices(state, ereaderDevices) { state.ereaderDevices = ereaderDevices } -} \ No newline at end of file +} diff --git a/client/strings/bg.json b/client/strings/bg.json index f8c9c594..0858856e 100644 --- a/client/strings/bg.json +++ b/client/strings/bg.json @@ -471,6 +471,8 @@ "LabelSettingsEnableWatcher": "Включи наблюдателя", "LabelSettingsEnableWatcherForLibrary": "Включи наблюдателя за библиотека", "LabelSettingsEnableWatcherHelp": "Включва автоматичното добавяне/обновяване на елементи, когато се открият промени във файловете. *Изисква рестарт на сървъра", + "LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs", + "LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.", "LabelSettingsExperimentalFeatures": "Експериментални Функции", "LabelSettingsExperimentalFeaturesHelp": "Функции в разработка, които могат да изискват вашето мнение и помощ за тестване. Кликнете за да отворите дискусия в github.", "LabelSettingsFindCovers": "Намери Корици", diff --git a/client/strings/bn.json b/client/strings/bn.json index 07e226a8..89fe78fe 100644 --- a/client/strings/bn.json +++ b/client/strings/bn.json @@ -471,6 +471,8 @@ "LabelSettingsEnableWatcher": "প্রহরী সক্ষম করুন", "LabelSettingsEnableWatcherForLibrary": "লাইব্রেরির জন্য ফোল্ডার প্রহরী সক্ষম করুন", "LabelSettingsEnableWatcherHelp": "ফাইলের পরিবর্তন শনাক্ত হলে আইটেমগুলির স্বয়ংক্রিয় যোগ/আপডেট সক্ষম করবে। *সার্ভার পুনরায় চালু করতে হবে", + "LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs", + "LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.", "LabelSettingsExperimentalFeatures": "পরীক্ষামূলক বৈশিষ্ট্য", "LabelSettingsExperimentalFeaturesHelp": "ফিচারের বৈশিষ্ট্য যা আপনার প্রতিক্রিয়া ব্যবহার করতে পারে এবং পরীক্ষায় সহায়তা করতে পারে। গিটহাব আলোচনা খুলতে ক্লিক করুন।", "LabelSettingsFindCovers": "কভার খুঁজুন", diff --git a/client/strings/cs.json b/client/strings/cs.json index f7aeda3a..b326996d 100644 --- a/client/strings/cs.json +++ b/client/strings/cs.json @@ -471,6 +471,8 @@ "LabelSettingsEnableWatcher": "Povolit sledování", "LabelSettingsEnableWatcherForLibrary": "Povolit sledování složky pro knihovnu", "LabelSettingsEnableWatcherHelp": "Povoluje automatické přidávání/aktualizaci položek, když jsou zjištěny změny souborů. *Vyžaduje restart serveru", + "LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs", + "LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.", "LabelSettingsExperimentalFeatures": "Experimentální funkce", "LabelSettingsExperimentalFeaturesHelp": "Funkce ve vývoji, které by mohly využít vaši zpětnou vazbu a pomoc s testováním. Kliknutím otevřete diskuzi na githubu.", "LabelSettingsFindCovers": "Najít obálky", diff --git a/client/strings/da.json b/client/strings/da.json index 080d61d5..96a0d04b 100644 --- a/client/strings/da.json +++ b/client/strings/da.json @@ -471,6 +471,8 @@ "LabelSettingsEnableWatcher": "Aktiver overvågning", "LabelSettingsEnableWatcherForLibrary": "Aktiver mappeovervågning for bibliotek", "LabelSettingsEnableWatcherHelp": "Aktiverer automatisk tilføjelse/opdatering af elementer, når filændringer registreres. *Kræver servergenstart", + "LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs", + "LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.", "LabelSettingsExperimentalFeatures": "Eksperimentelle funktioner", "LabelSettingsExperimentalFeaturesHelp": "Funktioner under udvikling, der kunne bruge din feedback og hjælp til test. Klik for at åbne Github-diskussionen.", "LabelSettingsFindCovers": "Find omslag", diff --git a/client/strings/de.json b/client/strings/de.json index dcf23084..4ce822dd 100644 --- a/client/strings/de.json +++ b/client/strings/de.json @@ -471,6 +471,8 @@ "LabelSettingsEnableWatcher": "Überwachung aktivieren", "LabelSettingsEnableWatcherForLibrary": "Ordnerüberwachung für die Bibliothek aktivieren", "LabelSettingsEnableWatcherHelp": "Aktiviert das automatische Hinzufügen/Aktualisieren von Elementen, wenn Dateiänderungen erkannt werden. *Erfordert einen Server-Neustart", + "LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs", + "LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.", "LabelSettingsExperimentalFeatures": "Experimentelle Funktionen", "LabelSettingsExperimentalFeaturesHelp": "Funktionen welche sich in der Entwicklung befinden, benötigen dein Feedback und deine Hilfe beim Testen. Klicke hier, um die Github-Diskussion zu öffnen.", "LabelSettingsFindCovers": "Suche Titelbilder", diff --git a/client/strings/en-us.json b/client/strings/en-us.json index 7828f5f9..2a390b5f 100644 --- a/client/strings/en-us.json +++ b/client/strings/en-us.json @@ -471,6 +471,8 @@ "LabelSettingsEnableWatcher": "Enable Watcher", "LabelSettingsEnableWatcherForLibrary": "Enable folder watcher for library", "LabelSettingsEnableWatcherHelp": "Enables the automatic adding/updating of items when file changes are detected. *Requires server restart", + "LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs", + "LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.", "LabelSettingsExperimentalFeatures": "Experimental features", "LabelSettingsExperimentalFeaturesHelp": "Features in development that could use your feedback and help testing. Click to open github discussion.", "LabelSettingsFindCovers": "Find covers", diff --git a/client/strings/es.json b/client/strings/es.json index 0b127967..cead84e2 100644 --- a/client/strings/es.json +++ b/client/strings/es.json @@ -471,6 +471,8 @@ "LabelSettingsEnableWatcher": "Habilitar Watcher", "LabelSettingsEnableWatcherForLibrary": "Habilitar Watcher para la carpeta de esta biblioteca", "LabelSettingsEnableWatcherHelp": "Permite agregar/actualizar elementos automáticamente cuando se detectan cambios en los archivos. *Requiere reiniciar el servidor", + "LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs", + "LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.", "LabelSettingsExperimentalFeatures": "Funciones Experimentales", "LabelSettingsExperimentalFeaturesHelp": "Funciones en desarrollo que se beneficiarían de sus comentarios y experiencias de prueba. Haga click aquí para abrir una conversación en Github.", "LabelSettingsFindCovers": "Buscar Portadas", diff --git a/client/strings/et.json b/client/strings/et.json index 9944fca1..fcf7c4ce 100644 --- a/client/strings/et.json +++ b/client/strings/et.json @@ -471,6 +471,8 @@ "LabelSettingsEnableWatcher": "Luba vaatamine", "LabelSettingsEnableWatcherForLibrary": "Luba kaustavaatamine raamatukogu jaoks", "LabelSettingsEnableWatcherHelp": "Lubab automaatset lisamist/uuendamist, kui tuvastatakse failimuudatused. *Nõuab serveri taaskäivitamist", + "LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs", + "LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.", "LabelSettingsExperimentalFeatures": "Eksperimentaalsed funktsioonid", "LabelSettingsExperimentalFeaturesHelp": "Arengus olevad funktsioonid, mis vajavad teie tagasisidet ja abi testimisel. Klõpsake GitHubi arutelu avamiseks.", "LabelSettingsFindCovers": "Leia ümbrised", diff --git a/client/strings/fr.json b/client/strings/fr.json index 053de0d3..ae7f60f3 100644 --- a/client/strings/fr.json +++ b/client/strings/fr.json @@ -471,6 +471,8 @@ "LabelSettingsEnableWatcher": "Activer la veille", "LabelSettingsEnableWatcherForLibrary": "Activer la surveillance des dossiers pour la bibliothèque", "LabelSettingsEnableWatcherHelp": "Active la mise à jour automatique automatique lorsque des modifications de fichiers sont détectées. * nécessite le redémarrage du serveur", + "LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs", + "LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.", "LabelSettingsExperimentalFeatures": "Fonctionnalités expérimentales", "LabelSettingsExperimentalFeaturesHelp": "Fonctionnalités en cours de développement sur lesquelles nous attendons votre retour et expérience. Cliquez pour ouvrir la discussion GitHub.", "LabelSettingsFindCovers": "Chercher des couvertures de livre", diff --git a/client/strings/gu.json b/client/strings/gu.json index 2f7be4d0..11c47504 100644 --- a/client/strings/gu.json +++ b/client/strings/gu.json @@ -471,6 +471,8 @@ "LabelSettingsEnableWatcher": "Enable Watcher", "LabelSettingsEnableWatcherForLibrary": "Enable folder watcher for library", "LabelSettingsEnableWatcherHelp": "Enables the automatic adding/updating of items when file changes are detected. *Requires server restart", + "LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs", + "LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.", "LabelSettingsExperimentalFeatures": "Experimental features", "LabelSettingsExperimentalFeaturesHelp": "Features in development that could use your feedback and help testing. Click to open github discussion.", "LabelSettingsFindCovers": "Find covers", diff --git a/client/strings/he.json b/client/strings/he.json index 9ddf2d5f..7d17a2a8 100644 --- a/client/strings/he.json +++ b/client/strings/he.json @@ -471,6 +471,8 @@ "LabelSettingsEnableWatcher": "הפעל עוקב", "LabelSettingsEnableWatcherForLibrary": "הפעל עוקב תיקייה עבור ספרייה", "LabelSettingsEnableWatcherHelp": "מאפשר הוספת/עדכון אוטומטי של פריטים כאשר שינויי קבצים זוהים. *דורש איתחול שרת", + "LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs", + "LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.", "LabelSettingsExperimentalFeatures": "תכונות ניסיוניות", "LabelSettingsExperimentalFeaturesHelp": "תכונות בפיתוח שדורשות משובך ובדיקה. לחץ לפתיחת דיון ב-GitHub.", "LabelSettingsFindCovers": "מצא כריכות", diff --git a/client/strings/hi.json b/client/strings/hi.json index df09699f..83b7f011 100644 --- a/client/strings/hi.json +++ b/client/strings/hi.json @@ -471,6 +471,8 @@ "LabelSettingsEnableWatcher": "Enable Watcher", "LabelSettingsEnableWatcherForLibrary": "Enable folder watcher for library", "LabelSettingsEnableWatcherHelp": "Enables the automatic adding/updating of items when file changes are detected. *Requires server restart", + "LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs", + "LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.", "LabelSettingsExperimentalFeatures": "Experimental features", "LabelSettingsExperimentalFeaturesHelp": "Features in development that could use your feedback and help testing. Click to open github discussion.", "LabelSettingsFindCovers": "Find covers", diff --git a/client/strings/hr.json b/client/strings/hr.json index f1c47bd2..a3a88e9c 100644 --- a/client/strings/hr.json +++ b/client/strings/hr.json @@ -471,6 +471,8 @@ "LabelSettingsEnableWatcher": "Enable Watcher", "LabelSettingsEnableWatcherForLibrary": "Enable folder watcher for library", "LabelSettingsEnableWatcherHelp": "Enables the automatic adding/updating of items when file changes are detected. *Requires server restart", + "LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs", + "LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.", "LabelSettingsExperimentalFeatures": "Eksperimentalni features", "LabelSettingsExperimentalFeaturesHelp": "Features u razvoju trebaju vaš feedback i pomoć pri testiranju. Klikni da odeš to Github discussionsa.", "LabelSettingsFindCovers": "Pronađi covers", diff --git a/client/strings/hu.json b/client/strings/hu.json index 8cdb4566..971c45fc 100644 --- a/client/strings/hu.json +++ b/client/strings/hu.json @@ -471,6 +471,8 @@ "LabelSettingsEnableWatcher": "Figyelő engedélyezése", "LabelSettingsEnableWatcherForLibrary": "Mappafigyelő engedélyezése a könyvtárban", "LabelSettingsEnableWatcherHelp": "Engedélyezi az automatikus elem hozzáadás/frissítés funkciót, amikor fájlváltozásokat észlel. *Szerver újraindítása szükséges", + "LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs", + "LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.", "LabelSettingsExperimentalFeatures": "Kísérleti funkciók", "LabelSettingsExperimentalFeaturesHelp": "Fejlesztés alatt álló funkciók, amelyek visszajelzésre és tesztelésre szorulnak. Kattintson a github megbeszélés megnyitásához.", "LabelSettingsFindCovers": "Borítók keresése", diff --git a/client/strings/it.json b/client/strings/it.json index f2295d2b..549ea94d 100644 --- a/client/strings/it.json +++ b/client/strings/it.json @@ -471,6 +471,8 @@ "LabelSettingsEnableWatcher": "Abilita Watcher", "LabelSettingsEnableWatcherForLibrary": "Abilita il controllo cartelle per la libreria", "LabelSettingsEnableWatcherHelp": "Abilita l'aggiunta/aggiornamento automatico degli elementi quando vengono rilevate modifiche ai file. *Richiede il riavvio del Server", + "LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs", + "LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.", "LabelSettingsExperimentalFeatures": "Opzioni Sperimentali", "LabelSettingsExperimentalFeaturesHelp": "Funzionalità in fase di sviluppo che potrebbero utilizzare i tuoi feedback e aiutare i test. Fare clic per aprire la discussione github.", "LabelSettingsFindCovers": "Trova covers", diff --git a/client/strings/lt.json b/client/strings/lt.json index 8c904e1f..5bd42bdf 100644 --- a/client/strings/lt.json +++ b/client/strings/lt.json @@ -471,6 +471,8 @@ "LabelSettingsEnableWatcher": "Enable Watcher", "LabelSettingsEnableWatcherForLibrary": "Enable folder watcher for library", "LabelSettingsEnableWatcherHelp": "Enables the automatic adding/updating of items when file changes are detected. *Requires server restart", + "LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs", + "LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.", "LabelSettingsExperimentalFeatures": "Eksperimentiniai funkcionalumai", "LabelSettingsExperimentalFeaturesHelp": "Funkcijos, kurios yra kuriamos ir laukiami jūsų komentarai. Spustelėkite, kad atidarytumėte „GitHub“ diskusiją.", "LabelSettingsFindCovers": "Rasti viršelius", diff --git a/client/strings/nl.json b/client/strings/nl.json index 84f4d054..28c3ada1 100644 --- a/client/strings/nl.json +++ b/client/strings/nl.json @@ -471,6 +471,8 @@ "LabelSettingsEnableWatcher": "Watcher inschakelen", "LabelSettingsEnableWatcherForLibrary": "Map-watcher voor bibliotheek inschakelen", "LabelSettingsEnableWatcherHelp": "Zorgt voor het automatisch toevoegen/bijwerken van onderdelen als bestandswijzigingen worden gedetecteerd. *Vereist herstarten van server", + "LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs", + "LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.", "LabelSettingsExperimentalFeatures": "Experimentele functies", "LabelSettingsExperimentalFeaturesHelp": "Functies in ontwikkeling die je feedback en testing kunnen gebruiken. Klik om de Github-discussie te openen.", "LabelSettingsFindCovers": "Zoek covers", diff --git a/client/strings/no.json b/client/strings/no.json index 95d9d856..4c4be82f 100644 --- a/client/strings/no.json +++ b/client/strings/no.json @@ -471,6 +471,8 @@ "LabelSettingsEnableWatcher": "Aktiver overvåker", "LabelSettingsEnableWatcherForLibrary": "Aktiver mappe overvåker for bibliotek", "LabelSettingsEnableWatcherHelp": "Aktiverer automatisk opprettelse/oppdatering av enheter når filendringer er oppdaget. *Krever restart av server*", + "LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs", + "LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.", "LabelSettingsExperimentalFeatures": "Eksperimentelle funksjoner", "LabelSettingsExperimentalFeaturesHelp": "Funksjoner under utvikling som kan trenge din tilbakemelding og hjelp med testing. Klikk for å åpne GitHub diskusjon.", "LabelSettingsFindCovers": "Finn omslag", diff --git a/client/strings/pl.json b/client/strings/pl.json index 0fa5ee32..ce0109d9 100644 --- a/client/strings/pl.json +++ b/client/strings/pl.json @@ -471,6 +471,8 @@ "LabelSettingsEnableWatcher": "Enable Watcher", "LabelSettingsEnableWatcherForLibrary": "Enable folder watcher for library", "LabelSettingsEnableWatcherHelp": "Enables the automatic adding/updating of items when file changes are detected. *Requires server restart", + "LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs", + "LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.", "LabelSettingsExperimentalFeatures": "Funkcje eksperymentalne", "LabelSettingsExperimentalFeaturesHelp": "Funkcje w trakcie rozwoju, które mogą zyskanć na Twojej opinii i pomocy w testowaniu. Kliknij, aby otworzyć dyskusję na githubie.", "LabelSettingsFindCovers": "Szukanie okładek", diff --git a/client/strings/pt-br.json b/client/strings/pt-br.json index 4e236851..f88f6a5e 100644 --- a/client/strings/pt-br.json +++ b/client/strings/pt-br.json @@ -471,6 +471,8 @@ "LabelSettingsEnableWatcher": "Ativar Monitoramento", "LabelSettingsEnableWatcherForLibrary": "Ativa o monitoramento de pastas para a biblioteca", "LabelSettingsEnableWatcherHelp": "Ativa o acréscimo/atualização de itens quando forem detectadas mudanças no arquivo. *Requer reiniciar o servidor", + "LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs", + "LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.", "LabelSettingsExperimentalFeatures": "Funcionalidade experimentais", "LabelSettingsExperimentalFeaturesHelp": "Funcionalidade em desenvolvimento que se beneficiairam dos seus comentários e da sua ajuda para testar. Clique para abrir a discussão no github.", "LabelSettingsFindCovers": "Localizar capas", diff --git a/client/strings/ru.json b/client/strings/ru.json index 243d96a0..7b6e9c7c 100644 --- a/client/strings/ru.json +++ b/client/strings/ru.json @@ -471,6 +471,8 @@ "LabelSettingsEnableWatcher": "Включить отслеживание", "LabelSettingsEnableWatcherForLibrary": "Включить отслеживание за папками библиотеки", "LabelSettingsEnableWatcherHelp": "Включает автоматическое добавление/обновление элементов при обнаружении изменений файлов. *Требуется перезапуск сервера", + "LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs", + "LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.", "LabelSettingsExperimentalFeatures": "Экспериментальные функции", "LabelSettingsExperimentalFeaturesHelp": "Функционал в разработке на который Вы могли бы дать отзыв или помочь в тестировании. Нажмите для открытия обсуждения на github.", "LabelSettingsFindCovers": "Найти обложки", diff --git a/client/strings/sv.json b/client/strings/sv.json index dbff3875..fd8c6e69 100644 --- a/client/strings/sv.json +++ b/client/strings/sv.json @@ -471,6 +471,8 @@ "LabelSettingsEnableWatcher": "Aktivera Watcher", "LabelSettingsEnableWatcherForLibrary": "Aktivera mappbevakning för bibliotek", "LabelSettingsEnableWatcherHelp": "Aktiverar automatiskt lägga till/uppdatera objekt när filändringar upptäcks. *Kräver omstart av servern", + "LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs", + "LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.", "LabelSettingsExperimentalFeatures": "Experimentella funktioner", "LabelSettingsExperimentalFeaturesHelp": "Funktioner under utveckling som behöver din feedback och hjälp med testning. Klicka för att öppna diskussionen på GitHub.", "LabelSettingsFindCovers": "Hitta omslag", diff --git a/client/strings/uk.json b/client/strings/uk.json index e32ac69e..6d8c311c 100644 --- a/client/strings/uk.json +++ b/client/strings/uk.json @@ -471,6 +471,8 @@ "LabelSettingsEnableWatcher": "Увімкнути спостерігача", "LabelSettingsEnableWatcherForLibrary": "Увімкнути спостерігання тек бібліотеки", "LabelSettingsEnableWatcherHelp": "Вмикає автоматичне додавання/оновлення елементів, коли спостерігаються зміни файлів. *Потребує перезавантаження сервера", + "LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs", + "LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.", "LabelSettingsExperimentalFeatures": "Експериментальні функції", "LabelSettingsExperimentalFeaturesHelp": "Функції в розробці, які потребують вашого відгуку та допомоги в тестуванні. Натисніть, щоб відкрити обговорення на Github.", "LabelSettingsFindCovers": "Пошук обкладинок", diff --git a/client/strings/vi-vn.json b/client/strings/vi-vn.json index e3e5fa31..7c6d09b0 100644 --- a/client/strings/vi-vn.json +++ b/client/strings/vi-vn.json @@ -471,6 +471,8 @@ "LabelSettingsEnableWatcher": "Bật Watcher", "LabelSettingsEnableWatcherForLibrary": "Bật watcher thư mục cho thư viện", "LabelSettingsEnableWatcherHelp": "Bật chức năng tự động thêm/cập nhật các mục khi phát hiện thay đổi tập tin. *Yêu cầu khởi động lại máy chủ", + "LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs", + "LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.", "LabelSettingsExperimentalFeatures": "Tính năng thử nghiệm", "LabelSettingsExperimentalFeaturesHelp": "Các tính năng đang phát triển có thể cần phản hồi của bạn và sự giúp đỡ trong thử nghiệm. Nhấp để mở thảo luận trên github.", "LabelSettingsFindCovers": "Tìm ảnh bìa", diff --git a/client/strings/zh-cn.json b/client/strings/zh-cn.json index 654411fe..fb375aec 100644 --- a/client/strings/zh-cn.json +++ b/client/strings/zh-cn.json @@ -471,6 +471,8 @@ "LabelSettingsEnableWatcher": "启用监视程序", "LabelSettingsEnableWatcherForLibrary": "为库启用文件夹监视程序", "LabelSettingsEnableWatcherHelp": "当检测到文件更改时, 启用项目的自动添加/更新. *需要重新启动服务器", + "LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs", + "LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.", "LabelSettingsExperimentalFeatures": "实验功能", "LabelSettingsExperimentalFeaturesHelp": "开发中的功能需要你的反馈并帮助测试. 点击打开 github 讨论.", "LabelSettingsFindCovers": "查找封面", diff --git a/client/strings/zh-tw.json b/client/strings/zh-tw.json index bf3a625b..54e7849b 100644 --- a/client/strings/zh-tw.json +++ b/client/strings/zh-tw.json @@ -471,6 +471,8 @@ "LabelSettingsEnableWatcher": "啟用監視程序", "LabelSettingsEnableWatcherForLibrary": "為庫啟用資料夾監視程序", "LabelSettingsEnableWatcherHelp": "當檢測到檔案更改時, 啟用項目的自動新增/更新. *需要重新啟動伺服器", + "LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs", + "LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.", "LabelSettingsExperimentalFeatures": "實驗功能", "LabelSettingsExperimentalFeaturesHelp": "開發中的功能需要你的反饋並幫助測試. 點擊打開 github 討論.", "LabelSettingsFindCovers": "查找封面", diff --git a/server/objects/settings/LibrarySettings.js b/server/objects/settings/LibrarySettings.js index a9885c79..4369c0ff 100644 --- a/server/objects/settings/LibrarySettings.js +++ b/server/objects/settings/LibrarySettings.js @@ -8,6 +8,7 @@ class LibrarySettings { this.skipMatchingMediaWithIsbn = false this.autoScanCronExpression = null this.audiobooksOnly = false + this.epubsAllowScriptedContent = false this.hideSingleBookSeries = false // Do not show series that only have 1 book this.onlyShowLaterBooksInContinueSeries = false // Skip showing books that are earlier than the max sequence read this.metadataPrecedence = ['folderStructure', 'audioMetatags', 'nfoFile', 'txtFiles', 'opfFile', 'absMetadata'] @@ -25,6 +26,7 @@ class LibrarySettings { this.skipMatchingMediaWithIsbn = !!settings.skipMatchingMediaWithIsbn this.autoScanCronExpression = settings.autoScanCronExpression || null this.audiobooksOnly = !!settings.audiobooksOnly + this.epubsAllowScriptedContent = !!settings.epubsAllowScriptedContent this.hideSingleBookSeries = !!settings.hideSingleBookSeries this.onlyShowLaterBooksInContinueSeries = !!settings.onlyShowLaterBooksInContinueSeries if (settings.metadataPrecedence) { @@ -44,6 +46,7 @@ class LibrarySettings { skipMatchingMediaWithIsbn: this.skipMatchingMediaWithIsbn, autoScanCronExpression: this.autoScanCronExpression, audiobooksOnly: this.audiobooksOnly, + epubsAllowScriptedContent: this.epubsAllowScriptedContent, hideSingleBookSeries: this.hideSingleBookSeries, onlyShowLaterBooksInContinueSeries: this.onlyShowLaterBooksInContinueSeries, metadataPrecedence: [...this.metadataPrecedence], @@ -67,4 +70,4 @@ class LibrarySettings { return hasUpdates } } -module.exports = LibrarySettings \ No newline at end of file +module.exports = LibrarySettings