diff --git a/static/player/mode.ts b/static/player/mode.ts index 8e86dce..ecf37f4 100644 --- a/static/player/mode.ts +++ b/static/player/mode.ts @@ -3,17 +3,9 @@ import { showControls } from "./controls"; import { updateSubtitleOptions } from "./subtitles"; import { updateQualityOptions } from "./quality"; import { safeLocalStorage } from "./storage"; +import { streamUrlForMode } from "./source"; import { loadVideoSource } from "./video"; -// builds stream URL with mode, token, and optional quality param -const streamUrlForMode = (mode: string, quality?: string): string => { - const src = state.modeSources[mode]; - if (!src?.token) return ""; - let url = `${state.streamURL}?mode=${encodeURIComponent(mode)}&token=${encodeURIComponent(src.token)}`; - if (quality && quality !== "best") url += `&quality=${encodeURIComponent(quality)}`; - return url; -}; - /** * Switches between sub/dub mode. * Saves preference to localStorage, reloads video src. diff --git a/static/player/quality.ts b/static/player/quality.ts index 4e14fea..20befdc 100644 --- a/static/player/quality.ts +++ b/static/player/quality.ts @@ -1,16 +1,8 @@ import { state } from "./state"; +import { streamUrlForMode } from "./source"; import { safeLocalStorage } from "./storage"; import { loadVideoSource } from "./video"; -// same as mode.ts - could be extracted to shared util -const streamUrlForMode = (mode: string, quality?: string): string => { - const src = state.modeSources[mode]; - if (!src?.token) return ""; - let url = `${state.streamURL}?mode=${encodeURIComponent(mode)}&token=${encodeURIComponent(src.token)}`; - if (quality && quality !== "best") url += `&quality=${encodeURIComponent(quality)}`; - return url; -}; - /** * Switches video quality (resolution). * Persists preference to localStorage. diff --git a/static/player/source.ts b/static/player/source.ts new file mode 100644 index 0000000..ec786ca --- /dev/null +++ b/static/player/source.ts @@ -0,0 +1,13 @@ +import { state } from "./state"; + +export const streamUrlForMode = (mode: string, quality?: string): string => { + const src = state.modeSources[mode]; + if (!src?.token) return ""; + + let url = `${state.streamURL}?mode=${encodeURIComponent(mode)}&token=${encodeURIComponent(src.token)}`; + if (quality && quality !== "best") { + url += `&quality=${encodeURIComponent(quality)}`; + } + + return url; +};