From 2843308fb866acc088ba7baaf558343b3bf69cf8 Mon Sep 17 00:00:00 2001 From: Hallo951 <40667862+Hallo951@users.noreply.github.com> Date: Tue, 19 Dec 2023 09:03:06 +0100 Subject: [PATCH 01/11] Update de.json --- strings/de.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/strings/de.json b/strings/de.json index d1ae62d6..54201b22 100644 --- a/strings/de.json +++ b/strings/de.json @@ -105,14 +105,14 @@ "LabelContinueEpisodes": "Episoden fortfahren", "LabelContinueListening": "Weiterhören", "LabelContinueSeries": "Serie fortsetzen", - "LabelCustomTime": "Benutzerdefinierte zeit", + "LabelCustomTime": "Benutzerdefinierte Zeit", "LabelDescription": "Beschreibung", "LabelDisableAudioFadeOut": "Deaktiviere Audio abklingen", "LabelDisableAudioFadeOutHelp": "Die Audiolautstärke wird verringert, wenn weniger als 1 Minute für den Einschlaf-Timer verbleibt. Aktivieren Sie diese Einstellung, um nicht abzuklingen.", "LabelDisableAutoRewind": "Deaktiviere automatisches Rückspulen", "LabelDisableShakeToReset": "Deaktiviere Schütteln zum Zurücksetzen", "LabelDisableShakeToResetHelp": "Wenn Sie Ihr Gerät schütteln, während der Timer läuft ODER innerhalb von 2 Minuten nach Ablauf des Timers, wird der Sleep-Timer zurückgesetzt. Aktivieren Sie diese Einstellung, um das Schütteln zum Zurücksetzen zu deaktivieren.", - "LabelDisableVibrateOnReset": "Deaktiviere vibrieren beim Zurücksetzen", + "LabelDisableVibrateOnReset": "Deaktiviere Vibrieren beim Zurücksetzen", "LabelDisableVibrateOnResetHelp": "Wenn der Einschlaf-Timer zurückgesetzt wird, vibriert Ihr Gerät. Aktivieren Sie diese Einstellung, um nicht zu vibrieren, wenn der Einschlaf-Timer zurückgesetzt wird.", "LabelDiscover": "Entdecken", "LabelDownload": "Herunterladen", @@ -121,7 +121,7 @@ "LabelEbook": "E-Book", "LabelEbooks": "Ebooks", "LabelEnable": "Aktivieren", - "LabelEnableMp3IndexSeeking": "Aktiviere MP3-Indexsuche", + "LabelEnableMp3IndexSeeking": "MP3-Indexsuche", "LabelEnableMp3IndexSeekingHelp": "Diese Einstellung sollte nur aktiviert werden, wenn Sie MP3-Dateien haben, bei denen das Navigieren (Seeking) nicht korrekt funktioniert. Ungenaues Navigieren ist höchstwahrscheinlich auf MP3-Dateien mit variabler Bitrate (VBR) zurückzuführen. Diese Einstellung erzwingt das Index-Navigieren (Index Seeking), bei dem eine Zeit-zu-Byte-Zuordnung erstellt wird, während die Datei gelesen wird. In einigen Fällen kann es bei großen MP3-Dateien zu einer Verzögerung kommen, wenn gegen Ende der Datei navigiert wird.", "LabelEnd": "Ende", "LabelEndOfChapter": "Kapitelende", @@ -140,7 +140,7 @@ "LabelHapticFeedback": "Haptische Rückmeldung", "LabelHasEbook": "Hat Ebook", "LabelHasSupplementaryEbook": "Hat zusätzliches Ebook", - "LabelHeavy": "Schwer", + "LabelHeavy": "Stark", "LabelHigh": "Hoch", "LabelHost": "Host", "LabelIncomplete": "Unvollständig", @@ -149,14 +149,14 @@ "LabelJumpBackwardsTime": "Rückspulzeit", "LabelJumpForwardsTime": "Vorwärtsspulzeit", "LabelLanguage": "Sprache", - "LabelLight": "Licht", + "LabelLight": "Leicht", "LabelLineSpacing": "Zeilenabstand", "LabelListenAgain": "Erneut anhören", "LabelLocalBooks": "Lokale Bücher", "LabelLocalPodcasts": "Lokale Podcasts", - "LabelLockOrientation": "Ausrichtung sperren", + "LabelLockOrientation": "automatische Bildschirmausrichtung sperren", "LabelLockPlayer": "Mediaplayer sperren", - "LabelLow": "Niedrig", + "LabelLow": "Wenig", "LabelMediaType": "Medientyp", "LabelMedium": "Mittel", "LabelMore": "Mehr", From 228a1985984919bf3832acbb53042a91abe8a3cb Mon Sep 17 00:00:00 2001 From: Jafeyyu <846373562@qq.com> Date: Thu, 21 Dec 2023 16:09:21 +0800 Subject: [PATCH 02/11] Update zh-cn.json --- strings/zh-cn.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/strings/zh-cn.json b/strings/zh-cn.json index 67e34d85..5575933c 100644 --- a/strings/zh-cn.json +++ b/strings/zh-cn.json @@ -43,7 +43,7 @@ "ButtonSendEbookToDevice": "将电子书发送到设备", "ButtonSeries": "系列", "ButtonSetTimer": "设置定时器", - "ButtonStream": "流", + "ButtonStream": "串流播放", "ButtonSubmit": "提交", "ButtonSwitchServerUser": "切换服务器/用户", "ButtonUserStats": "用户统计信息", @@ -282,4 +282,4 @@ "ToastPodcastCreateSuccess": "已成功创建播客", "ToastRSSFeedCloseFailed": "关闭 RSS 源失败", "ToastRSSFeedCloseSuccess": "RSS 源已关闭" -} \ No newline at end of file +} From 224e5efe4877cb2957a92b4452e2858fd5ec99fd Mon Sep 17 00:00:00 2001 From: benonymity Date: Sat, 23 Dec 2023 01:51:37 -0500 Subject: [PATCH 03/11] add: togglePlayPause route --- ios/App/Shared/player/AudioPlayer.swift | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/ios/App/Shared/player/AudioPlayer.swift b/ios/App/Shared/player/AudioPlayer.swift index 665d776c..8ee98a52 100644 --- a/ios/App/Shared/player/AudioPlayer.swift +++ b/ios/App/Shared/player/AudioPlayer.swift @@ -583,12 +583,31 @@ class AudioPlayer: NSObject { commandCenter.playCommand.isEnabled = true commandCenter.playCommand.addTarget { [weak self] event in - self?.play(allowSeekBack: true) + if (self!.isPlaying()) { + self?.pause() + } else { + self?.play(allowSeekBack: true) + } return .success } + commandCenter.pauseCommand.isEnabled = true commandCenter.pauseCommand.addTarget { [weak self] event in - self?.pause() + if (self!.isPlaying()) { + self?.pause() + } else { + self?.play(allowSeekBack: true) + } + return .success + } + + commandCenter.togglePlayPauseCommand.isEnabled = true + commandCenter.togglePlayPauseCommand.addTarget { [weak self] event in + if (self!.isPlaying()) { + self?.pause() + } else { + self?.play(allowSeekBack: true) + } return .success } From 14b04a14b62de8d90debfdf63a5ea50b29f9ef3e Mon Sep 17 00:00:00 2001 From: advplyr Date: Mon, 25 Dec 2023 15:35:29 -0600 Subject: [PATCH 04/11] Add:Year in review cards to stats page --- android/app/capacitor.build.gradle | 1 + .../src/main/assets/capacitor.plugins.json | 4 + .../com/audiobookshelf/app/MainActivity.kt | 1 + android/capacitor.settings.gradle | 3 + components/stats/YearInReview.vue | 283 ++++++++++++++++++ components/stats/YearInReviewBanner.vue | 134 +++++++++ components/stats/YearInReviewServer.vue | 262 ++++++++++++++++ components/stats/YearInReviewShort.vue | 192 ++++++++++++ ios/App/Podfile | 1 + package-lock.json | 32 +- package.json | 3 +- pages/stats.vue | 16 +- plugins/init.client.js | 17 +- 13 files changed, 939 insertions(+), 10 deletions(-) create mode 100644 components/stats/YearInReview.vue create mode 100644 components/stats/YearInReviewBanner.vue create mode 100644 components/stats/YearInReviewServer.vue create mode 100644 components/stats/YearInReviewShort.vue diff --git a/android/app/capacitor.build.gradle b/android/app/capacitor.build.gradle index a035cf07..c12243cc 100644 --- a/android/app/capacitor.build.gradle +++ b/android/app/capacitor.build.gradle @@ -9,6 +9,7 @@ android { apply from: "../capacitor-cordova-android-plugins/cordova.variables.gradle" dependencies { + implementation project(':byteowls-capacitor-filesharer') implementation project(':capacitor-app') implementation project(':capacitor-browser') implementation project(':capacitor-clipboard') diff --git a/android/app/src/main/assets/capacitor.plugins.json b/android/app/src/main/assets/capacitor.plugins.json index 91ba9d08..a2f6b93a 100644 --- a/android/app/src/main/assets/capacitor.plugins.json +++ b/android/app/src/main/assets/capacitor.plugins.json @@ -1,4 +1,8 @@ [ + { + "pkg": "@byteowls/capacitor-filesharer", + "classpath": "com.byteowls.capacitor.filesharer.FileSharerPlugin" + }, { "pkg": "@capacitor/app", "classpath": "com.capacitorjs.plugins.app.AppPlugin" diff --git a/android/app/src/main/java/com/audiobookshelf/app/MainActivity.kt b/android/app/src/main/java/com/audiobookshelf/app/MainActivity.kt index 94698d15..339954ee 100644 --- a/android/app/src/main/java/com/audiobookshelf/app/MainActivity.kt +++ b/android/app/src/main/java/com/audiobookshelf/app/MainActivity.kt @@ -116,6 +116,7 @@ class MainActivity : BridgeActivity() { override fun onSaveInstanceState(outState: Bundle) { storageHelper.onSaveInstanceState(outState) super.onSaveInstanceState(outState) + outState.clear() } override fun onRestoreInstanceState(savedInstanceState: Bundle) { diff --git a/android/capacitor.settings.gradle b/android/capacitor.settings.gradle index 4d93d79d..e38371ae 100644 --- a/android/capacitor.settings.gradle +++ b/android/capacitor.settings.gradle @@ -2,6 +2,9 @@ include ':capacitor-android' project(':capacitor-android').projectDir = new File('../node_modules/@capacitor/android/capacitor') +include ':byteowls-capacitor-filesharer' +project(':byteowls-capacitor-filesharer').projectDir = new File('../node_modules/@byteowls/capacitor-filesharer/android') + include ':capacitor-app' project(':capacitor-app').projectDir = new File('../node_modules/@capacitor/app/android') diff --git a/components/stats/YearInReview.vue b/components/stats/YearInReview.vue new file mode 100644 index 00000000..4e04ec07 --- /dev/null +++ b/components/stats/YearInReview.vue @@ -0,0 +1,283 @@ + + + \ No newline at end of file diff --git a/components/stats/YearInReviewBanner.vue b/components/stats/YearInReviewBanner.vue new file mode 100644 index 00000000..dee1e155 --- /dev/null +++ b/components/stats/YearInReviewBanner.vue @@ -0,0 +1,134 @@ + + + \ No newline at end of file diff --git a/components/stats/YearInReviewServer.vue b/components/stats/YearInReviewServer.vue new file mode 100644 index 00000000..e6d443d0 --- /dev/null +++ b/components/stats/YearInReviewServer.vue @@ -0,0 +1,262 @@ + + + \ No newline at end of file diff --git a/components/stats/YearInReviewShort.vue b/components/stats/YearInReviewShort.vue new file mode 100644 index 00000000..ae77e987 --- /dev/null +++ b/components/stats/YearInReviewShort.vue @@ -0,0 +1,192 @@ + + + \ No newline at end of file diff --git a/ios/App/Podfile b/ios/App/Podfile index 531fb33f..b29cd4cb 100644 --- a/ios/App/Podfile +++ b/ios/App/Podfile @@ -11,6 +11,7 @@ install! 'cocoapods', :disable_input_output_paths => true def capacitor_pods pod 'Capacitor', :path => '../../node_modules/@capacitor/ios' pod 'CapacitorCordova', :path => '../../node_modules/@capacitor/ios' + pod 'ByteowlsCapacitorFilesharer', :path => '../../node_modules/@byteowls/capacitor-filesharer' pod 'CapacitorApp', :path => '../../node_modules/@capacitor/app' pod 'CapacitorBrowser', :path => '../../node_modules/@capacitor/browser' pod 'CapacitorClipboard', :path => '../../node_modules/@capacitor/clipboard' diff --git a/package-lock.json b/package-lock.json index 953ab15d..62dbdb29 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "audiobookshelf-app", "version": "0.9.70-beta", "dependencies": { + "@byteowls/capacitor-filesharer": "^5.0.0", "@capacitor/android": "^5.0.0", "@capacitor/app": "^5.0.6", "@capacitor/browser": "^5.1.0", @@ -1939,6 +1940,17 @@ "node": ">=6.9.0" } }, + "node_modules/@byteowls/capacitor-filesharer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@byteowls/capacitor-filesharer/-/capacitor-filesharer-5.0.0.tgz", + "integrity": "sha512-LtIMd8Ge94Kj9BQWF+A646drHAkRVC6ulTPZ1InkQtNH4VIy3WfYilN20VZM5KkOvrQ1lslXFIJwquwKptLgmw==", + "dependencies": { + "file-saver": "2.0.5" + }, + "peerDependencies": { + "@capacitor/core": ">=5" + } + }, "node_modules/@capacitor/android": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/@capacitor/android/-/android-5.4.0.tgz", @@ -9195,6 +9207,11 @@ "node": ">=8.9.0" } }, + "node_modules/file-saver": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", + "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" + }, "node_modules/file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", @@ -21078,6 +21095,14 @@ "to-fast-properties": "^2.0.0" } }, + "@byteowls/capacitor-filesharer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@byteowls/capacitor-filesharer/-/capacitor-filesharer-5.0.0.tgz", + "integrity": "sha512-LtIMd8Ge94Kj9BQWF+A646drHAkRVC6ulTPZ1InkQtNH4VIy3WfYilN20VZM5KkOvrQ1lslXFIJwquwKptLgmw==", + "requires": { + "file-saver": "2.0.5" + } + }, "@capacitor/android": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/@capacitor/android/-/android-5.4.0.tgz", @@ -26353,6 +26378,11 @@ } } }, + "file-saver": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", + "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" + }, "file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", @@ -34083,4 +34113,4 @@ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" } } -} \ No newline at end of file +} diff --git a/package.json b/package.json index 69ed6623..63387bc5 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "ionic:serve": "npm run start" }, "dependencies": { + "@byteowls/capacitor-filesharer": "^5.0.0", "@capacitor/android": "^5.0.0", "@capacitor/app": "^5.0.6", "@capacitor/browser": "^5.1.0", @@ -47,4 +48,4 @@ "postcss": "^8.3.5", "tailwindcss": "^3.3.2" } -} \ No newline at end of file +} diff --git a/pages/stats.vue b/pages/stats.vue index e9ff08dd..5c704b0b 100644 --- a/pages/stats.vue +++ b/pages/stats.vue @@ -1,5 +1,8 @@ + + + @@ -58,7 +64,8 @@ export default { data() { return { listeningStats: null, - windowWidth: 0 + windowWidth: 0, + showYearInReviewBanner: false } }, watch: { @@ -103,7 +110,12 @@ export default { console.error('Failed to load listening sesions', err) return [] }) - console.log('Loaded user listening data', this.listeningStats) + + let month = new Date().getMonth() + // January and December show year in review banner + if (month === 11 || month === 0) { + this.showYearInReviewBanner = true + } } }, mounted() { diff --git a/plugins/init.client.js b/plugins/init.client.js index 09c9b34c..14ce222c 100644 --- a/plugins/init.client.js +++ b/plugins/init.client.js @@ -94,26 +94,31 @@ Vue.prototype.$elapsedPretty = (seconds, useFullNames = false) => { return `${hours} ${useFullNames ? `hour${hours === 1 ? '' : 's'}` : 'hr'} ${minutes} ${useFullNames ? `minute${minutes === 1 ? '' : 's'}` : 'min'}` } -Vue.prototype.$elapsedPrettyExtended = (seconds, useDays = true) => { +Vue.prototype.$elapsedPrettyExtended = (seconds, useDays = true, showSeconds = true) => { if (isNaN(seconds) || seconds === null) return '' seconds = Math.round(seconds) - var minutes = Math.floor(seconds / 60) + let minutes = Math.floor(seconds / 60) seconds -= minutes * 60 - var hours = Math.floor(minutes / 60) + let hours = Math.floor(minutes / 60) minutes -= hours * 60 - var days = 0 + let days = 0 if (useDays || Math.floor(hours / 24) >= 100) { days = Math.floor(hours / 24) hours -= days * 24 } - var strs = [] + // If not showing seconds then round minutes up + if (minutes && seconds && !showSeconds) { + if (seconds >= 30) minutes++ + } + + const strs = [] if (days) strs.push(`${days}d`) if (hours) strs.push(`${hours}h`) if (minutes) strs.push(`${minutes}m`) - if (seconds) strs.push(`${seconds}s`) + if (seconds && showSeconds) strs.push(`${seconds}s`) return strs.join(' ') } From d9d31a062034bd0f522ccf9d64924f083a6256fa Mon Sep 17 00:00:00 2001 From: Jafeyyu <846373562@qq.com> Date: Tue, 26 Dec 2023 18:09:17 +0800 Subject: [PATCH 05/11] Update zh-cn.json --- strings/zh-cn.json | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/strings/zh-cn.json b/strings/zh-cn.json index 5575933c..f4c7b595 100644 --- a/strings/zh-cn.json +++ b/strings/zh-cn.json @@ -101,10 +101,12 @@ "LabelClosePlayer": "关闭播放器", "LabelCollapseSeries": "折叠系列", "LabelComplete": "已完成", - "LabelContinueBooks": "Continue Books", - "LabelContinueEpisodes": "Continue Episodes", - "LabelContinueListening": "Continue Listening", - "LabelContinueSeries": "Continue Series", + "LabelContinueBooks": "继续看书", + "LabelContinueEpisodes": "继续剧集", + "LabelContinueListening": "继续收听", + "LabelContinueSeries": "继续收听系列", + "LabelContinueReading": "继续阅读", + "LabelNewestEpisodes": "最新剧集", "LabelCustomTime": "自定义时间", "LabelDescription": "描述", "LabelDisableAudioFadeOut": "禁用音频淡出", @@ -114,7 +116,7 @@ "LabelDisableShakeToResetHelp": "在计时器运行时摇晃设备,或者在计时器到期后2分钟内摇晃设备将重置睡眠计时器。启用此设置可禁用抖动以重置。", "LabelDisableVibrateOnReset": "重置时禁用振动", "LabelDisableVibrateOnResetHelp": "当睡眠计时器重置时,你的设备会振动。启用此设置以在睡眠计时器重置时不振动。", - "LabelDiscover": "Discover", + "LabelDiscover": "发现", "LabelDownload": "下载", "LabelDownloaded": "已下载", "LabelDuration": "持续时间", @@ -151,7 +153,8 @@ "LabelLanguage": "语言", "LabelLight": "轻", "LabelLineSpacing": "行间距", - "LabelListenAgain": "Listen Again", + "LabelListenAgain": "再次收听", + "LabelReadAgain": "再次阅读", "LabelLocalBooks": "本地书籍", "LabelLocalPodcasts": "本地播客", "LabelLockOrientation": "锁定方向", @@ -164,7 +167,7 @@ "LabelName": "名称", "LabelNarrator": "演播者", "LabelNarrators": "演播者", - "LabelNewestAuthors": "Newest Authors", + "LabelNewestAuthors": "最新作者", "LabelNo": "取消", "LabelNotFinished": "未听完", "LabelNotStarted": "未开始", @@ -182,8 +185,8 @@ "LabelPubDate": "出版日期", "LabelPublishYear": "发布年份", "LabelRead": "阅读", - "LabelRecentlyAdded": "Recently Added", - "LabelRecentSeries": "Recent Series", + "LabelRecentlyAdded": "最近添加", + "LabelRecentSeries": "最近添加系列", "LabelRSSFeedCustomOwnerEmail": "自定义所有者电子邮件", "LabelRSSFeedCustomOwnerName": "自定义所有者名称", "LabelRSSFeedPreventIndexing": "防止索引", From e8bea48577eed3c271f3b4ad9dbfc082dc6c2f9e Mon Sep 17 00:00:00 2001 From: advplyr Date: Tue, 26 Dec 2023 16:40:28 -0600 Subject: [PATCH 06/11] Map shelf translation strings --- strings/cs.json | 3 +++ strings/da.json | 3 +++ strings/de.json | 5 ++++- strings/en-us.json | 3 +++ strings/es.json | 3 +++ strings/fr.json | 3 +++ strings/gu.json | 3 +++ strings/hi.json | 3 +++ strings/hr.json | 3 +++ strings/it.json | 5 ++++- strings/lt.json | 3 +++ strings/nl.json | 3 +++ strings/no.json | 3 +++ strings/pl.json | 3 +++ strings/ru.json | 3 +++ strings/sv.json | 3 +++ strings/zh-cn.json | 8 ++++---- 17 files changed, 54 insertions(+), 6 deletions(-) diff --git a/strings/cs.json b/strings/cs.json index e7a8b02d..8d138ae5 100644 --- a/strings/cs.json +++ b/strings/cs.json @@ -104,6 +104,7 @@ "LabelContinueBooks": "Continue Books", "LabelContinueEpisodes": "Continue Episodes", "LabelContinueListening": "Continue Listening", + "LabelContinueReading": "Continue Reading", "LabelContinueSeries": "Continue Series", "LabelCustomTime": "Custom time", "LabelDescription": "Popis", @@ -165,6 +166,7 @@ "LabelNarrator": "Interpret", "LabelNarrators": "Interpreti", "LabelNewestAuthors": "Newest Authors", + "LabelNewestEpisodes": "Newest Episodes", "LabelNo": "No", "LabelNotFinished": "Nedokončeno", "LabelNotStarted": "Nezahájeno", @@ -182,6 +184,7 @@ "LabelPubDate": "Datum vydání", "LabelPublishYear": "Rok vydání", "LabelRead": "Číst", + "LabelReadAgain": "Read Again", "LabelRecentlyAdded": "Recently Added", "LabelRecentSeries": "Recent Series", "LabelRSSFeedCustomOwnerEmail": "Vlastní e-mail vlastníka", diff --git a/strings/da.json b/strings/da.json index d15b5370..408743cb 100644 --- a/strings/da.json +++ b/strings/da.json @@ -104,6 +104,7 @@ "LabelContinueBooks": "Continue Books", "LabelContinueEpisodes": "Continue Episodes", "LabelContinueListening": "Continue Listening", + "LabelContinueReading": "Continue Reading", "LabelContinueSeries": "Continue Series", "LabelCustomTime": "Custom time", "LabelDescription": "Beskrivelse", @@ -165,6 +166,7 @@ "LabelNarrator": "Fortæller", "LabelNarrators": "Fortællere", "LabelNewestAuthors": "Newest Authors", + "LabelNewestEpisodes": "Newest Episodes", "LabelNo": "No", "LabelNotFinished": "Ikke færdig", "LabelNotStarted": "Ikke påbegyndt", @@ -182,6 +184,7 @@ "LabelPubDate": "Udgivelsesdato", "LabelPublishYear": "Udgivelsesår", "LabelRead": "Læst", + "LabelReadAgain": "Read Again", "LabelRecentlyAdded": "Recently Added", "LabelRecentSeries": "Recent Series", "LabelRSSFeedCustomOwnerEmail": "Brugerdefineret ejerens e-mail", diff --git a/strings/de.json b/strings/de.json index 54201b22..60bcda59 100644 --- a/strings/de.json +++ b/strings/de.json @@ -104,6 +104,7 @@ "LabelContinueBooks": "Bücher fortfahren", "LabelContinueEpisodes": "Episoden fortfahren", "LabelContinueListening": "Weiterhören", + "LabelContinueReading": "Continue Reading", "LabelContinueSeries": "Serie fortsetzen", "LabelCustomTime": "Benutzerdefinierte Zeit", "LabelDescription": "Beschreibung", @@ -165,6 +166,7 @@ "LabelNarrator": "Erzähler", "LabelNarrators": "Erzähler", "LabelNewestAuthors": "Neueste Autoren", + "LabelNewestEpisodes": "Newest Episodes", "LabelNo": "Nein", "LabelNotFinished": "nicht beendet", "LabelNotStarted": "Nicht begonnen", @@ -182,6 +184,7 @@ "LabelPubDate": "Veröffentlichungsdatum", "LabelPublishYear": "Jahr", "LabelRead": "Lesen", + "LabelReadAgain": "Read Again", "LabelRecentlyAdded": "Kürzlich hinzugefügt", "LabelRecentSeries": "Aktuelle Serien", "LabelRSSFeedCustomOwnerEmail": "Benutzerdefinierte Eigentümer-E-Mail", @@ -282,4 +285,4 @@ "ToastPodcastCreateSuccess": "Podcast erstellt", "ToastRSSFeedCloseFailed": "RSS-Feed konnte nicht geschlossen werden", "ToastRSSFeedCloseSuccess": "RSS-Feed geschlossen" -} +} \ No newline at end of file diff --git a/strings/en-us.json b/strings/en-us.json index c09aa828..b96c5929 100644 --- a/strings/en-us.json +++ b/strings/en-us.json @@ -104,6 +104,7 @@ "LabelContinueBooks": "Continue Books", "LabelContinueEpisodes": "Continue Episodes", "LabelContinueListening": "Continue Listening", + "LabelContinueReading": "Continue Reading", "LabelContinueSeries": "Continue Series", "LabelCustomTime": "Custom time", "LabelDescription": "Description", @@ -165,6 +166,7 @@ "LabelNarrator": "Narrator", "LabelNarrators": "Narrators", "LabelNewestAuthors": "Newest Authors", + "LabelNewestEpisodes": "Newest Episodes", "LabelNo": "No", "LabelNotFinished": "Not Finished", "LabelNotStarted": "Not Started", @@ -182,6 +184,7 @@ "LabelPubDate": "Pub Date", "LabelPublishYear": "Publish Year", "LabelRead": "Read", + "LabelReadAgain": "Read Again", "LabelRecentlyAdded": "Recently Added", "LabelRecentSeries": "Recent Series", "LabelRSSFeedCustomOwnerEmail": "Custom owner Email", diff --git a/strings/es.json b/strings/es.json index 6b778e85..ec095812 100644 --- a/strings/es.json +++ b/strings/es.json @@ -104,6 +104,7 @@ "LabelContinueBooks": "Continue Books", "LabelContinueEpisodes": "Continue Episodes", "LabelContinueListening": "Continue Listening", + "LabelContinueReading": "Continue Reading", "LabelContinueSeries": "Continue Series", "LabelCustomTime": "Custom time", "LabelDescription": "Descripción", @@ -165,6 +166,7 @@ "LabelNarrator": "Narrador", "LabelNarrators": "Narradores", "LabelNewestAuthors": "Newest Authors", + "LabelNewestEpisodes": "Newest Episodes", "LabelNo": "No", "LabelNotFinished": "No Terminado", "LabelNotStarted": "Sin Iniciar", @@ -182,6 +184,7 @@ "LabelPubDate": "Fecha de Publicación", "LabelPublishYear": "Año de Publicación", "LabelRead": "Leído", + "LabelReadAgain": "Read Again", "LabelRecentlyAdded": "Recently Added", "LabelRecentSeries": "Recent Series", "LabelRSSFeedCustomOwnerEmail": "Email de dueño personalizado", diff --git a/strings/fr.json b/strings/fr.json index 172fe704..31143b0d 100644 --- a/strings/fr.json +++ b/strings/fr.json @@ -104,6 +104,7 @@ "LabelContinueBooks": "Continue Books", "LabelContinueEpisodes": "Continue Episodes", "LabelContinueListening": "Continue Listening", + "LabelContinueReading": "Continue Reading", "LabelContinueSeries": "Continue Series", "LabelCustomTime": "Custom time", "LabelDescription": "Description", @@ -165,6 +166,7 @@ "LabelNarrator": "Narrateur", "LabelNarrators": "Narrateurs", "LabelNewestAuthors": "Newest Authors", + "LabelNewestEpisodes": "Newest Episodes", "LabelNo": "No", "LabelNotFinished": "Non terminé(e)", "LabelNotStarted": "Non Démarré(e)", @@ -182,6 +184,7 @@ "LabelPubDate": "Date de publication", "LabelPublishYear": "Année d’édition", "LabelRead": "Lire", + "LabelReadAgain": "Read Again", "LabelRecentlyAdded": "Recently Added", "LabelRecentSeries": "Recent Series", "LabelRSSFeedCustomOwnerEmail": "Courriel du propriétaire personnalisé", diff --git a/strings/gu.json b/strings/gu.json index acb20c0a..3e4011fc 100644 --- a/strings/gu.json +++ b/strings/gu.json @@ -104,6 +104,7 @@ "LabelContinueBooks": "Continue Books", "LabelContinueEpisodes": "Continue Episodes", "LabelContinueListening": "Continue Listening", + "LabelContinueReading": "Continue Reading", "LabelContinueSeries": "Continue Series", "LabelCustomTime": "Custom time", "LabelDescription": "Description", @@ -165,6 +166,7 @@ "LabelNarrator": "Narrator", "LabelNarrators": "Narrators", "LabelNewestAuthors": "Newest Authors", + "LabelNewestEpisodes": "Newest Episodes", "LabelNo": "No", "LabelNotFinished": "Not Finished", "LabelNotStarted": "Not Started", @@ -182,6 +184,7 @@ "LabelPubDate": "Pub Date", "LabelPublishYear": "Publish Year", "LabelRead": "Read", + "LabelReadAgain": "Read Again", "LabelRecentlyAdded": "Recently Added", "LabelRecentSeries": "Recent Series", "LabelRSSFeedCustomOwnerEmail": "Custom owner Email", diff --git a/strings/hi.json b/strings/hi.json index d8303e39..45bb0c2b 100644 --- a/strings/hi.json +++ b/strings/hi.json @@ -104,6 +104,7 @@ "LabelContinueBooks": "Continue Books", "LabelContinueEpisodes": "Continue Episodes", "LabelContinueListening": "Continue Listening", + "LabelContinueReading": "Continue Reading", "LabelContinueSeries": "Continue Series", "LabelCustomTime": "Custom time", "LabelDescription": "Description", @@ -165,6 +166,7 @@ "LabelNarrator": "Narrator", "LabelNarrators": "Narrators", "LabelNewestAuthors": "Newest Authors", + "LabelNewestEpisodes": "Newest Episodes", "LabelNo": "No", "LabelNotFinished": "Not Finished", "LabelNotStarted": "Not Started", @@ -182,6 +184,7 @@ "LabelPubDate": "Pub Date", "LabelPublishYear": "Publish Year", "LabelRead": "Read", + "LabelReadAgain": "Read Again", "LabelRecentlyAdded": "Recently Added", "LabelRecentSeries": "Recent Series", "LabelRSSFeedCustomOwnerEmail": "Custom owner Email", diff --git a/strings/hr.json b/strings/hr.json index 2dcc207b..29354142 100644 --- a/strings/hr.json +++ b/strings/hr.json @@ -104,6 +104,7 @@ "LabelContinueBooks": "Continue Books", "LabelContinueEpisodes": "Continue Episodes", "LabelContinueListening": "Continue Listening", + "LabelContinueReading": "Continue Reading", "LabelContinueSeries": "Continue Series", "LabelCustomTime": "Custom time", "LabelDescription": "Opis", @@ -165,6 +166,7 @@ "LabelNarrator": "Narrator", "LabelNarrators": "Naratori", "LabelNewestAuthors": "Newest Authors", + "LabelNewestEpisodes": "Newest Episodes", "LabelNo": "No", "LabelNotFinished": "Nedovršeno", "LabelNotStarted": "Not Started", @@ -182,6 +184,7 @@ "LabelPubDate": "Datam izdavanja", "LabelPublishYear": "Godina izdavanja", "LabelRead": "Read", + "LabelReadAgain": "Read Again", "LabelRecentlyAdded": "Recently Added", "LabelRecentSeries": "Recent Series", "LabelRSSFeedCustomOwnerEmail": "Custom owner Email", diff --git a/strings/it.json b/strings/it.json index f9551319..71f87d34 100644 --- a/strings/it.json +++ b/strings/it.json @@ -104,6 +104,7 @@ "LabelContinueBooks": "Continue Books", "LabelContinueEpisodes": "Continue Episodes", "LabelContinueListening": "Continue Listening", + "LabelContinueReading": "Continue Reading", "LabelContinueSeries": "Continue Series", "LabelCustomTime": "Custom time", "LabelDescription": "Descrizione", @@ -165,6 +166,7 @@ "LabelNarrator": "Narratore", "LabelNarrators": "Narratori", "LabelNewestAuthors": "Newest Authors", + "LabelNewestEpisodes": "Newest Episodes", "LabelNo": "No", "LabelNotFinished": "Da Completare", "LabelNotStarted": "Non iniziato", @@ -182,6 +184,7 @@ "LabelPubDate": "Data Pubblicazione", "LabelPublishYear": "Anno Pubblicazione", "LabelRead": "Leggi", + "LabelReadAgain": "Read Again", "LabelRecentlyAdded": "Recently Added", "LabelRecentSeries": "Recent Series", "LabelRSSFeedCustomOwnerEmail": "Email del proprietario personalizzato", @@ -282,4 +285,4 @@ "ToastPodcastCreateSuccess": "Podcast creato Correttamente", "ToastRSSFeedCloseFailed": "Errore chiusura RSS feed", "ToastRSSFeedCloseSuccess": "RSS feed chiuso" -} +} \ No newline at end of file diff --git a/strings/lt.json b/strings/lt.json index 3ff519c7..e64b879f 100644 --- a/strings/lt.json +++ b/strings/lt.json @@ -104,6 +104,7 @@ "LabelContinueBooks": "Continue Books", "LabelContinueEpisodes": "Continue Episodes", "LabelContinueListening": "Continue Listening", + "LabelContinueReading": "Continue Reading", "LabelContinueSeries": "Continue Series", "LabelCustomTime": "Custom time", "LabelDescription": "Aprašymas", @@ -165,6 +166,7 @@ "LabelNarrator": "Skaitytojas", "LabelNarrators": "Skaitytojai", "LabelNewestAuthors": "Newest Authors", + "LabelNewestEpisodes": "Newest Episodes", "LabelNo": "No", "LabelNotFinished": "Nebaigta", "LabelNotStarted": "Nepasileista", @@ -182,6 +184,7 @@ "LabelPubDate": "Publikavimo data", "LabelPublishYear": "Leidimo metai", "LabelRead": "Skaityta", + "LabelReadAgain": "Read Again", "LabelRecentlyAdded": "Recently Added", "LabelRecentSeries": "Recent Series", "LabelRSSFeedCustomOwnerEmail": "Pasirinktinis savininko el. paštas", diff --git a/strings/nl.json b/strings/nl.json index 67eca949..599a3640 100644 --- a/strings/nl.json +++ b/strings/nl.json @@ -104,6 +104,7 @@ "LabelContinueBooks": "Continue Books", "LabelContinueEpisodes": "Continue Episodes", "LabelContinueListening": "Continue Listening", + "LabelContinueReading": "Continue Reading", "LabelContinueSeries": "Continue Series", "LabelCustomTime": "Custom time", "LabelDescription": "Beschrijving", @@ -165,6 +166,7 @@ "LabelNarrator": "Verteller", "LabelNarrators": "Vertellers", "LabelNewestAuthors": "Newest Authors", + "LabelNewestEpisodes": "Newest Episodes", "LabelNo": "No", "LabelNotFinished": "Niet Voltooid", "LabelNotStarted": "Niet Gestart", @@ -182,6 +184,7 @@ "LabelPubDate": "Publicatiedatum", "LabelPublishYear": "Jaar van uitgave", "LabelRead": "Lees", + "LabelReadAgain": "Read Again", "LabelRecentlyAdded": "Recently Added", "LabelRecentSeries": "Recent Series", "LabelRSSFeedCustomOwnerEmail": "Aangepast e-mailadres eigenaar", diff --git a/strings/no.json b/strings/no.json index 91ea0d87..23c12365 100644 --- a/strings/no.json +++ b/strings/no.json @@ -104,6 +104,7 @@ "LabelContinueBooks": "Continue Books", "LabelContinueEpisodes": "Continue Episodes", "LabelContinueListening": "Continue Listening", + "LabelContinueReading": "Continue Reading", "LabelContinueSeries": "Continue Series", "LabelCustomTime": "Custom time", "LabelDescription": "Beskrivelse", @@ -165,6 +166,7 @@ "LabelNarrator": "Forteller", "LabelNarrators": "Fortellere", "LabelNewestAuthors": "Newest Authors", + "LabelNewestEpisodes": "Newest Episodes", "LabelNo": "No", "LabelNotFinished": "Ikke fullført", "LabelNotStarted": "Ikke startet", @@ -182,6 +184,7 @@ "LabelPubDate": "Publiseringsdato", "LabelPublishYear": "Publikasjonsår", "LabelRead": "Les", + "LabelReadAgain": "Read Again", "LabelRecentlyAdded": "Recently Added", "LabelRecentSeries": "Recent Series", "LabelRSSFeedCustomOwnerEmail": "Tilpasset eier Epost", diff --git a/strings/pl.json b/strings/pl.json index 4c97af4a..51126279 100644 --- a/strings/pl.json +++ b/strings/pl.json @@ -104,6 +104,7 @@ "LabelContinueBooks": "Continue Books", "LabelContinueEpisodes": "Continue Episodes", "LabelContinueListening": "Continue Listening", + "LabelContinueReading": "Continue Reading", "LabelContinueSeries": "Continue Series", "LabelCustomTime": "Custom time", "LabelDescription": "Opis", @@ -165,6 +166,7 @@ "LabelNarrator": "Narrator", "LabelNarrators": "Lektorzy", "LabelNewestAuthors": "Newest Authors", + "LabelNewestEpisodes": "Newest Episodes", "LabelNo": "No", "LabelNotFinished": "Nieukończone", "LabelNotStarted": "Nie rozpoęczto", @@ -182,6 +184,7 @@ "LabelPubDate": "Data publikacji", "LabelPublishYear": "Rok publikacji", "LabelRead": "Read", + "LabelReadAgain": "Read Again", "LabelRecentlyAdded": "Recently Added", "LabelRecentSeries": "Recent Series", "LabelRSSFeedCustomOwnerEmail": "Custom owner Email", diff --git a/strings/ru.json b/strings/ru.json index 25c8f1dc..bf4ae655 100644 --- a/strings/ru.json +++ b/strings/ru.json @@ -104,6 +104,7 @@ "LabelContinueBooks": "Продолжить", "LabelContinueEpisodes": "Продолжить эпизоды", "LabelContinueListening": "Продолжить слушать", + "LabelContinueReading": "Continue Reading", "LabelContinueSeries": "Продолжить серии", "LabelCustomTime": "Пользовательское время", "LabelDescription": "Описание", @@ -165,6 +166,7 @@ "LabelNarrator": "Читает", "LabelNarrators": "Чтецы", "LabelNewestAuthors": "Новые авторы", + "LabelNewestEpisodes": "Newest Episodes", "LabelNo": "Нет", "LabelNotFinished": "Не завершено", "LabelNotStarted": "Не запущено", @@ -182,6 +184,7 @@ "LabelPubDate": "Дата публикации", "LabelPublishYear": "Год публикации", "LabelRead": "Читать", + "LabelReadAgain": "Read Again", "LabelRecentlyAdded": "Недавно добавленные", "LabelRecentSeries": "Недавние серии", "LabelRSSFeedCustomOwnerEmail": "Пользовательский Email владельца", diff --git a/strings/sv.json b/strings/sv.json index a739d33c..4eb6b25f 100644 --- a/strings/sv.json +++ b/strings/sv.json @@ -104,6 +104,7 @@ "LabelContinueBooks": "Continue Books", "LabelContinueEpisodes": "Continue Episodes", "LabelContinueListening": "Continue Listening", + "LabelContinueReading": "Continue Reading", "LabelContinueSeries": "Continue Series", "LabelCustomTime": "Custom time", "LabelDescription": "Beskrivning", @@ -165,6 +166,7 @@ "LabelNarrator": "Berättare", "LabelNarrators": "Berättare", "LabelNewestAuthors": "Newest Authors", + "LabelNewestEpisodes": "Newest Episodes", "LabelNo": "No", "LabelNotFinished": "Ej avslutad", "LabelNotStarted": "Inte påbörjad", @@ -182,6 +184,7 @@ "LabelPubDate": "Publiceringsdatum", "LabelPublishYear": "Publiceringsår", "LabelRead": "Läst", + "LabelReadAgain": "Read Again", "LabelRecentlyAdded": "Recently Added", "LabelRecentSeries": "Recent Series", "LabelRSSFeedCustomOwnerEmail": "Anpassad ägarens e-post", diff --git a/strings/zh-cn.json b/strings/zh-cn.json index f4c7b595..4af15313 100644 --- a/strings/zh-cn.json +++ b/strings/zh-cn.json @@ -104,9 +104,8 @@ "LabelContinueBooks": "继续看书", "LabelContinueEpisodes": "继续剧集", "LabelContinueListening": "继续收听", - "LabelContinueSeries": "继续收听系列", "LabelContinueReading": "继续阅读", - "LabelNewestEpisodes": "最新剧集", + "LabelContinueSeries": "继续收听系列", "LabelCustomTime": "自定义时间", "LabelDescription": "描述", "LabelDisableAudioFadeOut": "禁用音频淡出", @@ -154,7 +153,6 @@ "LabelLight": "轻", "LabelLineSpacing": "行间距", "LabelListenAgain": "再次收听", - "LabelReadAgain": "再次阅读", "LabelLocalBooks": "本地书籍", "LabelLocalPodcasts": "本地播客", "LabelLockOrientation": "锁定方向", @@ -168,6 +166,7 @@ "LabelNarrator": "演播者", "LabelNarrators": "演播者", "LabelNewestAuthors": "最新作者", + "LabelNewestEpisodes": "最新剧集", "LabelNo": "取消", "LabelNotFinished": "未听完", "LabelNotStarted": "未开始", @@ -185,6 +184,7 @@ "LabelPubDate": "出版日期", "LabelPublishYear": "发布年份", "LabelRead": "阅读", + "LabelReadAgain": "再次阅读", "LabelRecentlyAdded": "最近添加", "LabelRecentSeries": "最近添加系列", "LabelRSSFeedCustomOwnerEmail": "自定义所有者电子邮件", @@ -285,4 +285,4 @@ "ToastPodcastCreateSuccess": "已成功创建播客", "ToastRSSFeedCloseFailed": "关闭 RSS 源失败", "ToastRSSFeedCloseSuccess": "RSS 源已关闭" -} +} \ No newline at end of file From 5ef8961c331f964e23f62e23074c6d2dcda5a53b Mon Sep 17 00:00:00 2001 From: advplyr Date: Wed, 27 Dec 2023 17:03:36 -0600 Subject: [PATCH 07/11] Fix:Comma separated links on item page --- pages/item/_id/index.vue | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pages/item/_id/index.vue b/pages/item/_id/index.vue index f9a290ba..dec4128d 100644 --- a/pages/item/_id/index.vue +++ b/pages/item/_id/index.vue @@ -54,7 +54,7 @@ {{ $strings.ButtonRead }} {{ ebookFormat }} - {{ (downloadItem || startingDownload) ? 'downloading' : 'download' }} + {{ downloadItem || startingDownload ? 'downloading' : 'download' }} more_vert @@ -79,8 +79,8 @@
{{ podcastAuthor }}
@@ -90,8 +90,8 @@
{{ $strings.LabelSeries }}
@@ -101,16 +101,16 @@
{{ $strings.LabelNarrators }}
{{ $strings.LabelGenres }}
From d5496c2e9ae32cf97f4f9be47210e081e4e84554 Mon Sep 17 00:00:00 2001 From: advplyr Date: Wed, 27 Dec 2023 17:10:57 -0600 Subject: [PATCH 08/11] Fix:Library list view long titles overflowing, clamped to 2 lines #1013 --- components/cards/LazyListBookCard.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/cards/LazyListBookCard.vue b/components/cards/LazyListBookCard.vue index 3b46b9a4..9aebb8df 100644 --- a/components/cards/LazyListBookCard.vue +++ b/components/cards/LazyListBookCard.vue @@ -15,7 +15,7 @@
-

+

#{{ seriesSequence }} {{ displayTitle }}

{{ displayAuthor }}

From 017b6237ca518d677502ed16785ec1f1327a54e0 Mon Sep 17 00:00:00 2001 From: advplyr Date: Wed, 27 Dec 2023 17:23:55 -0600 Subject: [PATCH 09/11] Fix:Filter dialog clear filter button overflow notch on ios #999 --- components/modals/FilterModal.vue | 6 +++--- components/modals/Modal.vue | 2 +- components/ui/Btn.vue | 8 ++++++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/components/modals/FilterModal.vue b/components/modals/FilterModal.vue index ae15f882..e104dd9c 100644 --- a/components/modals/FilterModal.vue +++ b/components/modals/FilterModal.vue @@ -1,12 +1,12 @@