not found reasons + json parsing

This commit is contained in:
mrjvs
2023-09-06 17:40:03 +02:00
parent d325dab162
commit ee2b63034e
4 changed files with 11 additions and 5 deletions

View File

@@ -5,12 +5,11 @@ import { makeFullUrl } from '@/fetchers/common';
import { Fetcher } from '@/fetchers/types';
export function makeStandardFetcher(f: typeof fetch): Fetcher {
const normalFetch: Fetcher = (url, ops) => {
const normalFetch: Fetcher = async (url, ops) => {
const fullUrl = makeFullUrl(url, ops);
const seralizedBody = serializeBody(ops.body);
return f(fullUrl, {
const res = await f(fullUrl, {
method: ops.method,
headers: {
...seralizedBody.headers,
@@ -18,6 +17,10 @@ export function makeStandardFetcher(f: typeof fetch): Fetcher {
},
body: seralizedBody.body,
});
const isJson = res.headers.get('content-type')?.includes('application/json');
if (isJson) return res.json();
return res.text();
};
return normalFetch;

View File

@@ -3,7 +3,8 @@ export type UpdateEventStatus = 'success' | 'failure' | 'notfound' | 'pending';
export type UpdateEvent = {
percentage: number;
status: UpdateEventStatus;
error?: unknown;
error?: unknown; // set when status is failure
reason?: string; // set when status is not-found
};
export type InitEvent = {

View File

@@ -79,6 +79,7 @@ export async function runAllProviders(list: ProviderList, ops: ProviderRunnerOpt
ops.events?.update?.({
percentage: 100,
status: 'notfound',
reason: err.message,
});
continue;
}
@@ -133,6 +134,7 @@ export async function runAllProviders(list: ProviderList, ops: ProviderRunnerOpt
ops.events?.update?.({
percentage: 100,
status: 'notfound',
reason: err.message,
});
continue;
}

View File

@@ -11,7 +11,7 @@ export const flixhqScraper = makeSourcerer({
rank: 100,
async scrapeMovie(ctx) {
const id = await getFlixhqId(ctx, ctx.media);
if (!id) throw new NotFoundError();
if (!id) throw new NotFoundError('no search results match');
const sources = await getFlixhqSources(ctx, id);
const upcloudStream = sources.find((v) => v.embed.toLowerCase() === 'upcloud');