// copy-allow-file: 本文件包含用户分类 YAML 配置,键后的冒号必须保留半角语法。 import { z } from "zod"; import { JsonObject } from "./common.ts"; export const ClassificationConfigView = z.object({ yaml: z.string(), categories: z.object({ movie: z.array(z.string()), tv: z.array(z.string()) }), }); export type ClassificationConfigView = z.infer; export const ClassificationPut = z.object({ yaml: z.string().min(1).max(100_000) }); export type ClassificationPut = z.infer; export const ClassificationPreviewInput = z.object({ yaml: z.string().min(1).max(100_000).optional(), mediaType: z.enum(["movie", "tv"]), tmdb: JsonObject, }); export type ClassificationPreviewInput = z.infer; export const ClassificationPreviewResult = z.object({ category: z.string().nullable(), matchedFields: z.array(z.string()), fallback: z.boolean(), }); export type ClassificationPreviewResult = z.infer; export const DEFAULT_CLASSIFICATION_YAML = `movie: 动画电影: genre_ids: '16' 演唱会: genre_ids: '10402' 华语电影: original_language: 'zh,cn,bo,za' 亚洲电影: production_countries: 'JP,KR,KP,TH,VN,IN,SG,MY,ID,PH,KH,LA,MM,BD,PK,NP,LK,MN,TR,IR,IQ,SA' 欧美电影: null tv: 儿童剧集: genre_ids: '10762' 动漫剧集: genre_ids: '16' 纪录片: genre_ids: '99' 综艺: genre_ids: '10764,10767' 华语剧集: origin_country: 'CN,TW,HK' 亚洲剧集: origin_country: 'JP,KR,KP,TH,VN,IN,SG,MY,ID,PH,KH,LA,MM,BD,PK,NP,LK,MN,TR,IR,IQ,SA' 欧美剧集: null `;