diff --git a/README.md b/README.md index 664acd0..b15676f 100644 --- a/README.md +++ b/README.md @@ -84,7 +84,7 @@ LogVar 弹幕 API 服务器 - **UI界面-后台配置管理系统**:支持通过UI执行一些操作(详细见 [UI 系统使用说明](https://github.com/huangxd-/danmu_api/tree/main/danmu_api/ui/README.md) ),包括: - 配置预览 - 日志查看 - - 接口调试 + - 接口调试/弹幕测试 - 推送弹幕 - 请求记录 - 系统管理 diff --git a/danmu_api/configs/globals.js b/danmu_api/configs/globals.js index 26058af..1fa9a2c 100644 --- a/danmu_api/configs/globals.js +++ b/danmu_api/configs/globals.js @@ -13,7 +13,7 @@ export const Globals = { accessedEnvVars: {}, // 静态常量 - VERSION: '1.16.0', + VERSION: '1.16.1', MAX_LOGS: 1000, // 日志存储,最多保存 1000 行 MAX_ANIMES: 100, MAX_RECORDS: 100, // 请求记录最大数量 diff --git a/danmu_api/ui/README.md b/danmu_api/ui/README.md index f0b5208..fa3c377 100644 --- a/danmu_api/ui/README.md +++ b/danmu_api/ui/README.md @@ -6,7 +6,7 @@ - [功能详解](#功能详解) - [1. 配置预览](#1-配置预览) - [2. 日志查看](#2-日志查看) - - [3. 接口调试](#3-接口调试) + - [3. 接口调试/弹幕测试](#3-接口调试弹幕测试) - [4. 推送弹幕](#4-推送弹幕) - [5. 请求记录](#5-请求记录) - [6. 系统配置](#6-系统配置) @@ -32,7 +32,7 @@ UI 系统提供了以下主要功能模块: 1. **配置预览** - 查看当前生效的环境变量配置 2. **日志查看** - 实时查看系统运行日志 -3. **接口调试** - 测试和调试 API 接口 +3. **接口调试/弹幕测试** - 测试和调试弹幕 API 接口 4. **推送弹幕** - 向播放器推送弹幕 5. **请求记录** - 查看最近的 API 请求记录 6. **系统配置** - 环境变量配置和系统管理 @@ -62,7 +62,7 @@ UI 系统需要通过在 URL 中添加 TOKEN 来访问,以确保安全性: - 刷新日志功能 - 清空日志功能(需要 ADMIN_TOKEN) -### 3. 接口调试 +### 3. 接口调试/弹幕测试 接口调试功能允许您: @@ -76,6 +76,17 @@ UI 系统需要通过在 URL 中添加 TOKEN 来访问,以确保安全性: - 获取番剧详情 - `/api/v2/bangumi/:animeId` - 获取弹幕 - `/api/v2/comment/:commentId` +弹幕测试功能允许您: + +- 自动匹配测试:输入文件名自动匹配并获取弹幕,模拟播放器自动加载流程 +- 手动匹配测试:搜索动漫 → 选择番剧 → 选择剧集 → 获取弹幕 +- 弹幕统计:弹幕数、时长、高能时刻、平均密度、匹配时长、类型分布 +- 弹幕热力图:按时间段可视化弹幕密度分布 +- 弹幕列表:支持全部/滚动/顶部/底部过滤,显示颜色和类型标签,懒加载每次100条 +- 导出功能:支持导出JSON和XML格式弹幕文件 +- 异常时间处理:使用P99分位数剔除异常时间点 +- 视图导航优化:搜索结果/剧集详情/弹幕详情逐级切换,带返回按钮和加载动画 + ### 4. 推送弹幕 推送弹幕功能支持: diff --git a/danmu_api/ui/js/apitest.js b/danmu_api/ui/js/apitest.js index 15bf6ea..ab053de 100644 --- a/danmu_api/ui/js/apitest.js +++ b/danmu_api/ui/js/apitest.js @@ -625,7 +625,7 @@ async function fetchDanmuForTest(episodeId, title, source) { const startTime = performance.now(); try { - const resp = await fetch(buildApiUrl('/api/v2/comment/' + episodeId)); + const resp = await fetch(buildApiUrl('/api/v2/comment/' + episodeId + "?format=json")); if (!resp.ok) throw new Error('HTTP ' + resp.status); const data = await resp.json(); const elapsed = ((performance.now() - startTime) / 1000).toFixed(2);