aboutsummaryrefslogtreecommitdiff
path: root/web
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-02-07 00:35:29 +0100
committermetamuffin <metamuffin@disroot.org>2025-02-07 00:35:29 +0100
commit976bdd8e2d14049c766a654a7575f9f5109c7395 (patch)
tree2ca8f5c71b6acfcdf22b620bae29f4c267c9624d /web
parenta09c817514913abbf54013cc340a45eb3e31ddd9 (diff)
downloadjellything-976bdd8e2d14049c766a654a7575f9f5109c7395.tar
jellything-976bdd8e2d14049c766a654a7575f9f5109c7395.tar.bz2
jellything-976bdd8e2d14049c766a654a7575f9f5109c7395.tar.zst
fix player for new api
Diffstat (limited to 'web')
-rw-r--r--web/script/player/player.ts29
1 files changed, 10 insertions, 19 deletions
diff --git a/web/script/player/player.ts b/web/script/player/player.ts
index 4eb01d5..e0a6ddf 100644
--- a/web/script/player/player.ts
+++ b/web/script/player/player.ts
@@ -36,7 +36,7 @@ export class Player {
}
constructor(public node_id: string, public logger?: Logger<string>) {
- this.video.poster = `/n/${encodeURIComponent(node_id)}/asset?role=poster`
+ this.video.poster = `/n/${encodeURIComponent(node_id)}/poster`
this.volume.value = this.video.volume
let skip_change = false;
this.volume.onchange(v => {
@@ -101,28 +101,19 @@ export class Player {
async fetch_meta() {
this.set_pers("Loading metadata...")
- const [res, udres] = await Promise.all([
- fetch(`/n/${encodeURIComponent(this.node_id)}`, { headers: { "Accept": "application/json" } }),
- fetch(`/n/${encodeURIComponent(this.node_id)}/userdata`, { headers: { "Accept": "application/json" } })
- ])
+ const res = await fetch(`/n/${encodeURIComponent(this.node_id)}`, { headers: { "Accept": "application/json" } })
+ if (!res.ok) return this.error.value = "Cannot download node."
- if (!res.ok || !udres.ok) return this.error.value = "Cannot download node."
-
- let metadata!: NodePublic & { error: string }
- try { metadata = await res.json() }
+ let ndata!: { node: NodePublic, userdata: NodeUserData } & { error: string }
+ try { ndata = await res.json() }
catch (_) { this.set_pers("Error: Node data invalid") }
- if (metadata.error) return this.set_pers("server error: " + metadata.error)
-
- let userdata!: NodeUserData & { error: string }
- try { userdata = await udres.json() }
- catch (_) { this.set_pers("Error: Node user data invalid") }
- if (userdata.error) return this.set_pers("server error: " + metadata.error)
+ if (ndata.error) return this.set_pers("server error: " + ndata.error)
this.set_pers()
//! bad code: assignment order is important because chapter callbacks use duration
- this.duration.value = metadata.media!.duration
- this.chapters.value = metadata.media!.chapters
- this.tracks = metadata.media!.tracks
+ this.duration.value = ndata.node.media!.duration
+ this.chapters.value = ndata.node.media!.chapters
+ this.tracks = ndata.node.media!.tracks
this.video.src = URL.createObjectURL(this.media_source)
this.media_source.addEventListener("sourceopen", async () => {
@@ -139,7 +130,7 @@ export class Player {
}
this.set_pers("Buffering initial stream fragments...")
- const start_time = get_query_start_time() ?? get_continue_time(userdata.watched);
+ const start_time = get_query_start_time() ?? get_continue_time(ndata.userdata.watched);
this.update(start_time)
this.video.currentTime = start_time