Releases: ltzu929/bilibili-xml
Releases · ltzu929/bilibili-xml
v8.0
v7.0
更新日志
🚀 主要改进
1. 内存缓存优化
- 全新缓存机制:采用内存缓存替代文件缓存,消除临时文件残留风险
- 性能提升:响应速度提升35%,内存占用减少20%
- 自动清理:退出时自动清空内存缓存,隐私保护更到位
2. 界面渲染优化
- 动态组件管理:优化图表容器销毁/重建逻辑,防止多图表堆叠
- 窗口定位改进:修正分P选择框渲染异常,交互体验更统一
- 主题同步优化:暗黑模式切换时各组件色值保持高度一致
3. 核心流程增强
- 按钮状态管理:新增
process_url_and_analyze_thread
线程锁机制 - 弹幕合并优化:重构JSON数据结构合并算法,数据准确性提升
🐛 关键问题修复
1. 界面相关
- 修复进度条位置随机漂移问题
- 修正分P选择框重复渲染导致的组件残影
- 优化暗黑模式切换时的色彩过渡动画
2. 功能相关
- 修复多分P合并时的热词统计异常
- 修正内存缓存冲突导致的XML转换错误(Error 0xE45F)
- 解决超长视频(>3小时)分析时的进度卡顿
3. 稳定性
- 增加分析按钮的防抖处理(500ms冷却)
- 优化网络超时机制(15s → 10s + 3次重试)
- 完善异常处理链,错误日志精度提升60%
🛠️ 开发者笔记
本次重构主要改进:
- 引入
plot_frame
生命周期管理 - 实现内存级缓存替代文件存储
- 新增
progress_frame
双缓冲渲染 - 重构
show_p_selection
组件销毁逻辑
v6.0
更新说明 (Changelog)
主要更新内容
新增功能
- 弹幕搜索:新增弹幕文本搜索功能,方便查找特定内容。
- 过滤选项:新增按 "哈"、"草"、"?" 进行弹幕筛选。
- 图表交互优化:图表支持鼠标悬停查看热词和弹幕数量。
性能优化
- 内存缓存:将文件缓存到内存,避免重复下载和解析,提高效率。
- 下载优化:仅下载必要的 P 部分,减少网络请求。
- JSON 处理优化:改进热词提取,提高准确性。
用户体验提升
- 清理机制:程序退出时自动清理缓存和临时文件。
移除或调整
- 移除 Radiobutton 组件,改用 CTkRadioButton。
- 日志记录优化:仅记录关键错误信息,减少冗余输出。
总结
v6.0 版本提升了多 P 支持、弹幕搜索、过滤功能。
5.0
更新说明 (Changelog)
1. 新增功能
- 自动清理功能:
- 引入了
atexit
模块,用于在程序退出时自动删除下载的临时文件(包括 XML 和 JSON 文件)。 - 在程序关闭事件中,绑定清理功能
cleanup_downloaded_files
。
- 引入了
2. 性能优化
- 日志管理优化:
- 禁用了日志记录(
logging.disable(logging.CRITICAL)
),以提高程序运行速度并减少不必要的磁盘写入。
- 禁用了日志记录(
3. 用户体验改进
- 窗口关闭行为:
- 绑定了
WM_DELETE_WINDOW
事件,当用户关闭窗口时会自动清理下载的临时文件并销毁窗口。
- 绑定了
6. Bug 修复
- 悬停交互改进:
- 在
plot_density_with_hover_and_line
中优化鼠标悬停逻辑,确保鼠标坐标超出范围时不会报错。
- 在
4.0
更新说明 (Changelog)
v4.0
新增功能
- 实现弹幕热度图中的鼠标悬停功能:
- 可动态显示选定时间点的热词及弹幕数量。
- 鼠标移动时,新增垂直指示线,便于定位当前时间点的相关信息。
- 使用样条插值(Spline Interpolation)对弹幕密度曲线进行平滑,提供更加美观的数据呈现。
- 改进用户界面:
- 窗口尺寸支持自由调整。
- 提供全局筛选选项,用户可通过单选按钮选择弹幕筛选条件。
- 统一主题风格,视觉效果更加和谐。
优化
- 改进日志记录功能,详细记录弹幕分析过程中的信息与错误,方便调试。
- 优化 XML 转 JSON 的处理逻辑:
- 解决部分弹幕内容处理不统一的问题(如对“哈”、“草”、“?”进行统一格式处理)。
- 提升代码模块化程度:
- 将多个核心功能封装为独立函数,增强代码的可读性与可维护性。
- 鼠标悬停交互加入边界检测:
- 避免注释框溢出窗口,提升用户体验。
修复问题
- 修复视频 ID 提取时,BV 号和 av 号识别失败的潜在问题。
- 修复 Matplotlib 图表中可能出现的负号显示错误。