From c8c28655b184cd43a648660cff7312384eb45cec Mon Sep 17 00:00:00 2001 From: Pas <74743263+Pasithea0@users.noreply.github.com> Date: Wed, 30 Apr 2025 09:08:41 -0600 Subject: [PATCH] fix xprime --- src/providers/embeds/xprime.ts | 59 +++++++++++++--------------------- 1 file changed, 22 insertions(+), 37 deletions(-) diff --git a/src/providers/embeds/xprime.ts b/src/providers/embeds/xprime.ts index c177204..a9c1c6d 100644 --- a/src/providers/embeds/xprime.ts +++ b/src/providers/embeds/xprime.ts @@ -139,14 +139,20 @@ export const xprimeStreamboxEmbed = makeEmbed({ rank: 243, async scrape(ctx): Promise { const query = JSON.parse(ctx.url); - let url = showboxBaseUrl; + + let url = `${showboxBaseUrl}?name=${query.title}&year=${query.releaseYear}&fallback_year=${query.releaseYear}`; if (query.type === 'show') { - url += `?id=${query.tmdbId}&season=${query.season}&episode=${query.episode}`; - } else { - url += `?id=${query.tmdbId}`; + url += `&season=${query.season}&episode=${query.episode}`; } + // Old handling in case + // if (query.type === 'show') { + // url += `?id=${query.tmdbId}&season=${query.season}&episode=${query.episode}`; + // } else { + // url += `?id=${query.tmdbId}`; + // } + const data = await ctx.fetcher(url); if (!data) throw new NotFoundError('No response received'); @@ -161,37 +167,22 @@ export const xprimeStreamboxEmbed = makeEmbed({ type: 'srt', })) || []; + const qualityMap: Record = {}; + + Object.entries(data.streams).forEach(([key, value]) => { + const normalizedKey = key.toLowerCase().replace('p', ''); + qualityMap[normalizedKey] = { + type: 'mp4', + url: value as string, + }; + }); + return { stream: [ { id: 'primary', captions, - qualities: { - ...(data.streams['1080p'] && { - 1080: { - type: 'mp4', - url: data.streams['1080p'], - }, - }), - ...(data.streams['720p'] && { - 720: { - type: 'mp4', - url: data.streams['720p'], - }, - }), - ...(data.streams['480p'] && { - 480: { - type: 'mp4', - url: data.streams['480p'], - }, - }), - ...(data.streams['360p'] && { - 360: { - type: 'mp4', - url: data.streams['360p'], - }, - }), - }, + qualities: qualityMap, type: 'file', flags: [flags.CORS_ALLOWED], }, @@ -240,13 +231,7 @@ export const xprimePrimenetEmbed = makeEmbed({ rank: 242, async scrape(ctx): Promise { const query = JSON.parse(ctx.url); - // let url = `${primenetBaseUrl}?id=${query.tmdbId}`; - - // if (query.type === 'show') { - // url += `&season=${query.season}&episode=${query.episode}`; - // } - - let url = `${primenetBaseUrl}?name=${query.title}&year=${query.releaseYear}&fallback_year=${query.releaseYear}`; + let url = `${primenetBaseUrl}?id=${query.tmdbId}`; if (query.type === 'show') { url += `&season=${query.season}&episode=${query.episode}`;