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); }