Skip to content

🔀 自定义映射

当媒体库里的番剧名称和 Bangumi 上的条目对不上时(译名不同、多季合并、特摄/纪录片、续作命名特殊等),程序可能无法自动找到正确的条目。此时可以在 「映射管理」 里为「某个标题」指定对应的 Bangumi 条目 ID,同步时会优先使用这条规则,避免反复匹配失败。

匹配优先级

程序在自动匹配时会按以下顺序查找自定义映射(命中即停止):

  1. 季度感知精确映射(指定了季度的条目)
  2. 简单精确映射(标题完全一致,所有季度共用)
  3. 正则规则(按规则列表顺序依次尝试)

自定义映射优先于 bangumi-data 与 Bangumi API 搜索,为最高优先级。

三种映射方式

1. 简单精确映射(默认)

  • 适用:媒体库标题固定、与 Bangumi 条目一一对应。
  • 填写:番剧名称 + Bangumi ID;季度留空
  • 行为:只要同步请求里的标题(或原始标题)与「番剧名称」完全一致即命中,所有季度共用同一个 ID。

2. 季度感知映射

  • 适用:同一标题字符串在不同季度应对应 Bangumi 上不同 subject(例如媒体库不按季拆分,但 Bangumi 分季条目)。
  • 填写:番剧名称 + Bangumi ID + 季度(正整数)。
  • 行为:仅当同步请求的 season 与填写的季度一致时才命中;留空季度则视为简单映射,所有季度共用。

3. 正则规则

  • 适用:一批标题共享命名规律(续作、系列作、带后缀的变体等),不适合逐条写精确名称。
  • 填写:添加映射时类型选 「正则规则」,填写 Python 正则表达式、Bangumi ID,以及可选说明。
  • 行为:对同步请求的标题与原始标题依次做匹配;第一条匹配成功的规则生效。页面底部提供 「正则匹配测试」,可先验证表达式再保存。

映射里要填什么

每条映射至少需要:

  • 番剧名称 / 正则表达式:精确映射需与同步请求里的标题字符串尽量一致(包括标点、空格、季名等)。不确定时,可到 「同步记录」 查看失败条目实际带入的标题,按日志里的写法填写。
  • Bangumi ID:该番在 Bangumi 上的 subject 编号(纯数字)。打开对应条目页面,地址一般为 https://bgm.tv/subject/数字,其中的数字即为 ID。

对于简单精确映射,程序会按「第一季 / 主条目」逻辑使用你填的 ID:一般填系列第一季主条目的 ID,后续季数由程序根据续集链等逻辑处理,无需为每一季各写一条。若某季在 Bangumi 上是独立 subject 且简单映射对不上,请改用 季度感知映射 分别指定。

批量导入与导出

  • 批量导入:粘贴 JSON 或上传 .json 文件。可勾选「与现有映射合并」;不勾选则覆盖全部现有映射与规则。
  • 导出映射:下载当前映射的完整 JSON,便于备份或迁移。
  • 清空所有:删除全部映射与规则(不可撤销,操作前建议先导出备份)。

导入支持两种 JSON 形态:顶层 {"番剧名": "id"} 的简单对象,或带 mappings / rules 字段的完整结构。

与候选确认的关系

自动匹配失败但存在相近搜索结果时,程序会将候选沉淀到 「候选确认」 页面。确认某条候选后,可一键写入自定义映射,无需手填 Bangumi ID。

候选列表按相似度 score 降序展示,最相近的候选排在最前;若候选项均不符合,可点击「手动指定 Bangumi ID」直接输入条目 ID(方案 A),系统会校验 ID 有效性后再写入映射。

确认即补发

确认候选或手动指定 ID 后,若原同步记录状态为 error / queued,会自动触发一次补发同步,无需手动重试。

接下来