e8851c5bc5
fix(forward): 构建独立 widget 时隔离服务端本地弹幕存储 ( #495 )
...
* fix(forward): 构建独立 widget 时隔离服务端本地弹幕存储
Prepared, adapted, tested and submitted by GPT-6 agent with the account owner's authorization. These changes were not manually authored or submitted by the account owner.
* test(forward): 将构建回归测试合并到主测试文件
* chore: 更新版本号至 1.21.4
---------
Co-authored-by: GPT-6 Agent <agent@localhost>
Co-authored-by: huangxd- <649924757@qq.com >
2026-10-02 21:35:14 +08:00
huangxd-
1bdb2a879e
fix: 修复 widget 构建中 http/https 模块兼容性及环境检测逻辑
...
- 在构建插件中为 node:http 和 node:https 添加解析规则,并提供空实现,避免构建失败
- 增加 IS_NODE_RUNTIME 判断,结合 __FORWARD_WIDGET__ 标识和 process.versions.node 准确识别 Node 环境
- 修正降级检测逻辑,仅在 Node 运行时检查版本,防止在浏览器环境下误判并触发不必要的 node-fetch 降级
- node-fetch Agent 仅在 Node 运行时创建,避免在非 Node 环境引用 http/https 模块导致异常
- 调整全局变量定义,注入 __FORWARD_WIDGET__ 标识供运行时环境判断使用
2026-08-15 08:48:08 +08:00
huangxd-
22ba6dabd0
feat: 将 dan-any 模块提取为独立工具并优化构建流程
...
- 在 build-forward-widget 中为 dan-any.js 添加解析和加载钩子,将其排除出 widget 捆绑包,仅保留转换功能占位
- 新增 convertDanAny 函数封装所有 dan-any 格式转换逻辑,支持 JSON/XML/Binary 输出
- 重构 danmu-util 中的格式响应函数,移除直接依赖 @dan-uni/dan-any,改为调用本地 convertDanAny
- 清理冗余导入,降低模块耦合,为后续 forward 独立部署做准备
2026-07-26 21:53:19 +08:00
huangxd-
3a6b5340a0
改用opencc-js处理繁简转换 ( #395 )
...
* refactor: 优化构建脚本并改用opencc-js处理繁简转换
- 重构 `build-forward-widget.js` 中的行删除逻辑,改用 split/filter 按片段匹配,避免单行大字典导致正则回溯或内存问题
- 增加 `esbuild.stop()` 确保构建进程正常退出,将 `process.exit(1)` 改为 `process.exitCode = 1` 以允许清理
- 将 `zh-util.js` 中硬编码的繁简映射替换为 `opencc-js` 库,大幅精简代码并提高转换准确性和可维护性
* refactor(utils): 更新 opencc-js 转换器初始化方式
改用 ConverterFactory 并显式导入字典文件,避免使用已弃用的 Converter 构造函数,确保与最新 opencc-js API 兼容。
2026-07-26 20:56:45 +08:00
huangxd-
c4d2951eb5
新增红果短剧源 ( #394 )
...
* feat: 新增红果短剧源支持
- 在 README 和配置示例中添加红果短剧(hongguo)源,扩展弹幕获取来源
- 更新 SOURCE_ORDER、PLATFORM_ORDER、MERGE_SOURCE_PAIRS 等配置项的可选值
- 新增 hongguo.js 源文件,完善项目文档和目录结构说明
* fix: 支持通过红果播放链接获取弹幕
* feat: 添加红果短剧全集合并选项,支持按集号顺序合并所有集弹幕
- 新增环境变量 `HONGGUO_MERGE_ALL_EPISODES`,默认为 false,启用后将红果短剧所有集的弹幕按剧集顺序合并为一集返回,每集弹幕时间累加前面各集时长,剧集列表显示为“全集”
- 修改缓存键生成逻辑,当启用合并时在缓存键后追加标识,避免与未合并缓存冲突
- 新增 `parseHongguoSeriesId`、`isHongguoSeriesId` 等工具函数用于识别红果系列 ID
- 更新 README 和 `.env.example` 文档说明新配置项
* test: 增强 forward-widget 测试流程的健壮性与剧集匹配逻辑
- 注释掉 storage 模拟中的调试日志,减少测试输出干扰
- 增加进程退出码设置,测试失败时正确返回非零状态
- 新增搜索结果为空时的异常抛出,避免后续空引用
- 优化剧集选择:优先按集数精确匹配,回退到数组索引,增加匹配失败提示
- 新增弹幕分片选择:优先选择包含 450 秒左右的分片,否则取中间时间点
- 增加对分片列表和弹幕列表为空时的异常检查,确保链路完整性
- 调整输出日志,明确显示所选剧集、分片和请求时间点,便于调试
* test: 更新 forward-widget 测试用例参数
- 调整测试数据中的 episode、sourceOrder 和 title 值
- 新增 hongguoMergeAllEpisodes 配置项用于测试
- 更新测试场景以覆盖新逻辑
* feat(forward): 支持debug构建并添加真机远程日志回传
- 新增 `--debug` 构建参数,生成 `logvar-danmu.debug.js` 供真机调试使用
- debug 版本将 `httpGet/httpPost` 替换为带日志回传的调试实现
- 实时回传 handler 执行、请求详情、耗时、异常及 console 输出到服务端终端和 `/api/logs`
- 敏感信息(Cookie、token、API key)在回传前自动脱敏,且回传失败不影响主流程
- 更新 README,补充 Forward 真机调试步骤和使用说明
2026-07-26 20:56:32 +08:00
huangxd-
ce8b3cbddf
feat: 为ForwardWidget构建添加运行时兼容插件,并重构解压工具函数 ( #376 )
...
- 新增 forwardRuntimeCompatPlugin 插件,处理 node:async_hooks 的浏览器兼容实现,并重定向 brotli 字典文件至浏览器版本,确保 ForwardWidget 在浏览器类运行时环境中正常运行
- 将 iQiyi 源中的 Brotli 解压逻辑迁移至 codec-util 的 decompressBrotli 通用函数,统一使用 utf8BytesToString 替代 TextDecoder,提升代码复用性和可维护性
- 此举旨在减少构建产物中的 Node.js 内置模块依赖,并集中管理解码工具,便于后续扩展
2026-07-18 08:08:12 +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
huangxd-
5aedb8a15d
修复fw插件构建问题
2026-03-01 15:59:29 +08:00
huangxd-
667c860e96
修改弹幕点赞显示格式
2026-03-01 14:41:32 +08:00
huangxd-
16d6c5ab4d
修复build-forward-widget.js的包导入问题
2026-02-08 23:31:17 +08:00
huangxd-
3022f14fdf
Feature: 支持分片弹幕接口并增加一键导出forward弹幕插件 ( #118 )
...
支持分片弹幕接口
/api/v2/comment 请求时支持定义 segmentflag=true 参数,用于请求弹幕分片列表
/api/v2/segmentcomment 通过comment接口返回体中的Segment类JSON数据获取单独一个分片的弹幕数据
增加一键导出forward弹幕插件,使用命令 node build-forward-widget.js
修复youku弹幕里color是字符串导致返回的格式错误的问题
2025-12-24 22:38:36 +08:00