Commit Graph
35 Commits
Author SHA1 Message Date
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
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- f7fc36f384 更新小版本号 2026-03-30 22:23:12 +08:00
huangxd- ae4f20c9c9 增加爱壹帆源 (#262)
* 增加爱壹帆源

* 修复爱壹帆源自动匹配
2026-03-29 23:53:14 +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
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- 410ff59d61 修改弹幕时间偏移配置说明 2026-03-18 00:32:56 +08:00
huangxd- c5b7221997 新增记住手动选择结果功能新增支持记住集episode/弹幕时间偏移配置/IP黑名单列表配置 (#231)
* 记住手动选择结果功能新增支持记住集episode,下次自动匹配时会对集进行偏移

* 更新README

* 新增IP黑名单列表配置,通过环境变量IP_BLACKLIST配置

* 增加上次匹配剧标题和本次弹幕获取据标题的匹配,防止两者不对应

* 新增弹幕时间偏移配置

* 补充forward插件相关配置

* 增加打印日志

* 修复findIndexById方法没有引用的问题

* 优化lastSelectMap,支持存储不同季

* 优化extractSeasonNumberFromAnimeTitle中尾部阿拉伯数字(如"某某 2" 或 "某某2",但不超过2位)

* 再次优化尾部阿拉伯数字问题
2026-03-15 12:57:32 +08:00
Elegy233 a656308fc2 增加弹弹第三方弹幕源实时拉取功能,用于覆盖掉弹弹服务器内缓存的旧弹幕 (#220)
* dandan.js:增加related接口,实现拉取绑定的第三方数据源

同时传出related接口的偏移值和绑定链接给合并工具的跨源时间轴对齐使用

* dandan-api.js:挂载dandan源传出的相关参数,同时更新源标签的标记方式

* merge-util.js:接收来自dandan源准确的偏移值和链接信息,替换掉低精度计算

* danmu-util.js:基于准确的源标签做更加完美的相关处理

* envs.js:增加弹弹第三方数据源实时拉取开关,默认开启

* systemsettings.js:增加一个默认值为true的变量保持开启状态

* .env.example:增加弹弹第三方数据源实时拉取开关说明

* Add REAL_TIME_PULL_DANDAN option to README

* .env.example:统一弹弹第三方数据源实时拉取说明

* .env.example:将第三方数据源统称为第三方弹幕源

* envs.js:将第三方数据源统称为第三方弹幕源

* README.md:将第三方数据源统称为第三方弹幕源

* merge-util.js:去除已经没有使用的旧函数

* systemsettings.js:REAL_TIME_PULL_DANDAN不再保持true

* dandan.js:related接口根据开关动态请求

只在REAL_TIME_PULL_DANDAN实时拉取开启状态或者启用了MERGE_SOURCE_PAIRS合并功能才请求

* envs.js:实时拉取默认设置为关闭

* .env.example:实时拉取默认设置为关闭

* README.md:实时拉取默认设置为关闭
2026-03-04 22:40:15 +08:00
huangxd- 10b2ca89ae 支持本地redis缓存配置 (#213)
* 弹幕点赞数改成镂空♡显示,数量使用下标数字,并增加环境变量LIKE_SWITCH开关该功能,默认开启

* 增加hanjutv日志打印

* 修改说明

* 支持本地redis缓存配置

* 增加render环境的判断

* Revert "增加render环境的判断"

This reverts commit 952257895a2705debf079485c8558969b46f986a.

* 修改注释

* 修复cloudflare不支持redis包安装的问题

* 修复cloudflare不支持redis包安装的问题
2026-03-01 13:46:28 +08:00
huangxd- 0153ebc929 增加埋堆堆源并增加ai匹配 (#197)
* 增加埋堆堆源

* match自动匹配接口系只能ai匹配功能,需根据自身使用模型配置AI_BASE_URL/AI_MODEL/AI_API_KEY/AI_MATCH_PROMPT四个环境变量

* 增加ai连通性测试按钮

* 优化ai match自动匹配

* hanjutv增加弹幕点赞数显示
2026-02-23 22:27:27 +08:00
huangxd- 6b7588d18e 环境变量ENABLE_EPISODE_FILTER更名为ENABLE_ANIME_EPISODE_FILTER,同时修复ENABLE_EPISODE_FILTER开启的情况下搜索接口返回500的问题 (#191)
* 修复ENABLE_EPISODE_FILTER开启的情况下搜索接口返回500的问题

* 环境变量ENABLE_EPISODE_FILTER更名为ENABLE_ANIME_EPISODE_FILTER
2026-02-13 22:59:35 +08:00
huangxd- 6ea819744c 添加剧名过滤规则环境便来给你ANIME_TITLE_FILTER,用于按正则表达式对剧名进行过滤,适用于过滤一些不需要的剧集 (#190)
* 添加剧名过滤规则环境便来给你ANIME_TITLE_FILTER,用于按正则表达式对剧名进行过滤,适用于过滤一些不需要的剧集,需开启ENABLE_EPISODE_FILTER

* fw插件如果启用了搜索关键字繁转简,则进行转换
2026-02-12 21:30:01 +08:00
huangxd- a6a0babd22 增加环境变量ANIME_TITLE_SIMPLIFIED,在搜索时将繁体剧名标题自动转换为简体,适用于繁体标题搜索 (#187)
* 修复搜索到的标题中带有括号导致自动匹配季不正确的问题

* 增加环境变量ANIME_TITLE_SIMPLIFIED,在搜索时将繁体剧名标题自动转换为简体,适用于繁体标题搜索,默认值:false(不转换)

* 接口调试ui界面上的/api/v2/search/episodes接口增加episode,用于指定集
2026-02-09 23:22:24 +08:00
zcw199604 495665dd8d feat(server): 支持 DANMU_API_PORT 配置主端口 (#185) 2026-02-08 23:17:20 +08:00
huangxd- 2ad2d5fa1a 支持咪咕源并增加请求记录标签页 (#186)
* 增加咪咕源

* 完善咪咕源,包括从豆瓣源获取咪咕弹幕

* 修改弹幕源简介

* EPISODE_TITLE_FILTER环境变量不再应用于剧标题过滤,只对集标题生效

* 增加处理简繁同源场景,比如吃->喫;注意->註意,实际不用转换

* 增加请求历史记录

* 增加请求记录ui界面

* 删除清空记录按钮

* 将请求记录的参数改为请求body体

* 对record.interface进行解码

* 请求参数为空的清空下不显示请求体

* 在没有请求体的情况下虚线也不显示

* 增加todayReqNum全局变量,用于记录今日请求数量

* 在UI界面显示今日请求总数

* 修改README

* 修复云部署的服务配置redis后请求记录还是0的问题
2026-02-08 23:16:26 +08:00
Elegy233 1c1207ae14 合并功能支持填写单源表示合并后仍保留原结果,忽略来自hanjutv的年份因为不准确 (#181)
* envs.js:合并解析支持解析单个源

* merge-util.js:支持填写单源表示合并后仍保留原结果,忽略来自hanjutv的年份因为不准确

* .env.example:更新合并说明

* README.md:更新合并说明

* envs.js:更新合并说明

* common-util.js:引入简易的相似度匹配,解决动画翻译细微不同导致的被过滤

解决使用“相反的你和我”搜索B站获取不到“正相反的你与我”,动画还是事太多了()
2026-02-04 18:11:42 +08:00
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
2026-01-31 22:50:36 +08:00
Celestials316 823e2bc521 修复:替换 Unicode 属性正则以兼容更广泛的 Node.js 版本,优化EPISODE_TITLE_FILTER环境变量相关 (#173)
* Update animeko.js

* Update animeko.js

* 修复config/.env.example 文件内EPISODE_TITLE_FILTER环境变量没有更新的问题

* Update envs.js

* Update .env.example
2026-01-29 23:49:32 +08:00
huangxd- 6ca1398563 合并弹幕颜色环境变量和繁简字体转换环境变量 (#172)
* 删除CONVERT_COLOR_TO_WHITE环境变量,合并保留CONVERT_COLOR

* 删除环境变量DANMU_SIMPLIFIED和DANMU_TRADITIONAL,合并为DANMU_SIMPLIFIED_TRADITIONAL,弹幕简繁体转换设置:default(默认不转换)、simplified(繁转简)、traditional(简转繁)
2026-01-29 00:19:21 +08:00
huangxd- 4fd7ccf412 增加简体转繁体开关 (#169)
* 增加简体转繁体开关

* 修改readme和小版本号

* 修改readme

* 修改缩进问题
2026-01-27 23:39:31 +08:00
huangxd- 90b15f5379 新增西瓜视频源 (#168)
* 暂时增加xigua源

* 更新xigua源

* 完成西瓜视频的搜索

* 增加西瓜视频源

* 删除西瓜视频test文件
2026-01-26 23:58:48 +08:00
Elegy233 2ea441b55c 允许源合并配置多个副源与主源合并,健壮合并工具对比函数 (#160)
* envs.js:支持解析多个合并副源

* merge-util.js:支持合并多个副源、健壮对比函数

* danmu-util.js:对合并源场景智能去重

解决dandan&bahamut等类似场景下,因为dandan本身聚合了bahamut旧弹幕数据,导致弹幕处理后全屏的无效“×2”

* animeko.js:提高结果过滤阀值,针对多季场景智能返回结果

解决用户搜索“葬送的芙莉莲 第二季”/“葬送的芙莉莲 S2E1”会返回不必要的其他季结果

* README.md:更新合并说明

* .env.example:更新合并说明

* README.md:微调合并说明

* globals.js:更新版本号为1.12.4
2026-01-22 22:50:32 +08:00
huangxd- 3fe044bcb7 添加乐视源 (#155) 2026-01-17 00:03:37 +08:00
Elegy233 937532dfa9 增加Animeko源,增加源合并功能 (#152)
* 新增源合并处理工具

非常多的优化,使不同源的合并进入高可用状态(主要还是动画这块,译名不同和集不一样太多了,动画怎会如此折腾)

* 新增Animeko源

感谢188的鼎力相助感谢Animeko,开源伟大!

* 新增MERGE_SOURCE_PAIRS环境变量并增加相关解析,新增允许animeko源

* 兼容新的源合并相关请求,修复b23.tv相关处理缺少httpGet引用

* 更新文档

* 更新env

* 将源合并从匹配配置挪到源配置

* 更新版本号为1.12.0

* 更新获取弹幕函数,使其更加符合整体规范

* 增加Animeko测试例
2026-01-14 18:24:40 +08:00
huangxd- 53e81421a3 删除config.yaml配置支持,后续只支持.env配置文件 2026-01-11 23:10:01 +08:00
Elegy233 435e22210a 为bilibili支持解析服务器实现港澳台搜索*2,为云部署支持反向代理 (#139)
* 去除反向代理相关判断,即将迁移至globals.js文件

* 增加反向代理相关判断,为云部署支持反向代理配置

* 增加流式传输方法,增加外部中断控制器

b站app接口无结果会返回高达3.69mb的推荐数据,这是人啊*2
外部中断控制器实现了原始搜索成功真打断tmdb搜索

* 支持外部随时传入的真中断,同时实现并发请求合并

* 去除非必要的点位检查,同时使用新的代理URL构建

* 实现web与app接口的港澳台番剧搜索与获取

目前只能通过万能反代或特定反代开启。实际实现很简单,但因为全网没有一个喂饭教程所以踩了超级超级多的坑,但也是多亏了踩坑现在对于港澳台的兼容非常非常健壮😵*2

* 更新说明

* 更新说明

* 更新文档
2026-01-08 23:02:16 +08:00
huangxd- e4b763a2c8 Revert "为bilibili支持解析服务器 实现港澳台搜索 (App/Web双模) (#129)" (#131)
This reverts commit 762634754e.
2026-01-05 06:59:43 +08:00
huangxd- a7392ee394 增加sohu源 (#130)
* 补充README

* 增加搜狐视频源

* 替换URLSearchParams

* 增加搜狐弹幕分片并发请求

* 修复docker场景不存在.env时自动创建的问题

* 修改版本号

* 修改docker-image构建flow条件

* 修改镜像构建触发条件

* 修复sohu源buildQueryString缺失的问题
2026-01-04 21:32:04 +08:00
Elegy233 762634754e 为bilibili支持解析服务器实现港澳台搜索 (App/Web双模) (#129)
* 增加Bilibili专用反代判断和流式传输支持

* 增加流式传输方法,解决港澳台庞大数据读取缓慢堵塞

b站app接口无结果会返回高达3.69mb的数据,这是人啊

* 实现web与app接口的港澳台番剧搜索与获取

实际实现很简单,但因为全网没有一个喂饭教程所以踩了超级超级多的坑,但也是多亏了踩坑现在对于港澳台的兼容非常非常健壮😵

* 更新PROXY_URL说明

* 更新平台列表与注意事项

* Fix duplicate bilibili proxy URL instructions

Removed duplicate instructions for enabling bilibili proxy URL in the README.

* 更新cookie

* 更新注意事项

* 添加返回接口报错信息,添加App接口失败回落至Web接口

* 更新BILIBILI_COOKIE说明

* 修复流式输式中断被当成请求失败回落至web接口

* 修复缩进

* 去掉bilibili-overseas

* Update .env.example

* Update config.yaml.example

* Update .env.example

* Update config.yaml.example
2026-01-04 21:29:10 +08:00
huangxd- 0b72288f57 增加剧名映射表,.env不存在的情况下自动生成 (#127)
* 手机端UI缩小body内间距

* 修复了移动端UI系统配置多选元素不能拖动的问题

* 修复移动端UI系统配置多选不能删除元素的问题

* 在Node和Docker环境下,如果config目录下没有.env和config.yaml,则自动从.env.example拷贝一份生成.env

* 添加剧名映射表

* 增加ui配置界面的剧名映射表配置

* 修改小版本号

* 修复空间ui css
2026-01-02 15:03:06 +08:00
huangxd- f199f69d8b 支持自定义弹幕源 (#121)
* 解决api配置反代后的ui路径问题

* ui修改body和header背景色

* 修复segmentcomment接口调试时format选择xml不生效的问题

* Revert "修复segmentcomment接口调试时format选择xml不生效的问题"

This reverts commit 997a101cb0537d95ebdb62e9f1267af7e94475a9.

* 修复分片弹幕请求xml还是返回json的问题

* 支持自定义弹幕源

* 修复在反代场景下api端点显示

* 修复导航栏标签切换问题

* 修复iqiyi源的弹幕emoji不显示的问题

* 完善readme中的项目结构

* 修改小版本号
2025-12-28 11:02:50 +08:00
huangxd- f1bb15ef20 修复一些小问题 v.1.9.2 (#108)
* 切换日志查看模块时立即刷新一次日志

* .env和config.yaml挪到config目录下,后续docker要加载配置文件,请挂载./config:/app/config目录,并在config目录中创建.env或config.yaml文件

* 修复b站和爱奇艺平台的优选不生效问题

* 更新小版本号
2025-12-09 23:38:05 +08:00