Files
UHD_Media_Tool/scripts/mp-sync
rootandClaude Opus 5.5 e994a7bcfa feat(domain): rule groups — MP rule-string parser/serializer, builtin keywords, chain evaluation wired into slot
- rules/: RuleExpr tree, '>' layers with ! & | and parens, position-aware errors
  (unknown atom with suggestions, unsupported music atoms, parens, empty layer)
- builtin keyword table aligned with MP BUILTIN_RULE_SET; field-based judgement
  where parsed fields exist, MP regex otherwise; custom atoms (MP 7 fields)
- chain evaluation: hard excludes, ladder pri 100-k, groups AND-ed, pri from last
  laddered group, readable per-atom trace
- slot: SlotSpec.rules, rule.hard_exclude / rule.no_layer_matched violations,
  pri basis switches to priority when a rule ladder is present
- differential: 66 rule chains x 32 torrents vs MP python path (parse 64/64,
  pri 2090/2112, 22 registered mp_bug)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-28 14:50:43 +08:00
..

scripts/mp-sync

跟随上游移植工具(说明与对照总表:docs/porting/mp-sync-ledger.md)。用 deno run -A 运行(yaml 经根 deno.json import map 解析),不依赖 deno.json 任务。

脚本 作用
check.mjs [--mp <MP 仓库>] [--to <提交>] [--json] [--ledger <文件>] 比较 ledger.json 与 MP 目标提交:已变更 / 已删除 / spider/、parser/ 新增文件,输出 git diff 命令;有变化退出码 1
build-ledger.mjs [--mp <MP 仓库>] [--commit <提交>] 扫描源码 @mp-source <路径> @ <提交> 标签 + ledger.manual.json,生成 ledger.json(含上游文件 sha256)并刷新文档表格
movieclaw-import.mjs [--repo <MC 仓库>] [--ref v0.27.0] [--check] MovieClaw v0.27.0(MIT)站点 YAML → packages/adapters/src/sites/definitions/*.json + manifest.generated.ts;覆盖层 movieclaw-overrides/<id>.json;--check 只比较
deno run -A scripts/mp-sync/check.mjs --to <新提交>
deno run -A scripts/mp-sync/build-ledger.mjs --commit <新提交>
deno run -A scripts/mp-sync/movieclaw-import.mjs --check

MovieClaw v0.27.0 之后为附条件许可:movieclaw-import.mjs 校验 ref→提交与 LICENSE=MIT,其他 ref 需 --allow-ref 并另行核对许可。