diff --git a/package.json b/package.json index 2ca4eec..9da4a81 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ui", - "version": "6.4.153", + "version": "6.4.154", "license": "BUSL-1.1", "private": true, "packageManager": "pnpm@9.15.5", diff --git a/src/lib/components/ui/player/player.svelte b/src/lib/components/ui/player/player.svelte index 9bc02db..36b08a2 100644 --- a/src/lib/components/ui/player/player.svelte +++ b/src/lib/components/ui/player/player.svelte @@ -429,12 +429,13 @@ let openSubs: () => Promise - function cycleSubtitles () { + function cycleSubtitles (e: KeyboardEvent | MouseEvent) { if (!subtitles) return const entries = Object.entries(subtitles._tracks.value) if (!entries.length) return - const index = entries.findIndex(([index]) => index === subtitles!.current.value) + 1 - const [id, info] = entries[index] ?? [-1, { meta: { name: 'Off', language: 'Eng' } }] + const offset = e.shiftKey ? -1 : 1 + const index = entries.findIndex(([index]) => index === subtitles!.current.value) + offset + const [id, info] = entries.at(index) ?? [-1, { meta: { name: 'Off', language: 'Eng' } }] playAnimation(info.meta.name ?? info.meta.language ?? 'Eng') subtitles.selectCaptions(id) } @@ -476,9 +477,7 @@ }, Space: { fn: (e) => { - e.preventDefault() - e.stopImmediatePropagation() - e.stopPropagation() + if ('repeat' in e && e.repeat) return playPause() }, id: 'play_arrow', @@ -550,7 +549,7 @@ // desc: 'Toggle Cast [broken]' // }, KeyC: { - fn: () => cycleSubtitles(), + fn: (e) => cycleSubtitles(e), id: 'subtitles', icon: Captions, type: 'icon', @@ -674,6 +673,7 @@ if (isMiniplayer) return if ('code' in event && (event.code !== 'Space')) return if ('button' in event && event.button !== 0) return + if ('repeat' in event && event.repeat) return if ('pointerId' in event) { document.setPointerCapture(event.pointerId) } diff --git a/src/lib/modules/auth/client.ts b/src/lib/modules/auth/client.ts index bd64bb6..45869ba 100644 --- a/src/lib/modules/auth/client.ts +++ b/src/lib/modules/auth/client.ts @@ -116,7 +116,7 @@ export default new class AuthAggregator { }) async watch (outdated: Media, progress: number) { - const media = (await client.single(outdated.id)).data?.Media ?? outdated + const media = (await client.single(outdated.id, navigator.onLine ? 'network-only' : 'cache-first')).data?.Media ?? outdated const totalEps = episodes(media) ?? 1 // episodes or movie which is single episode if (totalEps < progress) return // woah, bad data from resolver?! diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 5076506..6d69c4f 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -34,7 +34,7 @@
- + {#each spotlightData as s, i (i)}
+