From 3779ea09d392ffb3f14b7efcba989ec7cc44bf89 Mon Sep 17 00:00:00 2001 From: Viren070 Date: Mon, 16 Jun 2025 02:22:38 +0100 Subject: [PATCH] feat: improve handling of unsupport meta id and type --- packages/core/src/main.ts | 13 +++++++++---- packages/core/src/transformers/stremio.ts | 8 +++++++- packages/server/src/routes/stremio/meta.ts | 8 ++++++-- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/packages/core/src/main.ts b/packages/core/src/main.ts index 673a86b1..172cd930 100644 --- a/packages/core/src/main.ts +++ b/packages/core/src/main.ts @@ -410,10 +410,15 @@ export class AIOStreams { } if (candidates.length === 0) { - logger.error(`No addon found supporting meta resource for type ${type}`); - throw new Error( - `No addon found supporting meta resource for type ${type}` - ); + logger.warn(`No supported addon was found for the requested meta`, { + type, + id, + }); + return { + success: false, + data: null, + errors: [], + }; } // Try each candidate in order, collecting errors diff --git a/packages/core/src/transformers/stremio.ts b/packages/core/src/transformers/stremio.ts index 69b4d154..c5f1f2df 100644 --- a/packages/core/src/transformers/stremio.ts +++ b/packages/core/src/transformers/stremio.ts @@ -201,9 +201,15 @@ export class StremioTransformer { }; } - transformMeta(response: AIOStreamsResponse): MetaResponse { + transformMeta( + response: AIOStreamsResponse + ): MetaResponse | null { const { data: meta, errors } = response; + if (!meta && errors.length === 0) { + return null; + } + if (this.showError('meta', errors) || !meta) { return { meta: StremioTransformer.createErrorMeta({ diff --git a/packages/server/src/routes/stremio/meta.ts b/packages/server/src/routes/stremio/meta.ts index 5f00aae9..fb2b664f 100644 --- a/packages/server/src/routes/stremio/meta.ts +++ b/packages/server/src/routes/stremio/meta.ts @@ -34,8 +34,12 @@ router.get( await aiostreams.initialise(); const meta = await aiostreams.getMeta(type, id); - - res.status(200).json(transformer.transformMeta(meta)); + const transformed = transformer.transformMeta(meta); + if (!transformed) { + next(); + } else { + res.status(200).json(transformed); + } } catch (error) { next(error); }