From e822356e46ab84a85dfc4b6efda77d527613c7df Mon Sep 17 00:00:00 2001 From: Pas <74743263+Pasithea0@users.noreply.github.com> Date: Wed, 20 Aug 2025 10:03:46 -0600 Subject: [PATCH] Update valid.ts --- src/utils/valid.ts | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/src/utils/valid.ts b/src/utils/valid.ts index 6724db7..043ddc1 100644 --- a/src/utils/valid.ts +++ b/src/utils/valid.ts @@ -1,5 +1,6 @@ // import { alphaScraper, deltaScraper } from '@/providers/embeds/nsbx'; // import { astraScraper, novaScraper, orionScraper } from '@/providers/embeds/whvx'; +import { bombtheirishScraper } from '@/providers/archive/sources/bombtheirish'; import { warezcdnembedMp4Scraper } from '@/providers/embeds/warezcdn/mp4'; import { Stream } from '@/providers/streams'; import { IndividualEmbedRunnerOptions } from '@/runners/individualRunner'; @@ -14,6 +15,11 @@ const SKIP_VALIDATION_CHECK_IDS = [ // orionScraper.id, ]; +const UNPROXIED_VALIDATION_CHECK_IDS = [ + // sources here are always proxied, so we dont need to validate with a proxy + bombtheirishScraper.id, // this one is dead, but i'll keep it here for now +]; + export function isValidStream(stream: Stream | undefined): boolean { if (!stream) return false; if (stream.type === 'hls') { @@ -45,11 +51,13 @@ export async function validatePlayableStream( ): Promise { if (SKIP_VALIDATION_CHECK_IDS.includes(sourcererId)) return stream; + const alwaysUseNormalFetch = UNPROXIED_VALIDATION_CHECK_IDS.includes(sourcererId); + if (stream.type === 'hls') { // dirty temp fix for base64 urls to prep for fmhy poll if (stream.playlist.startsWith('data:')) return stream; - const useNormalFetch = isAlreadyProxyUrl(stream.playlist); + const useNormalFetch = alwaysUseNormalFetch || isAlreadyProxyUrl(stream.playlist); let result; if (useNormalFetch) { @@ -82,10 +90,11 @@ export async function validatePlayableStream( if (result.statusCode < 200 || result.statusCode >= 400) return null; return stream; } + if (stream.type === 'file') { const validQualitiesResults = await Promise.all( Object.values(stream.qualities).map(async (quality) => { - const useNormalFetch = isAlreadyProxyUrl(quality.url); + const useNormalFetch = alwaysUseNormalFetch || isAlreadyProxyUrl(quality.url); if (useNormalFetch) { try { @@ -105,16 +114,16 @@ export async function validatePlayableStream( } catch (error) { return { statusCode: 500, body: '', finalUrl: quality.url }; } - } else { - return ops.proxiedFetcher.full(quality.url, { - method: 'GET', - headers: { - ...stream.preferredHeaders, - ...stream.headers, - Range: 'bytes=0-1', - }, - }); } + + return ops.proxiedFetcher.full(quality.url, { + method: 'GET', + headers: { + ...stream.preferredHeaders, + ...stream.headers, + Range: 'bytes=0-1', + }, + }); }), ); // remove invalid qualities from the stream @@ -128,6 +137,7 @@ export async function validatePlayableStream( if (Object.keys(validQualities).length === 0) return null; return { ...stream, qualities: validQualities }; } + return null; }