huangxd-
cda5ba5c6e
chore(release): bump version to 1.19.11
2026-06-13 13:43:55 +08:00
Elegy233
d4caa14cf2
feat: 逐源管道解耦 searchAnime 两阶段流程 ( #341 )
...
将 searchAnime 中的两阶段阻塞模型(Promise.all(search) → executeSourceHandlers)
改为逐源管道模型:每个源形成独立的 search → executeSourceHandlers 流水线,
search 完成后通过 {[source]: searchResult} 调用 executeSourceHandlers 处理该源,
不等待其他源完成。
改动说明:
- 构建 sourceSearchMap 存储各源搜索 Promise(搜索并发度不变)
- 每个源的搜索 Promise 通过 .then() 链式调用 executeSourceHandlers
- 传入仅含当前源数据的 {[source]: searchResult},使 executeSourceHandlers 仅处理该源
- executeSourceHandlers 增加 activeSourceKeys 过滤,仅处理 resultData 中存在数据的源
- 各管道独立维护 isolatedAnimes 和 isolatedDetailStore
- 所有管道通过 Promise.allSettled 并发执行
- 管道完成后按 SOURCE_ORDER 顺序合并结果(animeId 去重、detailStore 键去重)
- resultData 在管道 .then() 回调中填充,供 S2+ 季度扩展逻辑读取
- executeSourceHandlers 函数未做任何修改,源路由逻辑仍由其集中维护
预期收益:
消除阶段壁垒,各源 handleAnimes 不再等待最慢源搜索完成,
可减少约 max(handleAnimes) 的等待时间,同时实现管道级错误隔离
网络层容错增强(http-util.js):
- 自适应重试退避:网络层物理阻断(ETIMEDOUT / ECONNRESET / AbortError)
采用 100ms 短退避快速重试;服务端业务错误保持原有指数退避逻辑,
在不影响服务端错误安全性的前提下加速 GFW 间歇性阻断场景的恢复
- 修复 linkSignal 事件监听器内存泄漏:
finally 块中 removeEventListener 注销监听器,阻断跨请求引用累积
巴哈姆特源容错增强(bahamut.js):
- HTTP 请求重试次数提升至 3(共 4 次尝试),配合自适应退避提高反代可达率
- tmdbSearchPromise 错误处理与 originalSearchPromise 保持一致:
网络失败返回 {success: false} 而非 throw,避免快速失败吞掉搜索结果
- handleAnimes 增加 epData 结构校验,防止 getEpisodes 返回空数组时 TypeError
- getEpisodes 日志仅输出 videoSn/animeSn/title/totalEpisode/episodes 关键字段,
避免全量输出 contentHtml/relatedGnn 等冗余数据
日志裁剪(kan360.js):
- zongyi response 日志从全量 API 响应改为输出每页剧集条数
- search response 日志从全量 API 响应改为输出搜索结果数组
2026-06-07 11:37:04 +08:00
Elegy233
dc41b9147d
fix: REMEMBER_LAST_SELECT 偏好记录在季节性缓存分区后失效,同时修复跨源标题别名拒绝写入 ( #340 )
...
改动涉及问题:
1. PR #303 引入的搜索缓存季度分区导致单季度搜索覆盖 lastSelectMap 的 animeIds,
后续 setPreferByAnimeId 因找不到目标 animeId 而静默失败
2. 手动指定的优选番剧在平台偏好场景下被非优选源覆盖(手动偏好优先级低于平台偏好)
3. 评论 handler 的 titleMatches 仅检查主标题,不同源对同一番剧的标题存在差异
(如 bilibili "正相反的你与我" vs dandan "相反的你和我"),导致跨源的偏好无法记录
修复:
cache-util.js
- storeAnimeIdsToMap: 合并旧 animeIds 而非覆盖,避免单季度搜索结果清空全量 ID
- findAnimeIdByCommentId: 返回 anime.aliases(各源已填充),用于标题兼容校验
dandan-api.js
- searchAnime: 季节性缓存 miss 时回退至泛化(无季度)缓存
- matchAniAndEp: 手动优选番剧增加 isPreferredAnime 标记,含三重保障:
目标平台未命中时放宽平台限制、+9999 评分权重确保优先、命中即时跳出
- getComment: 偏好写入闸门增加别名匹配,防止因标题差异导致偏好静默丢弃
2026-06-07 11:36:46 +08:00
huangxd-
1bca4ea470
chore: bump version to 1.19.10
2026-06-07 11:37:18 +08:00
Wo254992
81a320177e
fix: 修复特殊字符标题搜索匹配失败 ( #337 )
...
* fix: 修复特殊字符标题搜索匹配失败
改动详情:
- 使用 URL.searchParams 构造内部 /search/anime 搜索地址
- 避免标题中的 & 等特殊字符被当作查询参数分隔符截断
- 补充回归测试,验证 keyword、season、episode 参数保持正确
* refactor: 简化搜索地址构造调用
2026-06-06 12:18:25 +08:00
dyphire and huangxd-
aad97a0f88
fix(kan360): 360 kan 的 /v1/detail 接口在集数非常多时获取失败 ( #336 )
...
Co-authored-by: huangxd- <649924757@qq.com >
2026-06-06 12:18:08 +08:00
Elegy233
ee15f5871c
feat: 前端新增覆盖全项目的日志筛选分类系统 ( #335 )
...
* feat: 前端新增覆盖全项目的日志筛选分类系统
基于项目架构建立三级日志标签体系(编排层/工具层/源层),
覆盖 50 个文件。
=== 前端日志分类引擎 (logview.js + components.css.js) ===
- 新增 getLogCategory 标签分类引擎,支持标签提取、归类与续行上下文继承
- ISO 时间戳与 HH:MM:SS 格式精确过滤,避免误杀数字开头标签(如 360kan)
- 续行 _inherit_ 机制:无标签行自动继承上一行分类
- normalizationMap 归一化映射:变体标签统一收束至标准分类
- 标签筛选按钮 UI 按 system → utils/cache/merge → 源 三层分组排序
=== 后端标签规范化 ===
- sources/ 20 个源文件:弹幕提取、搜索函数、JSON 响应等全部 log 调用补全源标签
- utils/ 12 个工具文件:以 [Utils] [Name] 格式统一,保留 [Cache][Merge] 独立标签
- apis/dandan-api.js 采用 [system] [SubName] 层级格式:
子类别覆盖 Duration / executeSourceHandlers / searchAnime / LogVar-API /
Episodes / matchAnime / Spillover / getBangumi / Offset / YearFilter /
Match / Bangumi / SegmentComment
- apis/env-api.js 4 处 console.error 改用 log() 纳入日志缓冲区
- configs/handlers/ 8 个文件补全 [system] [Server] 标签
- worker.js 补全 [system] [Server] / [Utils] [Rate Limit] / [Utils] [IP Blacklist]
- forward/forward-widget.js 补全 [Forward],删除重复 console.log
- node-functions/index.js console.log → log() 统一纳入日志系统
- TMDB 标签拆分:sources/tmdb.js 保持 [TMDB],utils/tmdb-util.js 使用 [Utils] [TMDB]
- fetchMergedComments 合并拉取路径补全源级获取弹幕日志
=== 基础设施 ===
- http-util.js 新增 sourceLogContext (AsyncLocalStorage) 跨异步日志上下文追踪
- http-util.js 新增 toLogSourceName() 集中映射函数(360→360kan, imgo→mango)
- http-util.js 诊断续行移除重复标签前缀
- 额外季数检索改为并行 Promise.all
- 前端 JSON 续行切割修复:HH:MM:SS 时间戳识别 + 无标签行自动继承
=== 标签层级 ===
系统层:[system] [Server] [AI]
工具层:[Utils] [Name] [Cache] [Merge]
源层: [360kan][vod][bilibili][tencent][youku][iqiyi]
[mango][migu][renren][hanjutv][bahamut][dandan]
[sohu][leshi][xigua][maiduidui][aiyifan][animeko]
[Douban][TMDB][custom][other]
插件层:[Forward]
* 回退node-functions/index.js
2026-06-06 12:16:03 +08:00
huangxd-
3ce9ecc1ec
chore: bump version to 1.19.9
2026-06-06 12:16:00 +08:00
Elegy233
6752d867cf
feat(animeko): 新增 Bangumi 镜像站支持并引入详情接口多源降级适配 ( #333 )
...
- animeko.js:
1. 搜索节点扩容: 为 Bangumi V0 搜索接入高性能镜像站 (api.bangumi.one),并依据代理配置状态动态分配轮询优先级(代理状态:官方/代理 > 镜像;直连状态:镜像 > 官方)。
2. 详情灾备链路: 以聚合度最高、性能最优的 Animeko V2 API 作为首选详情节点,重新接入镜像 V0 与官方 V0 节点作为底层的降级备份。
3. 详情 V0 适配器: 构建降级适配器。在触发 V0 节点降级时,直接复用搜索链路已下发的基础元数据,仅并发请求剧集与关联端点,在内存中将数据无缝归一化为 V2 结构,确保上层业务逻辑零感知且网络开销最小化。
2026-05-31 20:11:02 +08:00
Elegy233
a94256c591
feat: executeSourceHandlers 并发化执行 handleAnimes ( #331 )
...
* feat: executeSourceHandlers 并发化执行 handleAnimes
将 executeSourceHandlers 从串行 await 改为并发 Promise.allSettled 执行:
- 每个源分配独立的 isolatedAnimes 和 isolatedDetailStore 容器
- 所有源的 handleAnimes 并发执行,互不干扰
- 完成后按 SOURCE_ORDER 顺序合并结果,animeId/detailStore 键去重时先到先得
- 单个源失败不影响其他源(Promise.allSettled 容错)
* Update dandan-api.js
2026-05-31 12:56:06 +08:00
Elegy233
ad303b1b8e
feat(animeko): 详情接口迁移至 Animeko V2 API 并新增 animeko@ 代理反代支持 ( #330 )
...
- animeko.js:
1. 详情与关联接口全面迁移至 Animeko V2 API (/v2/subjects),并新增 animeko API 隔离逻辑(API请求不走代理,符合预期)。
2. 为 Bangumi API 搜索接口新增 animeko@ 代理/反代支持。
3. 完整集成 4 个 Animeko 备用域名,根据部署时区(UTC+8/其他)动态反转分配节点的轮询优先级。
4. 新增模块级短效缓存 (3分钟 / 100条限制),消除在“关系检测”与“剧集获取”跨方法调用时产生的重复接口请求。
5. 修复 _extractRelations 方法中因原始接口 ID 数组与 Name 数组长度不对齐导致的潜在数据错位问题,改为纯 ID 校验提取。
6. 为 API 降级轮询机制显式注入 3000ms 超时控制,加速不可用节点的故障跳过。
- globals.js:
新增 animeko@ 代理/反代规则的解析与支持,配合 animeko.js 实现按需代理。
- http-util.js:
使 httpGet 与 httpGetWithStreamCheck 支持接收 options.timeout 参数,提供单次请求维度的自定义超时配置能力。
- README.md & config/.env.example:
添加 Animeko 代理及反代的配置说明与使用文档。
2026-05-31 12:54:27 +08:00
Elegy233
0cb28cea9a
feat(bangumi-data): 集成新 Bangumi-Data 来源,应用后为 bahamut 支持节省搜索请求 ( #329 )
2026-05-31 12:53:41 +08:00
Elegy233
4c852260ce
fix(util): 修复合并映射表可能污染常规源合并组;优化标题宽松匹配相似度算法,避免完全无关结果通过 ( #325 )
...
* fix(util): 修复合并映射表可能污染常规源合并组
* feat(util): 优化标题宽松匹配相似度算法,避免完全无关结果
2026-05-31 12:53:04 +08:00
huangxd-
ca05231b51
SOURCE_ORDER 默认源排序修改为douban,360,renren,hanjutv
2026-05-31 12:51:36 +08:00
Wo254992 and Wo254992
9761c4dd20
fix: allow fongmi mapped title reassignment ( #323 )
...
Co-authored-by: Wo254992 <Wo254992@users.noreply.github.com >
2026-05-25 17:38:51 +08:00
piaoyizy
d5c4de4f8b
修复fongmi接口不支持剧名标题映射表 ( #321 )
...
fongmi接口不支持剧名标题映射表
2026-05-25 10:09:52 +08:00
Elegy233
59c59405d2
feat(util): 完善 Bangumi Data 缓存生命周期 ( #320 )
...
* feat(util): 增加清理磁盘缓存文件函数
* feat(util): 动态关闭 Bangumi Data 时,同步清理物理磁盘缓存
* feat(api): 清理缓存时清理 Bangumi Data 内存与磁盘
* feat(ui): 清理缓存说明增加 Bangumi Data
2026-05-25 10:08:24 +08:00
Elegy233
1e9cff9f76
fix(util): 修复搜索叠词会产生大量无关结果的问题,修复 TMDB 日语原名检索特殊场景下匹配到无关结果的问题 ( #319 )
...
* fix(util): 给 TMDB 工具的日语原名检索新增结果类型校验,修复特殊场景下匹配到无关结果的问题
* fix(util): 修复相似度计算使用'Set'字符去重导致的叠词场景过滤失效问题
* fix(util): 提高日语原名搜索的相似度阈值,并安全释放事件监听器
2026-05-25 10:07:20 +08:00
Elegy233
e6c292c463
feat(ui): 新增 /api/cache/animes API 接口获取最近的 animes 缓存,应用到CUSTOM_MERGE_RULES与DANMU_OFFSET配置面板中辅助填写 ( #318 )
...
* feat(api): 新增处理获取最近animes缓存列表请求函数
* feat(api): 新增 `/api/cache/animes API` 接口
* feat(model): 新增 `mergedChildren` 与 `isHiddenChild` 参数
* feat(utils): 记录合并层级
* feat(ui): 新增最近数据与`animes`缓存面板样式
* feat(ui): 新增最近数据与`animes`缓存面板功能
* feat(md): 新增GET `/api/cache/animes`说明
* fix(ui): 修复合并结果由于长英文字符串导致前端网格布被撑破的 UI 错位问题
远古问题
* fix(ui): 调整换行逻辑提升可读性
* feat(ui): 给MERGE_SOURCE_PAIRS也添加最新数据面板,供合并参考
Add button to fetch and display recent data in the UI.
2026-05-25 10:05:32 +08:00
Elegy233
184f60e558
fix(kan360): 修复360看源无法获取个别剧的最新一集 ( #317 )
2026-05-25 10:04:42 +08:00
huangxd-
379fa7f7ab
修改小版本号
2026-05-25 10:02:00 +08:00
woleigedouer
ec0cbda5ec
fix(iqiyi): 修复爱奇艺弹幕分片规则失效 ( #311 )
...
- 更新爱奇艺弹幕接口为 60 秒 Brotli 分片规则,支持 protobuf 弹幕解析,并将空分片 404 作为无弹幕处理。
2026-05-18 23:02:48 +08:00
Elegy233
d894ccdd3d
perf(match): 为 match 接口支持跨季集数顺延匹配,提高匹配成功率;新增 CUSTOM_MERGE_RULES 环境变量,用于自定义源合并行为 ( #310 )
...
* perf(api): 将数据源处理逻辑提取为公共函数,加入'跨季集数顺延映射'功能提高 match 接口匹配成功率
* feat(utils): 等价重组合并工具,使用12层清晰分层并补全所有函数必要注释,降低维护难度
我是超级重构大师()这一次真的好起来了结构清晰多了()
* perf(envs): 新增合并映射表('CUSTOM_MERGE_RULES')变量与解析函数
* feat(utils): 使合并工具支持合并映射表
* feat(ui): 新增CUSTOM_MERGE_RULES 合并映射表 专用编辑界面
* feat(env): 新增合并映射表配置说明
* feat(md): 新增合并映射表配置说明
2026-05-18 23:02:08 +08:00
huangxd-
d622a5be8d
修改小版本号
2026-05-18 23:01:51 +08:00
piaoyizy
4e5b7f69ad
feat: 为fongmi接口增强网盘命名集数识别能力 ( #307 )
...
- 新增 16 种集数提取正则模式 (EP/E/Episode/Emby/括号/分隔符等)
- 新增日期格式识别 (YYYY-MM-DD, 紧凑日期)
- 提升网盘文件名集数识别准确率
2026-05-16 09:31:57 +08:00
Elegy233
ffe4c68293
perf(search): 重构源多季场景匹配逻辑,大幅降低无效请求提升匹配速度;为人人源新增多端接口与智能路由,改善区域连通性问题 ( #303 )
...
* perf(api): 增加季参数透传与缓存隔离机制
- 在 `matchAnime` 重定向时提取 season 参数并隐式传递给 `searchAnime`。
- 修改所有源站 `handleAnimes` 调用,追加 `querySeason` 参数下发。
- 重构搜索缓存的 Key 生成规则,引入 `_S{season}` 后缀,实现按季度的缓存空间隔离,解决换季搜索时的旧缓存穿透 Bug。
* feat(utils): 升级季度混合匹配算法
- 升级 `titleMatches` 函数签名,新增 `parsedSeason` 参数支持。
- 统一向外部源站暴露 `getExplicitSeasonNumber` 与 `extractSeasonNumberFromAnimeTitle` 解析函数。
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 透传querySeason
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(api): 补全 `querySeason` 参数下发
* feat(test): 增加 Bangumi Data 本地检索与季度参数的拦截检索测试
* fix(sources): 修复韩剧TV定义了多余的参数导致缓存错误赋值无法参与match匹配
* perf(sources): 人人源新增 Win 端接口与智能路由,改善区域连通性问题
https://github.com/huangxd-/danmu_api/issues/295
wni 接口的详情接口疑似存在验证密钥,暂时没能力获取目前只添加了它的搜索和弹幕接口
* Fix TV_DANMU_HOST URL in renren.js
* feat(utils): 新增 `validStatusCodes` 参数配置,允许外部主动接管特定的非 2xx 状态码
配合修复人人无弹幕状态码是404导致重试
* perf(sources): 修复人人源在“剧集无弹幕”时返回 HTTP 404导致无效重试的问题
* perf(sources): Animeko弹幕获取阶段引入人人一样的智能路由机制
* perf(sources): 使用曲线救国的方式补全人人 win 详情接口,同时增加 mac 接口,并调整了函数整体结构提高可读性
复杂化致歉()但是现在拥有了四个接口,完善的智能接口回退,希望这是最后一次更改这个源(
* perf(sources): 挂载 WIN 接口的别名,并支持识别会员提示弹窗用于智能偏移时长
https://github.com/huangxd-/danmu_api/issues/305
* perf(sources): 调整日志输出
* feat(utils): 修复合并后源的别名列表丢失
* perf(sources): 完善接口降级逻辑,防止误触发
Bug修呀修
* perf(api): 清理合并导致的 search 接口多余 links
* 1.19.5
2026-05-16 09:31:11 +08:00
Elegy233
8e3d208c2f
大幅优化 Bangumi Data 检索性能与速度,避免中低端机器开启为负优化 ( #301 )
...
* bangumi-data-util.js:大幅优化数据查询性能
* tmdb-util.js:异步查询本地 Bangumi Data
* animeko.js:异步查询本地 Bangumi Data
* bahamut.js:异步查询本地 Bangumi Data
* bilibili.js:异步查询本地 Bangumi Data
* dandan.js:异步查询本地 Bangumi Data
* bangumi-data-util.js:兼容旧版数据缓存
* tmdb-util.js:调整日志输出
* renren.js:捕获空弹幕数据,直接返回空数组
* renren.js:还原修改,因为并不有效
Removed checks for 'Document not found' error in response handling.
* merge-util.js:再次修复Re0最新季因共识差导致animeko映射错误
* bangumi-data-util.js:再次优化,引入倒排索引避免未来数据越来越多检索变慢
* dandan.js:如果结果命中用户需要的季,则跳过非目标季相关请求
减轻容易报错的详情接口压力
* merge-util.js:只有 1 个资源时不进行合并计算
* bahamut.js:如果结果命中用户需要的季,则跳过非目标季相关请求
* Add extractSeasonNumberFromAnimeTitle to imports
* Add extractSeasonNumberFromAnimeTitle to imports
* Add extractSeasonNumberFromAnimeTitle to imports
* bilibili.js:更新 Bangumi Data 数据对齐匹配逻辑,修复中配版对齐错误
* bahamut.js:同步更新 Bangumi Data 数据对齐匹配逻辑
* bahamut.js:补全 Bangumi Data 数据对齐标识,修复对齐后TMDB标题替换错误启动
* tmdb-util.js:调整智能标题替换执行逻辑,无有效资源时不再进行无效计算
2026-05-10 08:16:11 +08:00
huangxd-
a51fb8d408
首页增加完全免费声明
2026-05-10 08:14:10 +08:00
Wo254992
96377c9143
fix: 修复 b23.tv 短链重定向解析 ( #300 )
...
改为读取 b23.tv 第一跳 Location,避免继续请求最终页面时遇到风控失败;补充短链重定向回归测试。
2026-05-05 07:58:57 +08:00
Elegy233
87b7c468d1
调整合并工具极端情况下的集映射 ( #299 )
...
* merge-util.js:共识集计算加入一定判断,修复Re0最新季因共识差导致animeko映射错误
* merge-util.js:调整最终日志输出
2026-05-05 07:58:34 +08:00
huangxd-
8d84256f45
修改小版本号
2026-05-05 07:58:00 +08:00
piaoyizy
71075b554b
feat: 适配 FongMi影视 原生弹幕接口 ( #296 )
...
* feat: add FongMi native danmaku adapter
* feat: improve FongMi title and episode matching
2026-05-02 10:50:53 +08:00
huangxd-
e851d7495d
修复最近bangumi-data继承导致fw插件不可用的问题 ( #297 )
...
* fw插件删除bangumi-data-util.js的代码导入
* fw中删除bangumi-data-util引用语句
* GitHub默认需配置ENABLE_HF_SYNC为true才开启sync_hf.yml
* 修改readme
2026-05-02 10:50:10 +08:00
Wo254992
92fef384e6
分离 HF README 元数据:新增 README.hf.md,sync_hf.yml 推送前自动替换 ( #292 )
...
参考 hf-space-clean-readme 分支做法:
- README.md 保持干净文档,不放 HF YAML frontmatter
- README.hf.md 专门存放 HF metadata(title/emoji/sdk/port)
- GitHub Actions sync_hf.yml 在推送到 HF Space 前临时 cp 替换
2026-04-30 23:39:41 +08:00
huangxd-
0ab244b1c4
readme中增加 danmu_api 图文教程 链接
2026-04-30 23:08:09 +08:00
huangxd-
7581b929bb
claw下线,删除相关内容
2026-04-30 22:58:39 +08:00
woleigedouer
c4e6230bf8
fix(tencent): 支持别名匹配以提升搜索准确度 ( #291 )
...
- 新增 extractAliasesFromHintWords 方法从hintWords 提取别名
- 新增 titleOrAliasMatches 方法支持标题和别名匹配
- 在 getAnimeInfo 和 searchAnime 中添加 aliases 字段
- 优化搜索过滤逻辑,使用别名匹配替代单一标题匹配
2026-04-30 22:54:30 +08:00
Elegy233
b50af1f992
健壮 Bangumi Data 匹配与合并工具,修复相关问题 ( #289 )
...
* 修复开启 USE_BANGUMI_DATA 后《加油!中村同学!!》对齐 Bangumi-Data 数据后结果被抛弃
* 命中数据流程进行简繁转换,提升准确度
* Update bahamut.js
* bahamut.js:补全 retries: 1 重试参数,避免反代场景的一定风控
* dandan.js:补全 retries: 1 重试参数,避免接口不稳定
* merge-util.js:修复“终末起点”合并问题,并在判断季时深入到别名池
* animeko.js:补全别名传递
* dandan.js:补全别名传递
Added aliases to the data structure and improved title matching logic.
* common-util.js:引入繁简转化工具,用于标题匹配路由提升可靠性
修复开启 Bangumi Data 匹配后弹弹源始终不返回“终末起点 第二季”结果(因为 Bangumi Data 数据这一部使用的是繁体)
* Update common-util.js
* bangumi-data-util.js:精简裁切Bangumi Data 数据结构,大幅减少硬盘与内存占用
2026-04-30 22:53:17 +08:00
049e412748
Hugging配备ui管理 ( #288 )
...
* Create sync.yml
* Update README.md
* Add Hugging Face Spaces deployment support
* Update sync.yml
* Update README.md
* Update Dockerfile
* Update README.md
* Update README.md
* Update Dockerfile
* Rename sync.yml to sync_hf.yml
* Update README.md
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: huangxd- <649924757@qq.com >
2026-04-30 22:51:36 +08:00
huangxd-
b5da389605
修改小版本号
2026-04-30 22:50:40 +08:00
Elegy233
01fd9e15aa
集成 bangumi-data 项目,开启后提升动画源的检索与匹配速度并解锁隐藏/区域番剧 ( #283 )
...
* envs.js:新增 Bangumi Data 加速匹配开关 与 Bangumi Data 缓存有效期 配置
* 新增 Bangumi Data 管理工具,用于下载与管理Bangumi Data数据
感谢 https://github.com/bangumi-data/bangumi-data
* worker.js:参加Bangumi Data 辅助函数用于判断数据更新
* server.js:配合清理 Bangumi Data 关闭时占用的内存
* tmdb-util.js:Bangumi Data 开启时调用它大幅提升获取日语原名速度
实现获取动画日语原名零请求
* animeko.js:Bangumi Data 开启时调用它,节省一次搜索请求
已知问题:缺失imageUrl,问题不大
* bahamut.js:Bangumi Data 开启时调用它,补全别名与类型
Bangumi Data 给的是acg_sn,预期需要是video_sn,因此无法直接应用
https://github.com/bangumi-data/bangumi-data/issues/336
* bilibili.js:Bangumi Data 开启时调用它,补全缺失的隐藏结果与区域结果
实现港澳台番剧与隐藏番剧自由,例如《笨拙之极的上野》
* dandan.js:Bangumi Data 开启时调用它,节省一次搜索请求
弹弹其实当务之急是怎么节省详情接口的请求… 多结果风控错误概率大
* common-util.js:为标题匹配的相似度策略加入一定阻断
防止纯英文搜索时因相似度打乱字符匹配大量结果被放行
* .env.example:更新 Bangumi Data 相关变量
* README.md:更新 Bangumi Data 相关说明
* Enhance comments for USE_BANGUMI_DATA in .env.example
Updated comments to clarify the functionality of USE_BANGUMI_DATA.
* Enhance USE_BANGUMI_DATA description
Updated the description for USE_BANGUMI_DATA to include unlocking hidden/region-specific anime.
* README.md:补全目录
* bangumi-data-util.js:纯内存加载时使用原生 fetch ,并声明压缩头
* bangumi-data-util.js:增加云部署纯内存运行提示
* bangumi-data-util.js:更新配音版本正则
* merge-util.js:标准化正则
* tmdb-util.js:标准化正则
* animeko.js:标准化正则
* README.md:补充文件目录
* bangumi-data-util.js:修复CF部署下载请求被切断导致堵塞
Added download lock mechanism to prevent deadlocks in serverless environments and implemented a timeout for download operations.
* worker.js:透传ctx
* bangumi-data-util.js:调用 ctx.waitUntil 延长 Serverless 生命周期
* bilibili.js:补全md号解析链路
Add handling for media IDs starting with 'md' to fetch episodes.
* server.js:异步初始化 Bangumi Data 缓存,消除首个真实请求遭遇冷启动的等待延迟
* bangumi-data-util.js:双节点同时竞速下载数据,提升下载可用性与速度
2026-04-26 15:26:02 +08:00
huangxd-
b2afb2dbdc
修复ai匹配结果isMatched未设置为true的问题
2026-04-26 15:24:55 +08:00
huangxd-
871db792da
优化自动匹配和记住集episode偏移功能
2026-04-19 13:17:27 +08:00
huangxd-
028835c2c4
douban源搜索接口增加公开api兜底
2026-04-18 11:58:44 +08:00
Elegy233
59fff265cd
修复 match 接口因为标题清理导致故障 ( #282 )
...
* dandan-api.js:调整标题清理相关调用顺序
* common-util.js:调整标题清理相关调用顺序
* Enhance comment in extractSeasonNumberFromAnimeTitle
Add comment to clarify the process of extracting season number from anime title.
* globals.js 1.18.7
2026-04-14 20:28:51 +08:00
Elegy233
087c136b9b
修复合并工具特殊情况下集映射错误,更新标题匹配使用的正则,修复白日提灯因携带零宽字符导致无结果 ( #279 )
...
* bahamut.js:如果搜索关键词是日语则不经过common-util
获取不到原名信息作为别名所以直接放行
* common-util.js:清理标题时清理()括号
* merge-util.js:修复《一拳超人 第三季》关联时集映射错误
因为巴哈首集是“24.5集”番外集,所以判断错误,现在非整数集也视为番外集,番外集会找番外集去匹配
* common-util.js:清理标题时清理·点
* common-util.js:清理标题更改为白名单模式,使用Unicode区间正则囊括非常完整的文字内容
* dandan.js:使详情接口错误重试一次
* common-util.js:添加零宽字符清理函数
* vod.js:调用零宽字符清理函数,解决“白日提灯%E2%80%8B"搜索无结果
Added a function to sanitize search keywords before making API requests.
2026-04-13 22:57:32 +08:00
huangxd-
38cafc1d34
弹幕偏移百分比模式如果弹幕duration为0,则取最后一条弹幕作为视频时长 ( #281 )
2026-04-13 22:57:03 +08:00
huangxd-
5ce27183f1
修改readme
2026-04-11 14:09:08 +08:00
huangxd-
91cff0da83
修改reademe
2026-04-11 14:03:55 +08:00
Elegy233 and huangxd-
fe4a96f50b
因 related 接口废弃将合并工具的跨源时间轴对齐功能改回本地算法 ( #275 )
...
* merge-util.js:因 related 接口废弃将跨源时间轴对齐功能改回本地算法
天塌了(
* README.md:更新平台列表添加特别感谢栏
* merge-util.js:更新跨源时间轴对齐算法
* dandan-api.js:重写跨源时间轴对齐调用函数
* merge-util.js:精简跨源时间轴对齐算法
* merge-util.js:为弹弹豁免匹配率同时修复缺集导致的集映射错误
修复弹弹因为从零开始的异世界生活第四季因为集刮削错误缺2~4集导致的集映射错误
---------
Co-authored-by: huangxd- <649924757@qq.com >
2026-04-11 14:01:38 +08:00