From c6f92ab6b4a2df4726883f45d0b4ad7b59e7e732 Mon Sep 17 00:00:00 2001 From: Viren070 Date: Mon, 20 Oct 2025 22:03:47 +0100 Subject: [PATCH] fix(metadata/tvdb): handle season result --- packages/core/src/metadata/tvdb.ts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/packages/core/src/metadata/tvdb.ts b/packages/core/src/metadata/tvdb.ts index 7a14b9bf..9506fd81 100644 --- a/packages/core/src/metadata/tvdb.ts +++ b/packages/core/src/metadata/tvdb.ts @@ -1,8 +1,8 @@ import { createLogger } from '../utils/logger.js'; -import { Cache, DistributedLock, Env, ParsedId } from '../utils/index.js'; +import { Cache, Env, formatZodError, ParsedId } from '../utils/index.js'; import { Metadata } from './utils.js'; import { makeRequest } from '../utils/http.js'; -import { z } from 'zod'; +import { z, ZodError } from 'zod'; const logger = createLogger('tvdb'); @@ -121,10 +121,13 @@ const TVDBSeriesSchema = z.object({ const TVDBEpisodeSchema = z.looseObject({}); +const TVDBSeasonSchema = z.looseObject({}); + const TVDBRemoteIdDataSchema = z.union([ z.object({ movie: TVDBMovieSchema }), z.object({ series: TVDBSeriesSchema }), z.object({ episode: TVDBEpisodeSchema }), + z.object({ season: TVDBSeasonSchema }), ]); export const RemoteIdSearchResponseSchema = z.discriminatedUnion('status', [ @@ -405,12 +408,11 @@ class TVDBApi { return schema.parse(data); } catch (error) { - logger.error( - `Request to ${path} failed: ${error instanceof Error ? error.message : 'Unknown error'}` + throw new Error( + error instanceof ZodError + ? `Failed to parse response from TVDB: ${formatZodError(error)}` + : `Request to TVDB API failed: ${error instanceof Error ? error.message : 'Unknown error'}` ); - throw error instanceof Error - ? error - : new Error('Unknown error occurred'); } } }