优化弹幕自动匹配规则

This commit is contained in:
mtvpls
2025-12-04 21:04:39 +08:00
parent e2d0a62c2a
commit eaab95e5b0
7 changed files with 426 additions and 453 deletions

View File

@@ -1,3 +1,18 @@
## [200.2.0] - 2025-12-04
### Added
- 新增弹幕过滤功能
- 配置文件现在支持上传json
- 搜索结果现在支持缓存
### Changed
- 登录页面现在可以保存和查看密码
- 优化弹幕自动匹配
- 优化超分功能
### Fixed
- 弹幕自动加载失败现在有提示了
## [200.1.0] - 2025-12-03
### Changed

View File

@@ -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 // 保存实际使用的搜索关键词
);
// 加载弹幕

View File

@@ -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]
);
// 回到搜索结果

View File

@@ -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;

View File

@@ -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, // 保存搜索关键词
};
// 获取现有的记忆

View File

@@ -113,4 +113,5 @@ export interface DanmakuSelection {
episodeId: number;
animeTitle: string;
episodeTitle: string;
searchKeyword?: string; // 用户搜索时使用的关键词
}

View File

@@ -1,6 +1,6 @@
/* eslint-disable no-console */
const CURRENT_VERSION = '200.1.0';
const CURRENT_VERSION = '200.2.0';
// 导出当前版本号供其他地方使用
export { CURRENT_VERSION };