Commit Graph
317 Commits
Author SHA1 Message Date
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
Elegy233andhuangxd- 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
dyphire 77ecdcf233 跟随弹弹上游 API 变动废弃 related 相关接口功能 (#274) 2026-04-11 13:56:01 +08:00
huangxd- 3495835e7c 新增弹幕时间偏移功能以及环境变量DOUBAN_COOKIE (#276)
* 弹幕偏移支持百分比模式

* 修复偏移配置保存之后不显示源选择的问题

* 增加豆瓣cookie环境变量
2026-04-11 13:55:39 +08:00
Elegy233 59533acfc9 使 match 接口匹配时检查源传入的别名,并优化别名替换相关逻辑 (#271)
* dandan-api.js:使 match 接口匹配时检查别名

* dandan.js:彻底删除内部api别名替换逻辑,因为别名已经传给需要的工具

* tmdb-util.js:全面优化tmdb智能标题替换逻辑

优先选择与用户传入的关键词相同的别名(https://github.com/huangxd-/danmu_api/pull/270 的拓展)

* envs.js:更新集过滤正则与aliases ai提示

* .env.example:更新集过滤正则

* Update README.md
2026-04-03 22:00:20 +08:00
huangxd- eace9cfbd8 Merge branch 'main' of github.com:huangxd-/danmu_api 2026-04-03 21:59:38 +08:00
huangxd- dce8dbbd18 修改小版本 2026-04-03 21:59:26 +08:00
dyphire e7bdc3a831 360 源添加episodesv2分集获取接口 (#272) 2026-04-03 21:59:04 +08:00
Elegy233 b6926712f5 为弹弹源添加别名替换相关逻辑,使不同译名的结果能够参与match匹配 (#270)
* tmdb-util.js:将关键词清理函数提取为公共函数

* dandan.js:调用tmdb智能别名替换,并增加内部别名智能替换功能

使不同译名的结果能够参与match匹配
2026-04-02 22:50:27 +08:00
dyphire d89ba7a1c2 提高 match 接口的匹配精度 (#269) 2026-04-02 22:50:18 +08:00
dyphire 3e02301b9f 修复 360 源的剧集获取 (#268) 2026-04-02 22:50:06 +08:00
dyphire 9fe76afc85 正确兼容弹弹的 url 弹幕获取接口 (#267) 2026-04-02 22:49:41 +08:00
huangxd- afa0eb1c1f 修改小版本号 2026-04-02 22:48:15 +08:00
huangxd- c049d1c312 修复aiyifan-util.js中部分语法在ios fw中不适配的问题 2026-03-31 23:49:34 +08:00
Wo254992 c2eeeb164b 重构爱壹帆签名工具并优化并发复用 (#266) 2026-03-31 22:25:07 +08:00
huangxd- 9bc48f2360 修改小版本号 2026-03-31 22:23:44 +08:00
huangxd- c8fc8f1f65 修复aiyifan源fw报错的问题 2026-03-30 22:58:31 +08:00
huangxd- de148bccb4 更新环境变量的说明 2026-03-30 22:29:47 +08:00
haodeandhuangxd- 2c3f574cd0 动漫标题缓存最大数量可配置化 (#264)
* Update vercel.json

* Update vercel.json

* Add files via upload

动漫标题缓存最大数量可配置化修改,在某些场景下通过接口获取的标题数会超过100,没有缓存到的标题无法通过id获取到弹幕,增加动漫标题缓存最大数量可配置化修改

---------

Co-authored-by: huangxd- <649924757@qq.com>
2026-03-30 22:27:20 +08:00
lilixu3 3956d80e98 修复爱壹帆源播放列表、视频信息、弹幕接口区域限制问题 (#263)
app-m10.tripdata.app 对部分地区返回"您所在的区域必须登录",
将 PLAYLIST_API、VIDEO_API、DANMU_API 域名替换为 m10.yfsp.tv
2026-03-30 22:23:34 +08:00
huangxd- f7fc36f384 更新小版本号 2026-03-30 22:23:12 +08:00
huangxd- 6a715e6372 修复hanjutv分片不可用的问题 2026-03-30 00:20:01 +08:00
Wo254992 b5d41fb42d 重构韩剧TV弹幕源的核心逻辑,优化双链路(韩小圈 HXQ + 极速版 TV)架构的稳定性和代码质量,修复多个实际运行中的 bug (#261)
* feat(hanjutv): 重构韩剧TV源为双链路架构(韩小圈+极速版)

- 搜索:并行调用 s5(韩小圈)和 TV(极速版)接口,按标题匹配自动合并为 merged 候选,未匹配的保留为独立变体
- 详情/剧集:merged 变体并行拉取双端剧集列表,按集号合并;支持 3 层降级(merged → hxq → tv)
- 弹幕:merged 剧集 ID 编码为 base64url,拉取时按 ref 分别请求并打上细粒度来源标签(韩小圈/极速版)
- 弹幕分页:韩小圈端使用 60s 窗口滑动 + 多 host 容灾,TV 端使用全量范围分页
- 加密:统一 AES-CBC 加密参数,新增 TV 端请求头构建(buildLiteHeaders)和响应解密
- 搜索身份:闭包工厂模式缓存 mobile/tv 请求头,暖身请求实例内只执行一次
- 外层合并:fetchMergedComments 保留韩剧TV内部细粒度标签,仅在缺失时补充源标签
- 点赞阈值:handleDanmusLike 支持韩小圈/极速版变体标签的低阈值判定
- 公共工具:base64url 编解码移至 codec-util,正时间戳归一化移至 time-util

* 将韩剧TV专用函数从通用工具移到hanjutv-util

encodeBase64UrlText、decodeBase64UrlText、normalizePositiveTimestamp
三个函数只有hanjutv-util在用,放在通用工具里会导致部分运行环境
文件体积超限无法加载,移到hanjutv-util作为本地函数
2026-03-29 23:53:50 +08:00
huangxd- ae4f20c9c9 增加爱壹帆源 (#262)
* 增加爱壹帆源

* 修复爱壹帆源自动匹配
2026-03-29 23:53:14 +08:00
huangxd- b4511e501e 优化镜像构建yml (#258)
* 优化镜像构建yml

* 继续优化镜像构建
2026-03-28 00:04:07 +08:00
Wo254992 ba88bc03a5 fix: 修复匹配与过滤误读全局缓存 (#257)
- 复现:全局 animes 被旧详情污染时,/api/v2/match 可能把 E42 错配到第45集;开启剧集过滤时,同 animeId 跨源候选也可能被误过滤
- 修复:匹配、bangumi 解析、剧集过滤统一优先使用当前请求详情快照,并补充回归测试
2026-03-27 23:46:54 +08:00
Elegy233 a5fb406596 为dandan实时拉取功能支持related的合并分P格式 (#256)
* bilibili.js:处理合并分P链接格式

https://www.bilibili.com/combine?cid32908181970=0-583&cid32908250608=0-378&cid32908314947=0-440

* dandan.js:修复实时拉取时b站分p参数被截断,并放行合并分P格式

* merge-util.js:同步更新dandan related 接口对接相关函数

* globals.js:1.17.7
2026-03-27 23:46:38 +08:00
Wo254992 df9696515b 修复快速切集时 lastSearch 竞态导致 offset 写入错误 (#255)
问题复现:连续看同一部剧的第6集再切第5集时,match请求会覆盖
lastSearchMap中的上下文(按IP只存一条),导致第6集的comment请求
读到第5集的episode信息,算出错误的offset写入lastSelectMap,
后续自动匹配全部偏移。

修复:
- setLastSearch 移到 match 成功后调用,附带 episodeId
- getComment 读取 lastSearch 时校验 episodeId 是否与当前 commentId 一致
- 不一致则跳过 offset 计算,避免写入错误数据
2026-03-25 22:23:06 +08:00
Elegy233 57987959c2 放宽合并工具3D2D的处理,增强API路径前缀智能处理逻辑(适配danmaku-anywhere项目请求),修复链接解析错误占位符字符串 (#254)
* dandan.js:从tags中提取3D/2D追加到类型

* merge-util.js:放宽没有3D2D标识时的处理

* worker.js:增强API路径前缀智能处理逻辑,适配Danmaku Anywhere项目仅/v2/的请求

旧逻辑面对http://127.0.0.1:9321/********/v2/search/anime会错误补全为http://127.0.0.1:9321/********/api/v2/v2/search/anime

* dandan-api.js:修复了当请求直链 URL 时,API 错误返回占位符字符串

这个问题导致了danmaku-anywhere项目在解析图片时报错,详情:https://github.com/Mr-Quin/danmaku-anywhere/issues/343
2026-03-25 22:20:42 +08:00
huangxd- e74749b3f9 更新小版本 2026-03-25 22:19:37 +08:00
huangxd- 85771eeb06 优化Tencent源搜索,如果是多语言版本,anime标题增加语言版本 2026-03-22 09:48:43 +08:00
Mr-Quin 9c3efe058e 统一dandan useragent (#253) 2026-03-22 08:04:51 +08:00
Elegy233 832d604aed 为合并支持判断3D2D,修复带有不同配音的结果合集判断失误,增加简易的内部特殊条目映射规则 (#252)
* animeko.js:从tags中提取3D/2D追加到类型

* iqiyi.js:从metaTags中提取3D/2D追加到类型

* tencent.js:从richTags中提取3D/2D追加到类型

* merge-util.js:支持判断3D2D,修复带有不同配音的结果合集判断失误,增加简易的内部特殊条目映射规则
2026-03-22 08:04:32 +08:00
huangxd- 42ae6b8a61 优化Tencent源搜索,补充国粤多语言版本场景下返回多版本 2026-03-22 08:03:47 +08:00
huangxd- c8b42221aa 回退edgeone相关修改并修复edgeone 405问题 (#251)
* Revert "修复 EdgeOne token 路由 match 405 (#248)"

This reverts commit e29c9848bc.

* 修复edgeone 405问题
2026-03-21 00:41:07 +08:00
huangxd- 33a0a37831 修改变量描述 2026-03-20 22:11:40 +08:00
Celestials316 e29c9848bc 修复 EdgeOne token 路由 match 405 (#248) 2026-03-20 21:42:10 +08:00
Celestials316 6d587d910e 修复搜索结果超过 100 条时详情与弹幕失效 (#246)
* 修复搜索缓存详情解析

* 修复搜索缓存详情快照读取与隔离问题
2026-03-20 21:41:37 +08:00
huangxd- 554fc14084 修改小版本号 2026-03-20 21:40:49 +08:00
Wo254992andClaude Opus 4.6 b267db281d 新增自定义颜色池功能,CONVERT_COLOR为color时支持自定义颜色 (#243)
- 新增 COLOR_POOL 环境变量,支持自定义弹幕随机颜色池
- 前端新增色轮选色器、随机添加、批量添加弹窗(支持十进制和#hex格式)
- 颜色池样式提取到 components.css.js,JS 中仅保留动态样式
- 不配置时使用默认颜色池,行为与原来一致
- 同步更新 forward-widget、README、.env.example

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 22:39:27 +08:00
huangxd- 8e1487409d 兼容ios环境下WebAssembly不存在的场景,适配peekpili搭建本地服务 (#245) 2026-03-19 22:38:56 +08:00