diff --git a/packages/core/src/db/schemas.ts b/packages/core/src/db/schemas.ts index 3a0c6658..cdedfe0f 100644 --- a/packages/core/src/db/schemas.ts +++ b/packages/core/src/db/schemas.ts @@ -667,6 +667,7 @@ export const ParsedFileSchema = z.object({ network: z.string().optional(), container: z.string().optional(), extension: z.string().optional(), + seasonPack: z.boolean().optional(), }); export const ParsedStreamSchema = z.object({ diff --git a/packages/core/src/formatters/base.ts b/packages/core/src/formatters/base.ts index 337f819e..096489d4 100644 --- a/packages/core/src/formatters/base.ts +++ b/packages/core/src/formatters/base.ts @@ -94,6 +94,7 @@ export interface ParseValue { episode: number | null; formattedEpisodes: string | null; seasonEpisode: string[] | null; + seasonPack: boolean | null; seeders: number | null; age: string | null; duration: number | null; @@ -304,6 +305,7 @@ export abstract class BaseFormatter { formattedEpisodes: formattedEpisodeString || null, episodes: stream.parsedFile?.episodes || null, seasonEpisode: seasonEpisode || null, + seasonPack: stream.parsedFile?.seasonPack || null, duration: stream.duration || null, infoHash: stream.torrent?.infoHash || null, age: formattedAge, diff --git a/packages/core/src/parser/file.ts b/packages/core/src/parser/file.ts index 91f42aa2..41ae51ab 100644 --- a/packages/core/src/parser/file.ts +++ b/packages/core/src/parser/file.ts @@ -83,6 +83,7 @@ class FileParser { extension: parsed.extension, seasons: parsed.seasons, episodes: parsed.episodes, + seasonPack: !!(parsed.seasons?.length && !parsed.episodes?.length), }; } } diff --git a/packages/core/src/parser/streams.ts b/packages/core/src/parser/streams.ts index 8327577f..6306c850 100644 --- a/packages/core/src/parser/streams.ts +++ b/packages/core/src/parser/streams.ts @@ -495,6 +495,7 @@ class StreamParser { arrayMerge(folderParsed?.languages, fileParsed?.languages), this.getLanguages(stream, parsedStream) ), + seasonPack: folderParsed?.seasonPack || fileParsed?.seasonPack, }; }