Elegy233
e84b3b01df
实现合并源功能的智能结果合并,适配自动匹配优选配置和前端使用 (#167)
* envs.js:为平台排序支持合并源
同时更改MERGE_SOURCE_PAIRS为multi-select,为后续前端更新做准备
* dandan-api.js:更新平台排序相关函数,更改排序配置决定函数适配复杂的合并源场景
应该大概没有删减什么,新的决定函数是命中计数权重算法
* merge-util.js:合并逻辑增加主源轮替功能,实现结果智能合并,不再硬性要求主源
a&b&c&d合并,a无结果拿b、c、d对比合并,b无结果拿c、d……
* components.css.js:增加合并模式相关样式
* systemsettings.js:增加multi-select合并模式相关逻辑
* README.md:更新源合并配置说明
* .env.example:更新源合并相关说明
* animeko.js:增加自动降级服务器地址
* animeko.js:降低相似度阈值到0.6(撤回更改)
* animeko.js:支持剧集翻页、过滤结果前先清洗文本
* merge-util.js:健壮对比函数
1.修复“犬夜叉 超越时代的思念”意外与“犬夜叉”匹配,新增主副标题的结构检测。
2.修复"犬夜叉 超越时代的思念(2001)【动漫】from youku",不能与"犬夜叉 穿越时代的思念(2001)【剧场版】from dandan"匹配,新增主副标题如果匹配上可以无视剧场版标识冲突。
3.新增验证合并覆盖率是否合规,如果成功合并集远远小于总集则视为异常驳回关联。
让我看看还有什么问题.jpg
* animeko.js:得利于清洗文本,过滤使用的相似度阀值可以提高到0.9
* bilibili.js:条目原名也扔给common-util工具对比(修复使用条目原名搜索出来的结果会被过滤掉)
话说我在做animeko源的时候完全忘了有这个工具… 改天重构调用一下吧
* animeko.js:修复清洗文本太极端的问题
* merge-util.js:调整主副标题结构冲突为扣分而不是抛弃,合并覆盖率验证豁免animeko
没想到意外这么快来,"判处勇者刑(2026)【动漫】from bilibili" 与 "判处勇者刑 惩罚勇者9004队刑务纪录(2026)【TV动画】from animeko" 只是翻译问题但是因为主副标题冲突被禁止合并了,然后因为animeko通常包含未放送集数(并且无法获取状态)所以需要豁免合并覆盖率
* README.md:手动同步上游
* merge-util.js:增加季度信息的统一映射
震惊之前竟然没做
* animeko.js:还原更改,挪到新的PR专项优化
* bilibili.js:还原更改,挪到新的PR专项优化
* merge-util.js:全方面优化,支持未匹配上的集也返回
燃尽了,有一点点堆成屎山了之后再重构吧先把逻辑全部做出来确保准确率()感谢“间谍过家家”这个番,几乎全平台有,发现了大量平台差异与季度差异
* merge-util.js:优化集提取正则
* dandan-api.js:修复当评分相同时后遍历到的结果会无条件覆盖先遍历到的结果
* dandan-api.js:去除没匹上就跳过检查集
* dandan-api.js:重新实现,同步修复季匹配错误问题函数
* merge-util.js:支持字母后缀的季度差分,例如小林家的龙女仆S、某科学的超电磁炮S、某科学的超电磁炮T