From b4da2afa463069c21ba2cf4d8278040e61f4ee8a Mon Sep 17 00:00:00 2001 From: Viren070 Date: Mon, 17 Nov 2025 15:24:24 +0000 Subject: [PATCH] chore(presets): add CATEGORY field to presets for better categorization --- packages/core/src/db/schemas.ts | 1 + packages/core/src/presets/aiCompanion.ts | 1 + packages/core/src/presets/aiSearch.ts | 1 + packages/core/src/presets/aiostreams.ts | 1 + packages/core/src/presets/aiosubtitle.ts | 8 +++++++- packages/core/src/presets/animeCatalogs.ts | 1 + packages/core/src/presets/animeKitsu.ts | 1 + packages/core/src/presets/contentDeepDive.ts | 1 + packages/core/src/presets/custom.ts | 1 + packages/core/src/presets/dcUniverse.ts | 1 + packages/core/src/presets/debridioTmdb.ts | 1 + packages/core/src/presets/debridioTvdb.ts | 1 + packages/core/src/presets/doctorWhoUniverse.ts | 1 + packages/core/src/presets/marvel.ts | 1 + packages/core/src/presets/moreLikeThis.ts | 1 + .../core/src/presets/opensubtitles-v3-plus.ts | 8 +++++++- packages/core/src/presets/opensubtitles.ts | 8 +++++++- packages/core/src/presets/presetManager.ts | 1 + packages/core/src/presets/rpdbCatalogs.ts | 1 + packages/core/src/presets/starWarsUniverse.ts | 1 + packages/core/src/presets/streamingCatalogs.ts | 1 + packages/core/src/presets/subdl.ts | 8 +++++++- packages/core/src/presets/subhero.ts | 2 ++ packages/core/src/presets/subsource.ts | 8 +++++++- packages/core/src/presets/tmdb.ts | 1 + packages/core/src/presets/tmdbCollections.ts | 1 + packages/core/src/presets/torrentCatalogs.ts | 1 + packages/core/src/utils/constants.ts | 18 ++++++++++++++++++ 28 files changed, 76 insertions(+), 5 deletions(-) diff --git a/packages/core/src/db/schemas.ts b/packages/core/src/db/schemas.ts index cdedfe0f..194f2ed3 100644 --- a/packages/core/src/db/schemas.ts +++ b/packages/core/src/db/schemas.ts @@ -933,6 +933,7 @@ const PresetMinimalMetadataSchema = z.object({ SUPPORTED_SERVICES: z.array(z.string()), OPTIONS: z.array(OptionDefinition), BUILTIN: z.boolean().optional(), + CATEGORY: z.enum(constants.PRESET_CATEGORIES).optional(), }); const PresetMetadataSchema = PresetMinimalMetadataSchema.extend({ diff --git a/packages/core/src/presets/aiCompanion.ts b/packages/core/src/presets/aiCompanion.ts index e8a471e1..05bb3f35 100644 --- a/packages/core/src/presets/aiCompanion.ts +++ b/packages/core/src/presets/aiCompanion.ts @@ -176,6 +176,7 @@ export class AICompanionPreset extends Preset { OPTIONS: options, SUPPORTED_STREAM_TYPES: [], SUPPORTED_RESOURCES: supportedResources, + CATEGORY: constants.PresetCategory.META_CATALOGS, }; } diff --git a/packages/core/src/presets/aiSearch.ts b/packages/core/src/presets/aiSearch.ts index 7fe7071b..04526917 100644 --- a/packages/core/src/presets/aiSearch.ts +++ b/packages/core/src/presets/aiSearch.ts @@ -202,6 +202,7 @@ export class AISearchPreset extends Preset { OPTIONS: options, SUPPORTED_STREAM_TYPES: [], SUPPORTED_RESOURCES: supportedResources, + CATEGORY: constants.PresetCategory.META_CATALOGS, }; } diff --git a/packages/core/src/presets/aiostreams.ts b/packages/core/src/presets/aiostreams.ts index f665534a..80c94583 100644 --- a/packages/core/src/presets/aiostreams.ts +++ b/packages/core/src/presets/aiostreams.ts @@ -154,6 +154,7 @@ export class AIOStreamsPreset extends Preset { OPTIONS: options, SUPPORTED_STREAM_TYPES: [], SUPPORTED_RESOURCES: [], + CATEGORY: constants.PresetCategory.MISC, }; } diff --git a/packages/core/src/presets/aiosubtitle.ts b/packages/core/src/presets/aiosubtitle.ts index fcf440eb..aa905652 100644 --- a/packages/core/src/presets/aiosubtitle.ts +++ b/packages/core/src/presets/aiosubtitle.ts @@ -1,6 +1,11 @@ import { Addon, Option, UserData } from '../db/index.js'; import { Preset, baseOptions } from './preset.js'; -import { Env, RESOURCES, SUBTITLES_RESOURCE } from '../utils/index.js'; +import { + Env, + RESOURCES, + SUBTITLES_RESOURCE, + constants, +} from '../utils/index.js'; export class AIOSubtitlePreset extends Preset { static override get METADATA() { @@ -386,6 +391,7 @@ export class AIOSubtitlePreset extends Preset { OPTIONS: options, SUPPORTED_STREAM_TYPES: [], SUPPORTED_RESOURCES: supportedResources, + CATEGORY: constants.PresetCategory.SUBTITLES, }; } diff --git a/packages/core/src/presets/animeCatalogs.ts b/packages/core/src/presets/animeCatalogs.ts index b9a517cd..74489900 100644 --- a/packages/core/src/presets/animeCatalogs.ts +++ b/packages/core/src/presets/animeCatalogs.ts @@ -239,6 +239,7 @@ export class AnimeCatalogsPreset extends Preset { OPTIONS: options, SUPPORTED_STREAM_TYPES: [], SUPPORTED_RESOURCES: supportedResources, + CATEGORY: constants.PresetCategory.META_CATALOGS, }; } diff --git a/packages/core/src/presets/animeKitsu.ts b/packages/core/src/presets/animeKitsu.ts index 0d4e843f..0e8b262d 100644 --- a/packages/core/src/presets/animeKitsu.ts +++ b/packages/core/src/presets/animeKitsu.ts @@ -41,6 +41,7 @@ export class AnimeKitsuPreset extends Preset { OPTIONS: options, SUPPORTED_STREAM_TYPES: [], SUPPORTED_RESOURCES: supportedResources, + CATEGORY: constants.PresetCategory.META_CATALOGS, }; } diff --git a/packages/core/src/presets/contentDeepDive.ts b/packages/core/src/presets/contentDeepDive.ts index dc1fb4a9..5477f5b6 100644 --- a/packages/core/src/presets/contentDeepDive.ts +++ b/packages/core/src/presets/contentDeepDive.ts @@ -69,6 +69,7 @@ export class ContentDeepDivePreset extends Preset { OPTIONS: options, SUPPORTED_STREAM_TYPES: [], SUPPORTED_RESOURCES: supportedResources, + CATEGORY: constants.PresetCategory.MISC, }; } diff --git a/packages/core/src/presets/custom.ts b/packages/core/src/presets/custom.ts index 403c980b..f720396e 100644 --- a/packages/core/src/presets/custom.ts +++ b/packages/core/src/presets/custom.ts @@ -119,6 +119,7 @@ export class CustomPreset extends Preset { OPTIONS: options, SUPPORTED_STREAM_TYPES: [], SUPPORTED_RESOURCES: [], + CATEGORY: constants.PresetCategory.MISC, }; } diff --git a/packages/core/src/presets/dcUniverse.ts b/packages/core/src/presets/dcUniverse.ts index f30c2c8b..75b7bf45 100644 --- a/packages/core/src/presets/dcUniverse.ts +++ b/packages/core/src/presets/dcUniverse.ts @@ -100,6 +100,7 @@ export class DcUniversePreset extends Preset { OPTIONS: options, SUPPORTED_STREAM_TYPES: [], SUPPORTED_RESOURCES: supportedResources, + CATEGORY: constants.PresetCategory.META_CATALOGS, }; } diff --git a/packages/core/src/presets/debridioTmdb.ts b/packages/core/src/presets/debridioTmdb.ts index d0865773..765b7462 100644 --- a/packages/core/src/presets/debridioTmdb.ts +++ b/packages/core/src/presets/debridioTmdb.ts @@ -249,6 +249,7 @@ export class DebridioTmdbPreset extends Preset { OPTIONS: options, SUPPORTED_STREAM_TYPES: [], SUPPORTED_RESOURCES: supportedResources, + CATEGORY: constants.PresetCategory.META_CATALOGS, }; } diff --git a/packages/core/src/presets/debridioTvdb.ts b/packages/core/src/presets/debridioTvdb.ts index a836e096..66fa9c36 100644 --- a/packages/core/src/presets/debridioTvdb.ts +++ b/packages/core/src/presets/debridioTvdb.ts @@ -37,6 +37,7 @@ export class DebridioTvdbPreset extends Preset { OPTIONS: options, SUPPORTED_STREAM_TYPES: [], SUPPORTED_RESOURCES: supportedResources, + CATEGORY: constants.PresetCategory.META_CATALOGS, }; } diff --git a/packages/core/src/presets/doctorWhoUniverse.ts b/packages/core/src/presets/doctorWhoUniverse.ts index 23989dce..37597bcd 100644 --- a/packages/core/src/presets/doctorWhoUniverse.ts +++ b/packages/core/src/presets/doctorWhoUniverse.ts @@ -57,6 +57,7 @@ export class DoctorWhoUniversePreset extends Preset { OPTIONS: options, SUPPORTED_STREAM_TYPES: [], SUPPORTED_RESOURCES: supportedResources, + CATEGORY: constants.PresetCategory.STREAMS, }; } diff --git a/packages/core/src/presets/marvel.ts b/packages/core/src/presets/marvel.ts index f74a9247..cc5ed819 100644 --- a/packages/core/src/presets/marvel.ts +++ b/packages/core/src/presets/marvel.ts @@ -76,6 +76,7 @@ export class MarvelPreset extends Preset { OPTIONS: options, SUPPORTED_STREAM_TYPES: [], SUPPORTED_RESOURCES: supportedResources, + CATEGORY: constants.PresetCategory.META_CATALOGS, }; } diff --git a/packages/core/src/presets/moreLikeThis.ts b/packages/core/src/presets/moreLikeThis.ts index e75550b2..bc610ca3 100644 --- a/packages/core/src/presets/moreLikeThis.ts +++ b/packages/core/src/presets/moreLikeThis.ts @@ -376,6 +376,7 @@ export class MoreLikeThisPreset extends Preset { OPTIONS: options, SUPPORTED_STREAM_TYPES: [], SUPPORTED_RESOURCES: supportedResources, + CATEGORY: constants.PresetCategory.META_CATALOGS, }; } diff --git a/packages/core/src/presets/opensubtitles-v3-plus.ts b/packages/core/src/presets/opensubtitles-v3-plus.ts index 5d603963..ba946e6f 100644 --- a/packages/core/src/presets/opensubtitles-v3-plus.ts +++ b/packages/core/src/presets/opensubtitles-v3-plus.ts @@ -1,6 +1,11 @@ import { Addon, Option, UserData } from '../db/index.js'; import { Preset, baseOptions } from './preset.js'; -import { Env, RESOURCES, SUBTITLES_RESOURCE } from '../utils/index.js'; +import { + constants, + Env, + RESOURCES, + SUBTITLES_RESOURCE, +} from '../utils/index.js'; export class OpenSubtitlesV3PlusPreset extends Preset { static override get METADATA() { @@ -173,6 +178,7 @@ export class OpenSubtitlesV3PlusPreset extends Preset { OPTIONS: options, SUPPORTED_STREAM_TYPES: [], SUPPORTED_RESOURCES: supportedResources, + CATEGORY: constants.PresetCategory.SUBTITLES, }; } diff --git a/packages/core/src/presets/opensubtitles.ts b/packages/core/src/presets/opensubtitles.ts index c5810bb4..f666f7bf 100644 --- a/packages/core/src/presets/opensubtitles.ts +++ b/packages/core/src/presets/opensubtitles.ts @@ -1,6 +1,11 @@ import { Addon, Option, UserData } from '../db/index.js'; import { Preset, baseOptions } from './preset.js'; -import { Env, RESOURCES, SUBTITLES_RESOURCE } from '../utils/index.js'; +import { + constants, + Env, + RESOURCES, + SUBTITLES_RESOURCE, +} from '../utils/index.js'; export class OpenSubtitlesPreset extends Preset { static override get METADATA() { @@ -26,6 +31,7 @@ export class OpenSubtitlesPreset extends Preset { OPTIONS: options, SUPPORTED_STREAM_TYPES: [], SUPPORTED_RESOURCES: supportedResources, + CATEGORY: constants.PresetCategory.SUBTITLES, }; } diff --git a/packages/core/src/presets/presetManager.ts b/packages/core/src/presets/presetManager.ts index 912d29a5..f7bae1f9 100644 --- a/packages/core/src/presets/presetManager.ts +++ b/packages/core/src/presets/presetManager.ts @@ -148,6 +148,7 @@ export class PresetManager { OPTIONS: metadata.OPTIONS, BUILTIN: metadata.BUILTIN, DISABLED: metadata.DISABLED, + CATEGORY: metadata.CATEGORY, }) ); } diff --git a/packages/core/src/presets/rpdbCatalogs.ts b/packages/core/src/presets/rpdbCatalogs.ts index 616e7097..be08ce50 100644 --- a/packages/core/src/presets/rpdbCatalogs.ts +++ b/packages/core/src/presets/rpdbCatalogs.ts @@ -51,6 +51,7 @@ export class RpdbCatalogsPreset extends Preset { OPTIONS: options, SUPPORTED_STREAM_TYPES: [], SUPPORTED_RESOURCES: supportedResources, + CATEGORY: constants.PresetCategory.META_CATALOGS, }; } diff --git a/packages/core/src/presets/starWarsUniverse.ts b/packages/core/src/presets/starWarsUniverse.ts index d2ba7e74..228a8f66 100644 --- a/packages/core/src/presets/starWarsUniverse.ts +++ b/packages/core/src/presets/starWarsUniverse.ts @@ -104,6 +104,7 @@ export class StarWarsUniversePreset extends Preset { OPTIONS: options, SUPPORTED_STREAM_TYPES: [], SUPPORTED_RESOURCES: supportedResources, + CATEGORY: constants.PresetCategory.META_CATALOGS, }; } diff --git a/packages/core/src/presets/streamingCatalogs.ts b/packages/core/src/presets/streamingCatalogs.ts index 3aab4e2b..7d96364a 100644 --- a/packages/core/src/presets/streamingCatalogs.ts +++ b/packages/core/src/presets/streamingCatalogs.ts @@ -166,6 +166,7 @@ export class StreamingCatalogsPreset extends Preset { OPTIONS: options, SUPPORTED_STREAM_TYPES: [], SUPPORTED_RESOURCES: supportedResources, + CATEGORY: constants.PresetCategory.META_CATALOGS, }; } diff --git a/packages/core/src/presets/subdl.ts b/packages/core/src/presets/subdl.ts index 947fd82a..dbbfe74e 100644 --- a/packages/core/src/presets/subdl.ts +++ b/packages/core/src/presets/subdl.ts @@ -1,6 +1,11 @@ import { Addon, Option, UserData } from '../db/index.js'; import { Preset, baseOptions } from './preset.js'; -import { Env, RESOURCES, SUBTITLES_RESOURCE } from '../utils/index.js'; +import { + constants, + Env, + RESOURCES, + SUBTITLES_RESOURCE, +} from '../utils/index.js'; export class SubDLPreset extends Preset { static override get METADATA() { @@ -138,6 +143,7 @@ export class SubDLPreset extends Preset { OPTIONS: options, SUPPORTED_STREAM_TYPES: [], SUPPORTED_RESOURCES: supportedResources, + CATEGORY: constants.PresetCategory.SUBTITLES, }; } diff --git a/packages/core/src/presets/subhero.ts b/packages/core/src/presets/subhero.ts index b623d9c4..ad58184a 100644 --- a/packages/core/src/presets/subhero.ts +++ b/packages/core/src/presets/subhero.ts @@ -1,6 +1,7 @@ import { Addon, Option, UserData } from '../db/index.js'; import { Preset, baseOptions } from './preset.js'; import { + constants, Env, FULL_LANGUAGE_MAPPING, SUBTITLES_RESOURCE, @@ -116,6 +117,7 @@ export class SubHeroPreset extends Preset { OPTIONS: options, SUPPORTED_STREAM_TYPES: [], SUPPORTED_RESOURCES: supportedResources, + CATEGORY: constants.PresetCategory.SUBTITLES, }; } diff --git a/packages/core/src/presets/subsource.ts b/packages/core/src/presets/subsource.ts index d4cb74e4..e19864e7 100644 --- a/packages/core/src/presets/subsource.ts +++ b/packages/core/src/presets/subsource.ts @@ -1,6 +1,11 @@ import { Addon, Option, UserData } from '../db/index.js'; import { Preset, baseOptions } from './preset.js'; -import { Env, RESOURCES, SUBTITLES_RESOURCE } from '../utils/index.js'; +import { + constants, + Env, + RESOURCES, + SUBTITLES_RESOURCE, +} from '../utils/index.js'; export class SubSourcePreset extends Preset { static override get METADATA() { @@ -200,6 +205,7 @@ export class SubSourcePreset extends Preset { OPTIONS: options, SUPPORTED_STREAM_TYPES: [], SUPPORTED_RESOURCES: supportedResources, + CATEGORY: constants.PresetCategory.SUBTITLES, }; } diff --git a/packages/core/src/presets/tmdb.ts b/packages/core/src/presets/tmdb.ts index 7f6e57c5..da768a43 100644 --- a/packages/core/src/presets/tmdb.ts +++ b/packages/core/src/presets/tmdb.ts @@ -279,6 +279,7 @@ export class TMDBAddonPreset extends Preset { OPTIONS: options, SUPPORTED_STREAM_TYPES: [], SUPPORTED_RESOURCES: supportedResources, + CATEGORY: constants.PresetCategory.META_CATALOGS, }; } diff --git a/packages/core/src/presets/tmdbCollections.ts b/packages/core/src/presets/tmdbCollections.ts index a8ec284d..87bfffdc 100644 --- a/packages/core/src/presets/tmdbCollections.ts +++ b/packages/core/src/presets/tmdbCollections.ts @@ -858,6 +858,7 @@ export class TmdbCollectionsPreset extends Preset { OPTIONS: options, SUPPORTED_STREAM_TYPES: [], SUPPORTED_RESOURCES: supportedResources, + CATEGORY: constants.PresetCategory.META_CATALOGS, }; } diff --git a/packages/core/src/presets/torrentCatalogs.ts b/packages/core/src/presets/torrentCatalogs.ts index 77d0574e..7bbd1bea 100644 --- a/packages/core/src/presets/torrentCatalogs.ts +++ b/packages/core/src/presets/torrentCatalogs.ts @@ -28,6 +28,7 @@ export class TorrentCatalogsPreset extends Preset { OPTIONS: options, SUPPORTED_STREAM_TYPES: [], SUPPORTED_RESOURCES: supportedResources, + CATEGORY: constants.PresetCategory.META_CATALOGS, }; } diff --git a/packages/core/src/utils/constants.ts b/packages/core/src/utils/constants.ts index 8752e652..70758c70 100644 --- a/packages/core/src/utils/constants.ts +++ b/packages/core/src/utils/constants.ts @@ -1110,6 +1110,24 @@ export const RESOURCE_LABELS: Record = { [ADDON_CATALOG_RESOURCE]: 'Addon Catalog', }; +// export const PRESET_CATEGORY_STREAMS = 'streams' as const; +// econst PRESET_CATEGORY_SUBTITLES = 'subtitles' as const; +// const PRESET_CATEGORY_META_CATALOGS = 'meta_catalogs' as const; +// const PRESET_CATEGORY_MISC = 'misc' as const; +export enum PresetCategory { + STREAMS = 'streams', + SUBTITLES = 'subtitles', + META_CATALOGS = 'meta_catalogs', + MISC = 'misc', +} + +export const PRESET_CATEGORIES = [ + PresetCategory.STREAMS, + PresetCategory.SUBTITLES, + PresetCategory.META_CATALOGS, + PresetCategory.MISC, +] as const; + const LANGUAGES = [ 'English', 'Japanese',