feat(subtitles): connect M-Team search and download to online workflow

通过既有provider表复用M-Team站点适配器的凭据、UA和共享限流;搜索只返回稳定字幕ID,下载签名现场获取,沿用沙箱解析、写入历史与撤销。迁移0096扩展字幕来源,schema反射同步。独立测试库验证M-Team真实API形状与旧字幕来源。参考:MoviePilot v3.2.4 app/modules/indexer/spider/mtorrent.py。
This commit is contained in:
root committed 2026-11-06 00:09:56 +08:00
1 parent 7e4cdbf5ba
commit 173f2e24c9
6 files changed
+369 -8

No files matched your search

@@ -0,0 +1,22 @@
import type { Kysely } from "kysely";
import { execDdl, oneOf } from "../src/migration-helpers.ts";
// M-Team 字幕沿用字幕资产与可撤销历史,只扩展来源,不保存下载签名。
// biome-ignore lint/suspicious/noExplicitAny: 迁移不依赖应用表类型
export async function up(db: Kysely<any>): Promise<void> {
await execDdl(
db,
`alter table subtitle_write drop constraint subtitle_write_source_check;
alter table subtitle_write add constraint subtitle_write_source_check ${oneOf("source", ["upload", "subhd", "zimuku", "mteam"])};`,
);
}
// biome-ignore lint/suspicious/noExplicitAny: 同上
export async function down(db: Kysely<any>): Promise<void> {
// 有新来源的历史时拒绝回退,不删除记录或改写其来源。
await execDdl(
db,
`alter table subtitle_write drop constraint subtitle_write_source_check;
alter table subtitle_write add constraint subtitle_write_source_check ${oneOf("source", ["upload", "subhd", "zimuku"])};`,
);
}