From 976bdd8e2d14049c766a654a7575f9f5109c7395 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Fri, 7 Feb 2025 00:35:29 +0100 Subject: fix player for new api --- web/script/player/player.ts | 29 ++++++++++------------------- 1 file 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) { - 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 -- cgit v1.2.3-70-g09d2