Commit Graph
313 Commits
Author SHA1 Message Date
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
Celestials316 7cff1c991b 修复剧集搜索详情丢失 (#242)
变更内容:为 searchEpisodes 增加请求级详情缓存,避免广义搜索结果被全局 100 条上限裁剪后丢失

变更内容:扩展 searchAnime 的搜索缓存结构,在命中缓存时同步回填详情数据

变更内容:抽取 bangumi 详情构建逻辑并复用,保持 searchAnime 和 searchEpisodes 返回结果一致
2026-03-18 23:39:06 +08:00
Celestials316 faa570273f DANMU_OFFSET 支持按来源指定弹幕偏移,重构偏移系统为独立模块,配置界面增加快速添加规则,修复模态框滚动问题 (#241)
* DANMU_OFFSET 支持按来源指定偏移,配置界面增加快速添加规则,修复模态框滚动问题

- DANMU_OFFSET 扩展 @来源 语法,支持针对特定弹幕来源单独设置偏移量
- 查找优先级:带来源规则优先,fallback 到通用规则,层级从集->季->剧名逐级回退
- 配置界面增加"添加规则"按钮,展开快速配置面板(剧名/季/集/来源/偏移秒数)
- 来源列表从后端 ALLOWED_SOURCES 动态加载,支持多选
- 修复所有变量编辑模态框内容过长时顶部无法滚动的问题

* 更新文档:DANMU_OFFSET 补充 @来源 语法说明

- README 功能介绍和环境变量表格补充来源指定格式
- .env.example 补充来源语法注释和示例

* 重构弹幕偏移系统:独立 offset-util 模块,支持合并源按来源分别偏移

- 新建 offset-util.js,集中偏移逻辑(解析/匹配/应用)
- parseOffsetRules 启动时解析一次,缓存到 globals.danmuOffsetRules
- resolveOffset 支持多级路径匹配(集>季>剧)、来源特定/all通配/通用规则优先级
- applyOffset 兼容 p/t/progress/timepoint 多种时间字段格式
- 支持来源别名映射(tencent→qq, iqiyi→qiyi, bilibili→bilibili1)
- 合并源流程:对齐后、合并前按来源分别应用偏移
- 单源流程:convertToDanmakuJson 前应用偏移
- 删除 danmu-util.js 中旧的 parseOffset/getOffset/applyDanmuOffset

* 优化偏移配置界面:inline styles 提取到 CSS,来源标签选中状态改用 class 控制
2026-03-18 23:38:31 +08:00
huangxd- 13fe8519f1 修改小版本号 2026-03-18 23:37:56 +08:00
lilixu3 f04403962f 优化弹幕测试界面的视频时长获取 (#239)
* 优化弹幕测试页时长获取

变更内容:
- 优先从评论接口和源字段提取测试页视频时长
- 补充不同来源时长回退与测试页展示逻辑
- 更新相关文档与测试用例

* 移除测试页时长界面改动

变更内容:
- 删除接口调试页面中附带时长参数与展示逻辑
- 回退测试页说明文档中的时长处理描述
- 保留评论接口时长能力与相关测试用例

* 恢复接口调试页时长参数

变更内容:
- 恢复接口调试页面中的duration参数与时长展示逻辑
- 恢复UI说明文档中的时长处理描述
- 保持评论接口视频时长能力与测试页联动

* 调整测试页时长展示细节

变更内容:让 comment JSON 的 videoDuration 字段固定排在返回体开头
变更内容:接口调试页在 xml 格式下隐藏附带时长开关并在切换时清空该参数
变更内容:版本号更新为 1.17.1
2026-03-18 00:34:24 +08:00