From 81668fe9e7b15f3a50965874add3c1d2f9126f2e Mon Sep 17 00:00:00 2001 From: mrjvs Date: Fri, 29 Dec 2023 18:33:58 +0100 Subject: [PATCH] Fix febbox qualities --- src/providers/embeds/febbox/qualities.ts | 34 ++++++++++++++++-------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/src/providers/embeds/febbox/qualities.ts b/src/providers/embeds/febbox/qualities.ts index 54f8866..1a59177 100644 --- a/src/providers/embeds/febbox/qualities.ts +++ b/src/providers/embeds/febbox/qualities.ts @@ -4,24 +4,36 @@ import { ScrapeContext } from '@/utils/context'; const allowedQualities = ['360', '480', '720', '1080', '4k']; -export async function getStreamQualities(ctx: ScrapeContext, apiQuery: object) { - const mediaRes: { list: { path: string; quality: string; fid?: number }[] } = (await sendRequest(ctx, apiQuery)).data; +interface FebboxQuality { + path: string; + real_quality: string; + fid?: number; +} - const qualityMap = mediaRes.list - .filter((file) => allowedQualities.includes(file.quality.replace('p', ''))) - .map((file) => ({ - url: file.path, - quality: file.quality.replace('p', ''), - })); +function mapToQuality(quality: FebboxQuality): FebboxQuality | null { + console.log(quality); + const q = quality.real_quality.replace('p', '').toLowerCase(); + if (!allowedQualities.includes(q)) return null; + return { + real_quality: q, + path: quality.path, + fid: quality.fid, + }; +} + +export async function getStreamQualities(ctx: ScrapeContext, apiQuery: object) { + const mediaRes: { list: FebboxQuality[] } = (await sendRequest(ctx, apiQuery)).data; + + const qualityMap = mediaRes.list.map((v) => mapToQuality(v)).filter((v): v is FebboxQuality => !!v); const qualities: Record = {}; allowedQualities.forEach((quality) => { - const foundQuality = qualityMap.find((q) => q.quality === quality); - if (foundQuality && foundQuality.url) { + const foundQuality = qualityMap.find((q) => q.real_quality === quality); + if (foundQuality && foundQuality.path) { qualities[quality] = { type: 'mp4', - url: foundQuality.url, + url: foundQuality.path, }; } });