2 changed files with 58 additions and 26 deletions
@ -0,0 +1,55 @@
@@ -0,0 +1,55 @@
|
||||
import { ScrapeMedia } from "@movie-web/providers"; |
||||
|
||||
function scrapeMediaToQueryMedia(media: ScrapeMedia) { |
||||
let extra: Record<string, string> = {}; |
||||
if (media.type === "show") { |
||||
extra = { |
||||
episodeNumber: media.episode.number.toString(), |
||||
episodeTmdbId: media.episode.tmdbId, |
||||
seasonNumber: media.season.number.toString(), |
||||
seasonTmdbId: media.season.tmdbId, |
||||
}; |
||||
} |
||||
|
||||
return { |
||||
type: media.type, |
||||
releaseYear: media.releaseYear.toString(), |
||||
imdbId: media.imdbId, |
||||
title: media.title, |
||||
...extra, |
||||
}; |
||||
} |
||||
|
||||
function addQueryDataToUrl(url: URL, data: Record<string, string | undefined>) { |
||||
Object.entries(data).forEach((entry) => { |
||||
if (entry[1]) url.searchParams.set(entry[0], entry[1]); |
||||
}); |
||||
} |
||||
|
||||
export function makeProviderUrl(base: string) { |
||||
const makeUrl = (p: string) => new URL(`${base}${p}`); |
||||
return { |
||||
scrapeSource(sourceId: string, media: ScrapeMedia) { |
||||
const url = makeUrl("/scrape/source"); |
||||
addQueryDataToUrl(url, scrapeMediaToQueryMedia(media)); |
||||
addQueryDataToUrl(url, { id: sourceId }); |
||||
return url.toString(); |
||||
}, |
||||
scrapeAll(media: ScrapeMedia) { |
||||
const url = makeUrl("/scrape"); |
||||
addQueryDataToUrl(url, scrapeMediaToQueryMedia(media)); |
||||
return url.toString(); |
||||
}, |
||||
scrapeEmbed(embedId: string, embedUrl: string) { |
||||
const url = makeUrl("/scrape/embed"); |
||||
addQueryDataToUrl(url, { id: embedId, url: embedUrl }); |
||||
return url.toString(); |
||||
}, |
||||
}; |
||||
} |
||||
|
||||
export function connectServerSideEvents(url: string, endEvents: string[]) { |
||||
const; |
||||
|
||||
return {}; |
||||
} |
Loading…
Reference in new issue