优化弹幕自动匹配规则
This commit is contained in:
15
CHANGELOG
15
CHANGELOG
@@ -1,3 +1,18 @@
|
||||
## [200.2.0] - 2025-12-04
|
||||
|
||||
### Added
|
||||
- 新增弹幕过滤功能
|
||||
- 配置文件现在支持上传json
|
||||
- 搜索结果现在支持缓存
|
||||
|
||||
### Changed
|
||||
- 登录页面现在可以保存和查看密码
|
||||
- 优化弹幕自动匹配
|
||||
- 优化超分功能
|
||||
|
||||
### Fixed
|
||||
- 弹幕自动加载失败现在有提示了
|
||||
|
||||
## [200.1.0] - 2025-12-03
|
||||
|
||||
### Changed
|
||||
|
||||
@@ -187,6 +187,7 @@ function PlayPageClient() {
|
||||
const [danmakuMatches, setDanmakuMatches] = useState<DanmakuAnime[]>([]);
|
||||
const [showDanmakuSourceSelector, setShowDanmakuSourceSelector] = useState(false);
|
||||
const [showDanmakuFilterSettings, setShowDanmakuFilterSettings] = useState(false);
|
||||
const [currentSearchKeyword, setCurrentSearchKeyword] = useState<string>(''); // 当前搜索使用的关键词
|
||||
const [toast, setToast] = useState<ToastProps | null>(null);
|
||||
|
||||
useEffect(() => {
|
||||
@@ -1632,13 +1633,14 @@ function PlayPageClient() {
|
||||
const handleDanmakuSelect = async (selection: DanmakuSelection) => {
|
||||
setCurrentDanmakuSelection(selection);
|
||||
|
||||
// 保存选择记忆
|
||||
// 保存选择记忆(包含搜索关键词)
|
||||
saveDanmakuMemory(
|
||||
videoTitleRef.current,
|
||||
selection.animeId,
|
||||
selection.episodeId,
|
||||
selection.animeTitle,
|
||||
selection.episodeTitle
|
||||
selection.episodeTitle,
|
||||
selection.searchKeyword // 保存用户使用的搜索关键词
|
||||
);
|
||||
|
||||
// 获取该动漫的所有剧集列表
|
||||
@@ -1691,13 +1693,14 @@ function PlayPageClient() {
|
||||
|
||||
setCurrentDanmakuSelection(selection);
|
||||
|
||||
// 保存选择记忆
|
||||
// 保存选择记忆(使用当前搜索关键词)
|
||||
saveDanmakuMemory(
|
||||
title,
|
||||
selection.animeId,
|
||||
selection.episodeId,
|
||||
selection.animeTitle,
|
||||
selection.episodeTitle
|
||||
selection.episodeTitle,
|
||||
currentSearchKeyword || undefined // 使用保存的搜索关键词
|
||||
);
|
||||
|
||||
// 加载弹幕
|
||||
@@ -1794,38 +1797,79 @@ function PlayPageClient() {
|
||||
|
||||
setCurrentDanmakuSelection(selection);
|
||||
|
||||
// 更新选择记忆
|
||||
// 更新选择记忆(保留原搜索词)
|
||||
saveDanmakuMemory(
|
||||
title,
|
||||
selection.animeId,
|
||||
selection.episodeId,
|
||||
selection.animeTitle,
|
||||
selection.episodeTitle
|
||||
selection.episodeTitle,
|
||||
memory.searchKeyword // 保留原有的搜索关键词
|
||||
);
|
||||
|
||||
await loadDanmaku(episode.episodeId);
|
||||
return;
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('获取弹幕剧集列表失败:', error);
|
||||
|
||||
// 如果使用记忆加载失败,清除该记忆并继续自动搜索
|
||||
console.warn('[弹幕] 使用缓存加载失败,清除缓存并从头搜索');
|
||||
if (artPlayerRef.current) {
|
||||
artPlayerRef.current.notice.show = '弹幕加载失败:无法获取剧集列表';
|
||||
artPlayerRef.current.notice.show = '缓存的弹幕源失效,正在重新搜索...';
|
||||
}
|
||||
// 清除失效的记忆
|
||||
if (typeof window !== 'undefined') {
|
||||
try {
|
||||
const memoriesJson = localStorage.getItem('danmaku_memories');
|
||||
if (memoriesJson) {
|
||||
const memories = JSON.parse(memoriesJson);
|
||||
delete memories[title];
|
||||
localStorage.setItem('danmaku_memories', JSON.stringify(memories));
|
||||
console.log('[弹幕] 已清除失效的缓存记忆');
|
||||
}
|
||||
} catch (e) {
|
||||
console.error('[弹幕] 清除缓存记忆失败:', e);
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('[弹幕] 使用缓存加载失败:', error);
|
||||
if (artPlayerRef.current) {
|
||||
artPlayerRef.current.notice.show = '缓存的弹幕源失效,正在重新搜索...';
|
||||
}
|
||||
// 清除失效的记忆
|
||||
if (typeof window !== 'undefined') {
|
||||
try {
|
||||
const memoriesJson = localStorage.getItem('danmaku_memories');
|
||||
if (memoriesJson) {
|
||||
const memories = JSON.parse(memoriesJson);
|
||||
delete memories[title];
|
||||
localStorage.setItem('danmaku_memories', JSON.stringify(memories));
|
||||
console.log('[弹幕] 已清除失效的缓存记忆');
|
||||
}
|
||||
} catch (e) {
|
||||
console.error('[弹幕] 清除缓存记忆失败:', e);
|
||||
}
|
||||
}
|
||||
}
|
||||
// 继续执行后面的自动搜索逻辑,不要 return
|
||||
}
|
||||
|
||||
// 自动搜索弹幕
|
||||
setDanmakuLoading(true);
|
||||
|
||||
// 优先使用保存的搜索关键词,否则使用视频标题
|
||||
const searchKeyword = memory?.searchKeyword || title;
|
||||
console.log('[弹幕] 搜索关键词:', searchKeyword, memory?.searchKeyword ? '(使用保存的关键词)' : '(使用视频标题)');
|
||||
|
||||
try {
|
||||
const searchResult = await searchAnime(title);
|
||||
const searchResult = await searchAnime(searchKeyword);
|
||||
|
||||
if (searchResult.success && searchResult.animes.length > 0) {
|
||||
// 如果有多个匹配结果,让用户选择
|
||||
if (searchResult.animes.length > 1) {
|
||||
console.log(`找到 ${searchResult.animes.length} 个弹幕源,等待用户选择`);
|
||||
setDanmakuMatches(searchResult.animes);
|
||||
setCurrentSearchKeyword(searchKeyword); // 保存当前搜索关键词
|
||||
setShowDanmakuSourceSelector(true);
|
||||
setDanmakuLoading(false);
|
||||
if (artPlayerRef.current) {
|
||||
@@ -1864,13 +1908,14 @@ function PlayPageClient() {
|
||||
|
||||
setCurrentDanmakuSelection(selection);
|
||||
|
||||
// 保存选择记忆
|
||||
// 保存选择记忆(保存搜索关键词)
|
||||
saveDanmakuMemory(
|
||||
title,
|
||||
selection.animeId,
|
||||
selection.episodeId,
|
||||
selection.animeTitle,
|
||||
selection.episodeTitle
|
||||
selection.episodeTitle,
|
||||
searchKeyword // 保存实际使用的搜索关键词
|
||||
);
|
||||
|
||||
// 加载弹幕
|
||||
|
||||
@@ -96,11 +96,12 @@ export default function DanmakuPanel({
|
||||
episodeId: episode.episodeId,
|
||||
animeTitle: selectedAnime.animeTitle,
|
||||
episodeTitle: episode.episodeTitle,
|
||||
searchKeyword: searchKeyword.trim() || undefined, // 使用当前搜索框的关键词
|
||||
};
|
||||
|
||||
onDanmakuSelect(selection);
|
||||
},
|
||||
[selectedAnime, onDanmakuSelect]
|
||||
[selectedAnime, searchKeyword, onDanmakuSelect]
|
||||
);
|
||||
|
||||
// 回到搜索结果
|
||||
|
||||
@@ -10,66 +10,242 @@ export interface ChangelogEntry {
|
||||
}
|
||||
|
||||
export const changelog: ChangelogEntry[] = [
|
||||
{
|
||||
version: "200.1.0",
|
||||
date: "2025-12-03",
|
||||
{
|
||||
version: '200.2.0',
|
||||
date: '2025-12-04',
|
||||
added: [
|
||||
'新增弹幕过滤功能',
|
||||
'配置文件现在支持上传json',
|
||||
'搜索结果现在支持缓存',
|
||||
],
|
||||
changed: [
|
||||
"评论抓取功能更改为懒加载",
|
||||
"评论抓取功能增加开关,默认为关闭",
|
||||
'登录页面现在可以保存和查看密码',
|
||||
'优化弹幕自动匹配',
|
||||
'优化超分功能',
|
||||
],
|
||||
fixed: [
|
||||
"修复播放页500错误"
|
||||
]
|
||||
},
|
||||
{
|
||||
version: "200.0.0",
|
||||
date: "2025-12-02",
|
||||
added: [
|
||||
"新增外部播放器跳转",
|
||||
"新增视频超分",
|
||||
"新增弹幕抓取",
|
||||
"新增评论抓取"
|
||||
],
|
||||
changed: [
|
||||
],
|
||||
fixed: [
|
||||
"修复首页卡顿"
|
||||
]
|
||||
fixed: ['弹幕自动加载失败现在有提示了'],
|
||||
},
|
||||
{
|
||||
version: "100.0.0",
|
||||
date: "2025-08-26",
|
||||
version: '200.1.0',
|
||||
date: '2025-12-03',
|
||||
added: [],
|
||||
changed: ['评论抓取功能更改为懒加载', '评论抓取功能增加开关,默认为关闭'],
|
||||
fixed: ['修复播放页500错误'],
|
||||
},
|
||||
{
|
||||
version: '200.0.0',
|
||||
date: '2025-12-02',
|
||||
added: [
|
||||
"新增对 SITE_BASE 环境变量的支持,解决 m3u8 重写时 base url 错误的问题"
|
||||
'新增外部播放器跳转',
|
||||
'新增视频超分',
|
||||
'新增弹幕抓取',
|
||||
'新增评论抓取',
|
||||
],
|
||||
changed: [],
|
||||
fixed: ['修复首页卡顿'],
|
||||
},
|
||||
{
|
||||
version: '100.0.0',
|
||||
date: '2025-08-26',
|
||||
added: [
|
||||
'新增对 SITE_BASE 环境变量的支持,解决 m3u8 重写时 base url 错误的问题',
|
||||
],
|
||||
changed: ['移除授权相关逻辑', '移除代码混淆', '移除 melody-cdn-sharon'],
|
||||
fixed: [
|
||||
// 无修复内容
|
||||
],
|
||||
},
|
||||
{
|
||||
version: '4.3.0',
|
||||
date: '2025-08-26',
|
||||
added: ['支持将 IPTV 频道添加到收藏中'],
|
||||
changed: ['禁用 flv 直播,仅支持 m3u8 直播', '降低代理 ts 分片的内存占用'],
|
||||
fixed: [
|
||||
// 无修复内容
|
||||
],
|
||||
},
|
||||
{
|
||||
version: '4.2.1',
|
||||
date: '2025-08-26',
|
||||
added: [
|
||||
// 无新增内容
|
||||
],
|
||||
changed: [
|
||||
"移除授权相关逻辑",
|
||||
"移除代码混淆",
|
||||
"移除 melody-cdn-sharon"
|
||||
// 无变更内容
|
||||
],
|
||||
fixed: ['修复直播源加载失败或离开页面后依然无限加载的问题'],
|
||||
},
|
||||
{
|
||||
version: '4.2.0',
|
||||
date: '2025-08-26',
|
||||
added: [
|
||||
'支持 flv 直播和直播地址解析到 mp4 的处理',
|
||||
'增加直播台标的 proxy 以防止 cors',
|
||||
'支持播放页选集分组的滚动翻页',
|
||||
],
|
||||
changed: ['管理后台页面的按钮增加加载中的 UI'],
|
||||
fixed: ['/api/proxy/m3u8 仅对 m3u8 内容反序列化,降低内存和 CPU 消耗'],
|
||||
},
|
||||
{
|
||||
version: '4.1.1',
|
||||
date: '2025-08-25',
|
||||
added: [
|
||||
// 无新增内容
|
||||
],
|
||||
changed: ['增加对 url-tvg 和多 epg url 的支持'],
|
||||
fixed: ['修复 epg 数据清洗中去重叠逻辑未考虑日期导致的问题'],
|
||||
},
|
||||
{
|
||||
version: '4.1.0',
|
||||
date: '2025-08-24',
|
||||
added: ['解析 m3u 自带的 epg 和自定义 epg,增加今日节目单'],
|
||||
changed: ['直播源数据刷新改为并发刷新'],
|
||||
fixed: [
|
||||
// 无修复内容
|
||||
],
|
||||
},
|
||||
{
|
||||
version: '4.0.0',
|
||||
date: '2025-08-24',
|
||||
added: ['增加 iptv 订阅和播放功能'],
|
||||
changed: [
|
||||
'搜索页面视频卡片移动端/右键菜单添加豆瓣链接',
|
||||
'搜索建议遵循色情过滤',
|
||||
],
|
||||
fixed: [
|
||||
// 无修复内容
|
||||
]
|
||||
],
|
||||
},
|
||||
{
|
||||
version: "4.3.0",
|
||||
date: "2025-08-26",
|
||||
version: '3.2.1',
|
||||
date: '2025-08-22',
|
||||
added: [
|
||||
"支持将 IPTV 频道添加到收藏中"
|
||||
],
|
||||
changed: [
|
||||
"禁用 flv 直播,仅支持 m3u8 直播",
|
||||
"降低代理 ts 分片的内存占用"
|
||||
// 无新增内容
|
||||
],
|
||||
changed: ['新增色色过滤分类', '调整搜索建议框层级'],
|
||||
fixed: [
|
||||
// 无修复内容
|
||||
]
|
||||
],
|
||||
},
|
||||
{
|
||||
version: "4.2.1",
|
||||
date: "2025-08-26",
|
||||
version: '3.2.0',
|
||||
date: '2025-08-22',
|
||||
added: [
|
||||
'视频源管理支持批量启用、禁用、删除',
|
||||
'用户管理支持批量设置用户组',
|
||||
'视频卡片右键/长按菜单新增新标签页播放',
|
||||
],
|
||||
changed: [
|
||||
'视频卡片移动端 hover 时仅保留播放按钮',
|
||||
'微调管理页面 UI 和视频卡片右键/长按菜单中的收藏样式',
|
||||
],
|
||||
fixed: ['修复了搜索栏 enter 键自动选中第一个建议项的问题'],
|
||||
},
|
||||
{
|
||||
version: '3.1.2',
|
||||
date: '2025-08-22',
|
||||
added: [
|
||||
// 无新增内容
|
||||
],
|
||||
changed: [
|
||||
// 无变更内容
|
||||
],
|
||||
fixed: ['修复移动端卡片无法点击的问题'],
|
||||
},
|
||||
{
|
||||
version: '3.1.1',
|
||||
date: '2025-08-21',
|
||||
added: [
|
||||
// 无新增内容
|
||||
],
|
||||
changed: [
|
||||
// 无变更内容
|
||||
],
|
||||
fixed: ['修复了视频卡片 hover 的非播放按钮点击后进入播放页的问题'],
|
||||
},
|
||||
{
|
||||
version: '3.1.0',
|
||||
date: '2025-08-21',
|
||||
added: [
|
||||
'增加用户组管理和用户组播放源限制',
|
||||
'增加管理面板视频源有效性检查',
|
||||
'搜索栏增加一键删除按钮',
|
||||
],
|
||||
changed: [
|
||||
'放宽授权心跳对于网络问题的判断标准',
|
||||
'统一管理面板弹窗使用 createPortal',
|
||||
'VideoCard 允许移动端响应 hover 事件',
|
||||
'移动端布局 header 常驻,搜索按钮移动到 header 右侧',
|
||||
'调大搜索接口超时时间',
|
||||
],
|
||||
fixed: ['修复 bangumi 返回的整数评分无小数导致 UI 不对齐的问题'],
|
||||
},
|
||||
{
|
||||
version: '3.0.2',
|
||||
date: '2025-08-20',
|
||||
added: [
|
||||
// 无新增内容
|
||||
],
|
||||
changed: ['优化机器码生成逻辑'],
|
||||
fixed: ['修复 redis url 不支持 rediss 协议的问题'],
|
||||
},
|
||||
{
|
||||
version: '3.0.1',
|
||||
date: '2025-08-20',
|
||||
added: [
|
||||
// 无新增内容
|
||||
],
|
||||
changed: [
|
||||
// 无变更内容
|
||||
],
|
||||
fixed: ['修复授权初始化错误'],
|
||||
},
|
||||
{
|
||||
version: '3.0.0',
|
||||
date: '2025-08-20',
|
||||
added: ['防盗卖加固', '支持自定义用户可用视频源'],
|
||||
changed: ['右键视频卡片可弹出操作菜单'],
|
||||
fixed: ['过滤掉集数为 0 的搜索结果'],
|
||||
},
|
||||
{
|
||||
version: '2.7.1',
|
||||
date: '2025-08-17',
|
||||
added: [
|
||||
// 无新增内容
|
||||
],
|
||||
changed: [
|
||||
// 无变更内容
|
||||
],
|
||||
fixed: ['修复 iOS 下版本面板可穿透滚动背景的问题'],
|
||||
},
|
||||
{
|
||||
version: '2.7.0',
|
||||
date: '2025-08-17',
|
||||
added: ['视频卡片新增移动端操作面板,优化触控屏操作体验'],
|
||||
changed: ['优化集数标题的匹配和展示逻辑'],
|
||||
fixed: ['修复设置面板和修改密码面板背景可被拖动的问题'],
|
||||
},
|
||||
{
|
||||
version: '2.6.0',
|
||||
date: '2025-08-17',
|
||||
added: [
|
||||
'新增搜索流式输出接口,并设置流式搜索为默认搜索接口,优化搜索体验',
|
||||
'新增源站搜索结果内存缓存,粒度为源站+关键词+页数,缓存 10 分钟',
|
||||
'新增豆瓣 CDN provided by @JohnsonRan',
|
||||
],
|
||||
changed: [
|
||||
'搜索结果默认为无排序状态,不再默认按照年份排序',
|
||||
'常规搜索接口无结果时,不再设置响应的缓存头',
|
||||
'移除豆瓣数据源中的 cors-anywhere 方式',
|
||||
],
|
||||
fixed: [
|
||||
'数据导出时导出站长密码,保证迁移到新账户时原站长用户可正常登录',
|
||||
'聚合卡片优化移动端源信息展示',
|
||||
],
|
||||
},
|
||||
{
|
||||
version: '2.4.1',
|
||||
date: '2025-08-15',
|
||||
added: [
|
||||
// 无新增内容
|
||||
],
|
||||
@@ -77,441 +253,173 @@ export const changelog: ChangelogEntry[] = [
|
||||
// 无变更内容
|
||||
],
|
||||
fixed: [
|
||||
"修复直播源加载失败或离开页面后依然无限加载的问题"
|
||||
]
|
||||
'对导入和 db 读取的配置文件做自检,防止 USERNAME 修改导致用户状态异常',
|
||||
],
|
||||
},
|
||||
{
|
||||
version: "4.2.0",
|
||||
date: "2025-08-26",
|
||||
added: [
|
||||
"支持 flv 直播和直播地址解析到 mp4 的处理",
|
||||
"增加直播台标的 proxy 以防止 cors",
|
||||
"支持播放页选集分组的滚动翻页"
|
||||
],
|
||||
version: '2.4.0',
|
||||
date: '2025-08-15',
|
||||
added: ['支持 kvrocks 存储(持久化 kv 存储)'],
|
||||
changed: [
|
||||
"管理后台页面的按钮增加加载中的 UI"
|
||||
// 无变更内容
|
||||
],
|
||||
fixed: [
|
||||
"/api/proxy/m3u8 仅对 m3u8 内容反序列化,降低内存和 CPU 消耗"
|
||||
]
|
||||
'修复搜索结果排序不稳定的问题',
|
||||
'导入数据时同时更新内存缓存的管理员配置',
|
||||
],
|
||||
},
|
||||
{
|
||||
version: "4.1.1",
|
||||
date: "2025-08-25",
|
||||
version: '2.3.0',
|
||||
date: '2025-08-15',
|
||||
added: ['支持站长导入导出整站数据'],
|
||||
changed: ['仅允许站长操作配置文件', '微调搜索结果过滤面板的移动端样式'],
|
||||
fixed: [
|
||||
// 无修复内容
|
||||
],
|
||||
},
|
||||
{
|
||||
version: '2.2.1',
|
||||
date: '2025-08-14',
|
||||
added: [
|
||||
// 无新增内容
|
||||
],
|
||||
changed: [
|
||||
"增加对 url-tvg 和多 epg url 的支持"
|
||||
// 无变更内容
|
||||
],
|
||||
fixed: [
|
||||
"修复 epg 数据清洗中去重叠逻辑未考虑日期导致的问题"
|
||||
]
|
||||
fixed: ['修复了筛选 panel 打开时滚动页面 panel 不跟随的问题'],
|
||||
},
|
||||
{
|
||||
version: "4.1.0",
|
||||
date: "2025-08-24",
|
||||
version: '2.2.0',
|
||||
date: '2025-08-14',
|
||||
added: [
|
||||
"解析 m3u 自带的 epg 和自定义 epg,增加今日节目单"
|
||||
'搜索结果支持按播放源、标题和年份筛选,支持按年份排序',
|
||||
'搜索界面视频卡片展示年份信息,聚合卡片展示播放源',
|
||||
],
|
||||
changed: [
|
||||
"直播源数据刷新改为并发刷新"
|
||||
// 无变更内容
|
||||
],
|
||||
fixed: [
|
||||
'修复 /api/search/resources 返回空的问题',
|
||||
'修复 upstash 实例无法编辑自定义分类的问题',
|
||||
],
|
||||
},
|
||||
{
|
||||
version: '2.1.0',
|
||||
date: '2025-08-13',
|
||||
added: ['支持通过订阅获取配置文件'],
|
||||
changed: ['微调部分文案和 UI', '删除部分无用代码'],
|
||||
fixed: [
|
||||
// 无修复内容
|
||||
],
|
||||
},
|
||||
{
|
||||
version: '2.0.1',
|
||||
date: '2025-08-13',
|
||||
added: [
|
||||
// 无新增内容
|
||||
],
|
||||
changed: ['版本检查和变更日志请求 Github'],
|
||||
fixed: ['微调管理面板样式'],
|
||||
},
|
||||
{
|
||||
version: '2.0.0',
|
||||
date: '2025-08-13',
|
||||
added: [
|
||||
'支持配置文件在线配置和编辑',
|
||||
'搜索页搜索框实时联想',
|
||||
'去除对 localstorage 模式的支持',
|
||||
],
|
||||
changed: ['播放记录删除按钮改为垃圾桶图标以消除歧义'],
|
||||
fixed: ['限制设置面板的最大长度,防止超出视口'],
|
||||
},
|
||||
{
|
||||
version: '1.1.1',
|
||||
date: '2025-08-12',
|
||||
added: [
|
||||
// 无新增内容
|
||||
],
|
||||
changed: ['修正 zwei 提供的 cors proxy 地址', '移除废弃代码'],
|
||||
fixed: ['[运维] docker workflow release 日期使用东八区日期'],
|
||||
},
|
||||
{
|
||||
version: '1.1.0',
|
||||
date: '2025-08-12',
|
||||
added: ['每日新番放送功能,展示每日新番放送的番剧'],
|
||||
changed: [
|
||||
// 无变更内容
|
||||
],
|
||||
fixed: ['修复远程 CHANGELOG 无法提取变更内容的问题'],
|
||||
},
|
||||
{
|
||||
version: '1.0.5',
|
||||
date: '2025-08-12',
|
||||
added: [
|
||||
// 无新增内容
|
||||
],
|
||||
changed: ['实现基于 Git 标签的自动 Release 工作流'],
|
||||
fixed: [
|
||||
// 无修复内容
|
||||
],
|
||||
},
|
||||
{
|
||||
version: '1.0.4',
|
||||
date: '2025-08-11',
|
||||
added: ['优化版本管理工作流,实现单点修改'],
|
||||
changed: ['版本号现在从 CHANGELOG 自动提取,无需手动维护 VERSION.txt'],
|
||||
fixed: [
|
||||
// 无修复内容
|
||||
],
|
||||
},
|
||||
{
|
||||
version: '1.0.3',
|
||||
date: '2025-08-11',
|
||||
added: [
|
||||
// 无新增内容
|
||||
],
|
||||
changed: ['升级播放器 Artplayer 至版本 5.2.5'],
|
||||
fixed: [
|
||||
// 无修复内容
|
||||
],
|
||||
},
|
||||
{
|
||||
version: '1.0.2',
|
||||
date: '2025-08-11',
|
||||
added: [
|
||||
// 无新增内容
|
||||
],
|
||||
changed: [
|
||||
'版本号比较机制恢复为数字比较,仅当最新版本大于本地版本时才认为有更新',
|
||||
'[运维] 自动替换 version.ts 中的版本号为 VERSION.txt 中的版本号',
|
||||
],
|
||||
fixed: [
|
||||
// 无修复内容
|
||||
]
|
||||
],
|
||||
},
|
||||
{
|
||||
version: "4.0.0",
|
||||
date: "2025-08-24",
|
||||
added: [
|
||||
"增加 iptv 订阅和播放功能"
|
||||
],
|
||||
changed: [
|
||||
"搜索页面视频卡片移动端/右键菜单添加豆瓣链接",
|
||||
"搜索建议遵循色情过滤"
|
||||
],
|
||||
fixed: [
|
||||
// 无修复内容
|
||||
]
|
||||
},
|
||||
{
|
||||
version: "3.2.1",
|
||||
date: "2025-08-22",
|
||||
added: [
|
||||
// 无新增内容
|
||||
],
|
||||
changed: [
|
||||
"新增色色过滤分类",
|
||||
"调整搜索建议框层级"
|
||||
],
|
||||
fixed: [
|
||||
// 无修复内容
|
||||
]
|
||||
},
|
||||
{
|
||||
version: "3.2.0",
|
||||
date: "2025-08-22",
|
||||
added: [
|
||||
"视频源管理支持批量启用、禁用、删除",
|
||||
"用户管理支持批量设置用户组",
|
||||
"视频卡片右键/长按菜单新增新标签页播放"
|
||||
],
|
||||
changed: [
|
||||
"视频卡片移动端 hover 时仅保留播放按钮",
|
||||
"微调管理页面 UI 和视频卡片右键/长按菜单中的收藏样式"
|
||||
],
|
||||
fixed: [
|
||||
"修复了搜索栏 enter 键自动选中第一个建议项的问题"
|
||||
]
|
||||
},
|
||||
{
|
||||
version: "3.1.2",
|
||||
date: "2025-08-22",
|
||||
version: '1.0.1',
|
||||
date: '2025-08-11',
|
||||
added: [
|
||||
// 无新增内容
|
||||
],
|
||||
changed: [
|
||||
// 无变更内容
|
||||
],
|
||||
fixed: [
|
||||
"修复移动端卡片无法点击的问题"
|
||||
]
|
||||
fixed: ['修复版本检查功能,只要与最新版本号不一致即认为有更新'],
|
||||
},
|
||||
{
|
||||
version: "3.1.1",
|
||||
date: "2025-08-21",
|
||||
version: '1.0.0',
|
||||
date: '2025-08-10',
|
||||
added: [
|
||||
// 无新增内容
|
||||
],
|
||||
changed: [
|
||||
// 无变更内容
|
||||
],
|
||||
fixed: [
|
||||
"修复了视频卡片 hover 的非播放按钮点击后进入播放页的问题"
|
||||
]
|
||||
},
|
||||
{
|
||||
version: "3.1.0",
|
||||
date: "2025-08-21",
|
||||
added: [
|
||||
"增加用户组管理和用户组播放源限制",
|
||||
"增加管理面板视频源有效性检查",
|
||||
"搜索栏增加一键删除按钮"
|
||||
],
|
||||
changed: [
|
||||
"放宽授权心跳对于网络问题的判断标准",
|
||||
"统一管理面板弹窗使用 createPortal",
|
||||
"VideoCard 允许移动端响应 hover 事件",
|
||||
"移动端布局 header 常驻,搜索按钮移动到 header 右侧",
|
||||
"调大搜索接口超时时间"
|
||||
],
|
||||
fixed: [
|
||||
"修复 bangumi 返回的整数评分无小数导致 UI 不对齐的问题"
|
||||
]
|
||||
},
|
||||
{
|
||||
version: "3.0.2",
|
||||
date: "2025-08-20",
|
||||
added: [
|
||||
// 无新增内容
|
||||
],
|
||||
changed: [
|
||||
"优化机器码生成逻辑"
|
||||
],
|
||||
fixed: [
|
||||
"修复 redis url 不支持 rediss 协议的问题"
|
||||
]
|
||||
},
|
||||
{
|
||||
version: "3.0.1",
|
||||
date: "2025-08-20",
|
||||
added: [
|
||||
// 无新增内容
|
||||
],
|
||||
changed: [
|
||||
// 无变更内容
|
||||
],
|
||||
fixed: [
|
||||
"修复授权初始化错误"
|
||||
]
|
||||
},
|
||||
{
|
||||
version: "3.0.0",
|
||||
date: "2025-08-20",
|
||||
added: [
|
||||
"防盗卖加固",
|
||||
"支持自定义用户可用视频源"
|
||||
],
|
||||
changed: [
|
||||
"右键视频卡片可弹出操作菜单"
|
||||
],
|
||||
fixed: [
|
||||
"过滤掉集数为 0 的搜索结果"
|
||||
]
|
||||
},
|
||||
{
|
||||
version: "2.7.1",
|
||||
date: "2025-08-17",
|
||||
added: [
|
||||
// 无新增内容
|
||||
],
|
||||
changed: [
|
||||
// 无变更内容
|
||||
],
|
||||
fixed: [
|
||||
"修复 iOS 下版本面板可穿透滚动背景的问题"
|
||||
]
|
||||
},
|
||||
{
|
||||
version: "2.7.0",
|
||||
date: "2025-08-17",
|
||||
added: [
|
||||
"视频卡片新增移动端操作面板,优化触控屏操作体验"
|
||||
],
|
||||
changed: [
|
||||
"优化集数标题的匹配和展示逻辑"
|
||||
],
|
||||
fixed: [
|
||||
"修复设置面板和修改密码面板背景可被拖动的问题"
|
||||
]
|
||||
},
|
||||
{
|
||||
version: "2.6.0",
|
||||
date: "2025-08-17",
|
||||
added: [
|
||||
"新增搜索流式输出接口,并设置流式搜索为默认搜索接口,优化搜索体验",
|
||||
"新增源站搜索结果内存缓存,粒度为源站+关键词+页数,缓存 10 分钟",
|
||||
"新增豆瓣 CDN provided by @JohnsonRan"
|
||||
],
|
||||
changed: [
|
||||
"搜索结果默认为无排序状态,不再默认按照年份排序",
|
||||
"常规搜索接口无结果时,不再设置响应的缓存头",
|
||||
"移除豆瓣数据源中的 cors-anywhere 方式"
|
||||
],
|
||||
fixed: [
|
||||
"数据导出时导出站长密码,保证迁移到新账户时原站长用户可正常登录",
|
||||
"聚合卡片优化移动端源信息展示"
|
||||
]
|
||||
},
|
||||
{
|
||||
version: "2.4.1",
|
||||
date: "2025-08-15",
|
||||
added: [
|
||||
// 无新增内容
|
||||
],
|
||||
changed: [
|
||||
// 无变更内容
|
||||
],
|
||||
fixed: [
|
||||
"对导入和 db 读取的配置文件做自检,防止 USERNAME 修改导致用户状态异常"
|
||||
]
|
||||
},
|
||||
{
|
||||
version: "2.4.0",
|
||||
date: "2025-08-15",
|
||||
added: [
|
||||
"支持 kvrocks 存储(持久化 kv 存储)"
|
||||
],
|
||||
changed: [
|
||||
// 无变更内容
|
||||
],
|
||||
fixed: [
|
||||
"修复搜索结果排序不稳定的问题",
|
||||
"导入数据时同时更新内存缓存的管理员配置"
|
||||
]
|
||||
},
|
||||
{
|
||||
version: "2.3.0",
|
||||
date: "2025-08-15",
|
||||
added: [
|
||||
"支持站长导入导出整站数据"
|
||||
],
|
||||
changed: [
|
||||
"仅允许站长操作配置文件",
|
||||
"微调搜索结果过滤面板的移动端样式"
|
||||
],
|
||||
fixed: [
|
||||
// 无修复内容
|
||||
]
|
||||
},
|
||||
{
|
||||
version: "2.2.1",
|
||||
date: "2025-08-14",
|
||||
added: [
|
||||
// 无新增内容
|
||||
],
|
||||
changed: [
|
||||
// 无变更内容
|
||||
],
|
||||
fixed: [
|
||||
"修复了筛选 panel 打开时滚动页面 panel 不跟随的问题"
|
||||
]
|
||||
},
|
||||
{
|
||||
version: "2.2.0",
|
||||
date: "2025-08-14",
|
||||
added: [
|
||||
"搜索结果支持按播放源、标题和年份筛选,支持按年份排序",
|
||||
"搜索界面视频卡片展示年份信息,聚合卡片展示播放源"
|
||||
],
|
||||
changed: [
|
||||
// 无变更内容
|
||||
],
|
||||
fixed: [
|
||||
"修复 /api/search/resources 返回空的问题",
|
||||
"修复 upstash 实例无法编辑自定义分类的问题"
|
||||
]
|
||||
},
|
||||
{
|
||||
version: "2.1.0",
|
||||
date: "2025-08-13",
|
||||
added: [
|
||||
"支持通过订阅获取配置文件"
|
||||
],
|
||||
changed: [
|
||||
"微调部分文案和 UI",
|
||||
"删除部分无用代码"
|
||||
],
|
||||
fixed: [
|
||||
// 无修复内容
|
||||
]
|
||||
},
|
||||
{
|
||||
version: "2.0.1",
|
||||
date: "2025-08-13",
|
||||
added: [
|
||||
// 无新增内容
|
||||
],
|
||||
changed: [
|
||||
"版本检查和变更日志请求 Github"
|
||||
],
|
||||
fixed: [
|
||||
"微调管理面板样式"
|
||||
]
|
||||
},
|
||||
{
|
||||
version: "2.0.0",
|
||||
date: "2025-08-13",
|
||||
added: [
|
||||
"支持配置文件在线配置和编辑",
|
||||
"搜索页搜索框实时联想",
|
||||
"去除对 localstorage 模式的支持"
|
||||
],
|
||||
changed: [
|
||||
"播放记录删除按钮改为垃圾桶图标以消除歧义"
|
||||
],
|
||||
fixed: [
|
||||
"限制设置面板的最大长度,防止超出视口"
|
||||
]
|
||||
},
|
||||
{
|
||||
version: "1.1.1",
|
||||
date: "2025-08-12",
|
||||
added: [
|
||||
// 无新增内容
|
||||
],
|
||||
changed: [
|
||||
"修正 zwei 提供的 cors proxy 地址",
|
||||
"移除废弃代码"
|
||||
],
|
||||
fixed: [
|
||||
"[运维] docker workflow release 日期使用东八区日期"
|
||||
]
|
||||
},
|
||||
{
|
||||
version: "1.1.0",
|
||||
date: "2025-08-12",
|
||||
added: [
|
||||
"每日新番放送功能,展示每日新番放送的番剧"
|
||||
],
|
||||
changed: [
|
||||
// 无变更内容
|
||||
],
|
||||
fixed: [
|
||||
"修复远程 CHANGELOG 无法提取变更内容的问题"
|
||||
]
|
||||
},
|
||||
{
|
||||
version: "1.0.5",
|
||||
date: "2025-08-12",
|
||||
added: [
|
||||
// 无新增内容
|
||||
],
|
||||
changed: [
|
||||
"实现基于 Git 标签的自动 Release 工作流"
|
||||
],
|
||||
fixed: [
|
||||
// 无修复内容
|
||||
]
|
||||
},
|
||||
{
|
||||
version: "1.0.4",
|
||||
date: "2025-08-11",
|
||||
added: [
|
||||
"优化版本管理工作流,实现单点修改"
|
||||
],
|
||||
changed: [
|
||||
"版本号现在从 CHANGELOG 自动提取,无需手动维护 VERSION.txt"
|
||||
],
|
||||
fixed: [
|
||||
// 无修复内容
|
||||
]
|
||||
},
|
||||
{
|
||||
version: "1.0.3",
|
||||
date: "2025-08-11",
|
||||
added: [
|
||||
// 无新增内容
|
||||
],
|
||||
changed: [
|
||||
"升级播放器 Artplayer 至版本 5.2.5"
|
||||
],
|
||||
fixed: [
|
||||
// 无修复内容
|
||||
]
|
||||
},
|
||||
{
|
||||
version: "1.0.2",
|
||||
date: "2025-08-11",
|
||||
added: [
|
||||
// 无新增内容
|
||||
],
|
||||
changed: [
|
||||
"版本号比较机制恢复为数字比较,仅当最新版本大于本地版本时才认为有更新",
|
||||
"[运维] 自动替换 version.ts 中的版本号为 VERSION.txt 中的版本号"
|
||||
],
|
||||
fixed: [
|
||||
// 无修复内容
|
||||
]
|
||||
},
|
||||
{
|
||||
version: "1.0.1",
|
||||
date: "2025-08-11",
|
||||
added: [
|
||||
// 无新增内容
|
||||
],
|
||||
changed: [
|
||||
// 无变更内容
|
||||
],
|
||||
fixed: [
|
||||
"修复版本检查功能,只要与最新版本号不一致即认为有更新"
|
||||
]
|
||||
},
|
||||
{
|
||||
version: "1.0.0",
|
||||
date: "2025-08-10",
|
||||
added: [
|
||||
"基于 Semantic Versioning 的版本号机制",
|
||||
"版本信息面板,展示本地变更日志和远程更新日志"
|
||||
'基于 Semantic Versioning 的版本号机制',
|
||||
'版本信息面板,展示本地变更日志和远程更新日志',
|
||||
],
|
||||
changed: [
|
||||
// 无变更内容
|
||||
],
|
||||
fixed: [
|
||||
// 无修复内容
|
||||
]
|
||||
}
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
export default changelog;
|
||||
|
||||
@@ -220,6 +220,7 @@ export interface DanmakuMemory {
|
||||
animeTitle: string;
|
||||
episodeTitle: string;
|
||||
timestamp: number;
|
||||
searchKeyword?: string; // 用户手动搜索时使用的关键词
|
||||
}
|
||||
|
||||
// 保存弹幕选择记忆
|
||||
@@ -228,7 +229,8 @@ export function saveDanmakuMemory(
|
||||
animeId: number,
|
||||
episodeId: number,
|
||||
animeTitle: string,
|
||||
episodeTitle: string
|
||||
episodeTitle: string,
|
||||
searchKeyword?: string // 可选的搜索关键词
|
||||
): void {
|
||||
if (typeof window === 'undefined') return;
|
||||
|
||||
@@ -240,6 +242,7 @@ export function saveDanmakuMemory(
|
||||
animeTitle,
|
||||
episodeTitle,
|
||||
timestamp: Date.now(),
|
||||
searchKeyword, // 保存搜索关键词
|
||||
};
|
||||
|
||||
// 获取现有的记忆
|
||||
|
||||
@@ -113,4 +113,5 @@ export interface DanmakuSelection {
|
||||
episodeId: number;
|
||||
animeTitle: string;
|
||||
episodeTitle: string;
|
||||
searchKeyword?: string; // 用户搜索时使用的关键词
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* eslint-disable no-console */
|
||||
|
||||
const CURRENT_VERSION = '200.1.0';
|
||||
const CURRENT_VERSION = '200.2.0';
|
||||
|
||||
// 导出当前版本号供其他地方使用
|
||||
export { CURRENT_VERSION };
|
||||
|
||||
Reference in New Issue
Block a user