From 2c1d6a3dca413f385375bc93946cf177c914fd3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20H=C3=A5rek=20Andreassen?= Date: Sun, 7 Apr 2024 00:03:27 +0200 Subject: [PATCH] refactor: Rename function MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tim HÄrek Andreassen --- lib/nrk.ts | 54 +++++++++++++++++++++++++++--------------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/lib/nrk.ts b/lib/nrk.ts index b087086..f25bb27 100644 --- a/lib/nrk.ts +++ b/lib/nrk.ts @@ -19,34 +19,8 @@ export type SearchResult = ArrayElement & { description?: string; }; -type Manifest = playbackComponents["schemas/playback-channel.json"]["components"]["schemas"]["PlayableManifest"]; - const nrkAPI = `https://psapi.nrk.no`; -async function withDownloadLink( - episode: PodcastEpisodesSingle, - type: catalogComponents["schemas"]["Type"], -): Promise { - // getting stream link - let { status: playbackStatus, body: playbackResponse } = await get( - `${nrkAPI}/playback/manifest/podcast/${episode.episodeId}`, - ); - - if (type === "series") { - const { status, body } = await get( - `${nrkAPI}/playback/manifest/program/${episode.episodeId}`, - ); - playbackStatus = status; - playbackResponse = body; - } - - if (playbackStatus === STATUS_CODE.OK && playbackResponse) { - return { ...episode, url: playbackResponse.playable.assets[0].url }; - } else { - throw `Error getting downloadLink for ${episode.episodeId}, serie: ${episode.originalTitle}. Status: ${playbackStatus}`; - } -} - async function search(query: string): Promise { if (query === "") { console.error("Empty search query."); @@ -97,7 +71,7 @@ async function getSerieData( serieResponse?.series && episodeResponse?._embedded.episodes?.length ) { const episodes = await Promise.all( - episodeResponse._embedded.episodes.map((episode) => withDownloadLink(episode, serieResponse.type)), + episodeResponse._embedded.episodes.map((episode) => getEpisodeWithDownloadLink(episode, serieResponse.type)), ); return { ...serieResponse.series, @@ -120,6 +94,32 @@ async function getEpisode(seriesId: string, episodeId: string): Promise { + // getting stream link + let { status: playbackStatus, body: playbackResponse } = await get( + `${nrkAPI}/playback/manifest/podcast/${episode.episodeId}`, + ); + + if (type === "series") { + const { status, body } = await get( + `${nrkAPI}/playback/manifest/program/${episode.episodeId}`, + ); + playbackStatus = status; + playbackResponse = body; + } + + if (playbackStatus === STATUS_CODE.OK && playbackResponse) { + return { ...episode, url: playbackResponse.playable.assets[0].url }; + } else { + throw `Error getting downloadLink for ${episode.episodeId}, serie: ${episode.originalTitle}. Status: ${playbackStatus}`; + } +} + export const nrkRadio = { search, getSerieData,