test: 登记 subtitle_write 表、来源枚举与 subtitles 模块
Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
ef29bd62ce
commit
4b11c2466e
4 files changed
+25
No files matched your search
@@ -53,6 +53,7 @@ describe("ServerModule 骨架", () => {
|
|||||||
"pi",
|
"pi",
|
||||||
"schedules",
|
"schedules",
|
||||||
"search",
|
"search",
|
||||||
|
"subtitles",
|
||||||
"browser",
|
"browser",
|
||||||
"desktop",
|
"desktop",
|
||||||
"mcp",
|
"mcp",
|
||||||
|
|||||||
@@ -120,5 +120,23 @@ export const SubtitleApplyResult = z.object({
|
|||||||
});
|
});
|
||||||
export type SubtitleApplyResult = z.infer<typeof SubtitleApplyResult>;
|
export type SubtitleApplyResult = z.infer<typeof SubtitleApplyResult>;
|
||||||
|
|
||||||
|
/** 表 subtitle_write 的行(0064) */
|
||||||
|
export const SubtitleWriteRow = z.object({
|
||||||
|
id: Id,
|
||||||
|
mediaEntityId: Id,
|
||||||
|
videoLocationId: Id.nullable(),
|
||||||
|
subtitleAssetId: Id.nullable(),
|
||||||
|
libraryRootId: Id,
|
||||||
|
relativePath: z.string(),
|
||||||
|
language: z.string(),
|
||||||
|
source: SubtitleSource,
|
||||||
|
sourceName: z.string(),
|
||||||
|
sourceRef: z.string().nullable(),
|
||||||
|
backupPath: z.string().nullable(),
|
||||||
|
actor: z.string().nullable(),
|
||||||
|
createdAt: Timestamp,
|
||||||
|
undoneAt: Timestamp.nullable(),
|
||||||
|
});
|
||||||
|
|
||||||
export const SubtitleWritesQuery = z.object({ entityId: Id });
|
export const SubtitleWritesQuery = z.object({ entityId: Id });
|
||||||
export const SubtitleWritesResponse = z.object({ items: z.array(SubtitleWriteView) });
|
export const SubtitleWritesResponse = z.object({ items: z.array(SubtitleWriteView) });
|
||||||
@@ -77,6 +77,7 @@ const ROWS: Record<string, { row: Obj; dbOnly?: string[]; apiOnly?: string[] }>
|
|||||||
ReconcileRun: { row: C.ReconcileRun },
|
ReconcileRun: { row: C.ReconcileRun },
|
||||||
Secret: { row: C.Secret, dbOnly: ["ciphertext", "nonce", "authTag"] },
|
Secret: { row: C.Secret, dbOnly: ["ciphertext", "nonce", "authTag"] },
|
||||||
ScrapeRecord: { row: C.ScrapeRecordRow },
|
ScrapeRecord: { row: C.ScrapeRecordRow },
|
||||||
|
SubtitleWrite: { row: C.SubtitleWriteRow },
|
||||||
ServerMapping: { row: C.ServerMapping },
|
ServerMapping: { row: C.ServerMapping },
|
||||||
Settings: { row: C.SettingEntry },
|
Settings: { row: C.SettingEntry },
|
||||||
// deleted_at:软删除只在服务端过滤(已删站点不出 API);capabilities 由类型 ∩ 站点定义算出(IA-2)
|
// deleted_at:软删除只在服务端过滤(已删站点不出 API);capabilities 由类型 ∩ 站点定义算出(IA-2)
|
||||||
@@ -246,6 +247,7 @@ const ENUMS: Record<string, z.ZodEnum> = {
|
|||||||
ScheduledJobRunStatus: C.ScheduleRunStatus,
|
ScheduledJobRunStatus: C.ScheduleRunStatus,
|
||||||
ScrapeRecordStatus: C.ScrapeStatus,
|
ScrapeRecordStatus: C.ScrapeStatus,
|
||||||
ScrapeRecordTrigger: C.ScrapeTrigger,
|
ScrapeRecordTrigger: C.ScrapeTrigger,
|
||||||
|
SubtitleWriteSource: C.SubtitleSource,
|
||||||
ScrapeRecordMode: C.ScrapeMode,
|
ScrapeRecordMode: C.ScrapeMode,
|
||||||
PiUpstreamAuthKind: C.PiAuthKind,
|
PiUpstreamAuthKind: C.PiAuthKind,
|
||||||
PiUpstreamStatus: C.PiUpstreamStatus,
|
PiUpstreamStatus: C.PiUpstreamStatus,
|
||||||
|
|||||||
@@ -126,6 +126,8 @@ const EXPECTED_TABLES = [
|
|||||||
"site_request_count",
|
"site_request_count",
|
||||||
// SCR-2 刮削记录(0058,替代 0057 media_scrape)
|
// SCR-2 刮削记录(0058,替代 0057 media_scrape)
|
||||||
"scrape_record",
|
"scrape_record",
|
||||||
|
// 补字幕写入历史(0064)
|
||||||
|
"subtitle_write",
|
||||||
].sort();
|
].sort();
|
||||||
|
|
||||||
/** 不走 entityTable() 的表:追加型/引擎自有表,没有 uuid id + created_at/updated_at 三件套 */
|
/** 不走 entityTable() 的表:追加型/引擎自有表,没有 uuid id + created_at/updated_at 三件套 */
|
||||||
@@ -146,6 +148,8 @@ const NON_ENTITY_TABLES = [
|
|||||||
// 进程心跳:instance_id 主键 / 只追加的采样
|
// 进程心跳:instance_id 主键 / 只追加的采样
|
||||||
"process_heartbeat",
|
"process_heartbeat",
|
||||||
"process_heartbeat_sample",
|
"process_heartbeat_sample",
|
||||||
|
// 补字幕写入历史:只有 created_at / undone_at
|
||||||
|
"subtitle_write",
|
||||||
// 单行配置(id = 1)
|
// 单行配置(id = 1)
|
||||||
"mcp_server_config",
|
"mcp_server_config",
|
||||||
// 一次性凭据:只记创建 / 用掉的时间
|
// 一次性凭据:只记创建 / 用掉的时间
|
||||||
|
|||||||
Reference in new issue
Block a user