diff options
| -rw-r--r-- | server/src/ui_responder.rs | 6 | ||||
| -rw-r--r-- | ui/client-scripts/src/player/mod.ts | 11 | ||||
| -rw-r--r-- | ui/client-scripts/src/player/types_node.ts | 76 |
3 files changed, 8 insertions, 85 deletions
diff --git a/server/src/ui_responder.rs b/server/src/ui_responder.rs index 7333175..eb503a1 100644 --- a/server/src/ui_responder.rs +++ b/server/src/ui_responder.rs @@ -5,9 +5,7 @@ */ use crate::request_info::RequestInfo; -use jellycommon::{ - jellyobject::{ObjectBuffer, json::object_to_json}, -}; +use jellycommon::jellyobject::{ObjectBuffer, json::object_to_json}; use jellyui::render_view; use rocket::response::{ Responder, @@ -22,7 +20,7 @@ pub enum UiResponse { impl RequestInfo<'_> { pub fn respond_ui(&self, view: ObjectBuffer) -> UiResponse { - if self.debug == "json" { + if self.accept.is_json() || self.debug == "json" { let value = object_to_json(view.as_object()); UiResponse::Json(serde_json::to_string(&value).unwrap()) } else if self.debug == "raw" { diff --git a/ui/client-scripts/src/player/mod.ts b/ui/client-scripts/src/player/mod.ts index 6f09ede..9b32c26 100644 --- a/ui/client-scripts/src/player/mod.ts +++ b/ui/client-scripts/src/player/mod.ts @@ -10,7 +10,7 @@ import { Logger } from "../jshelper/src/log.ts"; import { Player } from "./player.ts"; import { Popup } from "./popup.ts"; import { Playersync, playersync_controls } from "./sync.ts" -import { Chapter, NodePublic, NodeUserData } from "./types_node.ts"; +import { Chapter } from "./types_node.ts"; import { FormatInfo, TrackKind } from "./types_stream.ts"; globalThis.addEventListener("DOMContentLoaded", () => { @@ -65,10 +65,11 @@ function initialize_player(node_id: string): HTMLElement { return res.json() }) .catch(() => logger.log_persistent("Node data failed to download")) - .then(ndata_ => { - const ndata = ndata_ as { node: NodePublic, userdata: NodeUserData } - console.log(ndata.node.media!.chapters); - chapters.value = ndata.node.media!.chapters + .then(view => { + console.log("got node page view", view); + // const ndata = ndata_ as { node: NodePublic, userdata: NodeUserData } + // console.log(ndata.node.media!.chapters); + // chapters.value = ndata.node.media!.chapters }) //@ts-ignore for debugging diff --git a/ui/client-scripts/src/player/types_node.ts b/ui/client-scripts/src/player/types_node.ts deleted file mode 100644 index 64f01e5..0000000 --- a/ui/client-scripts/src/player/types_node.ts +++ /dev/null @@ -1,76 +0,0 @@ -/* - This file is part of jellything (https://codeberg.org/metamuffin/jellything) - which is licensed under the GNU Affero General Public License (version 3); see /COPYING. - Copyright (C) 2026 metamuffin <metamuffin.org> -*/ - -export interface NodePublic { - kind: NodeKind, - title?: string, - tagline?: string, - description?: string, - id?: string, - path: string[], - children: string[], - release_date?: string, - index?: number, - media?: MediaInfo, - ratings: { [key in Rating]: number }, - // might be incomplete -} - -export type NodeKind = "movie" - | "video" - | "collection" - | "channel" - | "show" - | "series" - | "season" - | "episode" - -export type Rating = "imdb" - | "tmdb" - | "rotten_tomatoes" - | "metacritic" - | "youtube_views" - | "youtube_likes" - | "youtube_followers" - -export interface MediaInfo { - duration: number, - tracks: SourceTrack[], - chapters: Chapter[], -} - -export interface Chapter { - time_start?: number, - time_end?: number, - labels: { [key: string]: string } -} - -export interface SourceTrack { - kind: SourceTrackKind, - name: string, - codec: string, - language: string, -} -export type SourceTrackKind = { - video: { - width: number, - height: number, - fps: number, - } -} - | { - audio: { - channels: number, - sample_rate: number, - bit_depth: number, - } - } | "subtitle"; - -export interface NodeUserData { - watched: WatchedState -} -export type WatchedState = "none" | "watched" | "pending" | { progress: number } - |