refactor: Rename function

Signed-off-by: Tim Hårek Andreassen <tim@harek.no>
This commit is contained in:
Tim Hårek Andreassen 2024-04-07 00:03:27 +02:00
parent 52b7cf7a13
commit 2c1d6a3dca
No known key found for this signature in database
GPG Key ID: E59C7734F0E10EB5
1 changed files with 27 additions and 27 deletions

View File

@ -19,34 +19,8 @@ export type SearchResult = ArrayElement<SearchResultList> & {
description?: string; description?: string;
}; };
type Manifest = playbackComponents["schemas/playback-channel.json"]["components"]["schemas"]["PlayableManifest"];
const nrkAPI = `https://psapi.nrk.no`; const nrkAPI = `https://psapi.nrk.no`;
async function withDownloadLink(
episode: PodcastEpisodesSingle,
type: catalogComponents["schemas"]["Type"],
): Promise<OriginalEpisode> {
// getting stream link
let { status: playbackStatus, body: playbackResponse } = await get<Manifest>(
`${nrkAPI}/playback/manifest/podcast/${episode.episodeId}`,
);
if (type === "series") {
const { status, body } = await get<Manifest>(
`${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<SearchResultList | null> { async function search(query: string): Promise<SearchResultList | null> {
if (query === "") { if (query === "") {
console.error("Empty search query."); console.error("Empty search query.");
@ -97,7 +71,7 @@ async function getSerieData(
serieResponse?.series && episodeResponse?._embedded.episodes?.length serieResponse?.series && episodeResponse?._embedded.episodes?.length
) { ) {
const episodes = await Promise.all( const episodes = await Promise.all(
episodeResponse._embedded.episodes.map((episode) => withDownloadLink(episode, serieResponse.type)), episodeResponse._embedded.episodes.map((episode) => getEpisodeWithDownloadLink(episode, serieResponse.type)),
); );
return { return {
...serieResponse.series, ...serieResponse.series,
@ -120,6 +94,32 @@ async function getEpisode(seriesId: string, episodeId: string): Promise<PodcastE
return null; return null;
} }
type Manifest = playbackComponents["schemas/playback-channel.json"]["components"]["schemas"]["PlayableManifest"];
async function getEpisodeWithDownloadLink(
episode: PodcastEpisodesSingle,
type: catalogComponents["schemas"]["Type"],
): Promise<OriginalEpisode> {
// getting stream link
let { status: playbackStatus, body: playbackResponse } = await get<Manifest>(
`${nrkAPI}/playback/manifest/podcast/${episode.episodeId}`,
);
if (type === "series") {
const { status, body } = await get<Manifest>(
`${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 = { export const nrkRadio = {
search, search,
getSerieData, getSerieData,