Changelog
本文档记录 BiliDanmakuSender 的所有重要变更。
格式基于 Keep a Changelog,
版本号遵循 Semantic Versioning。
[2.6.0] - Unreleased
Added
- 多任务队列系统:支持多个任务排队发送,每个任务独立配置发送策略
- 任务详情弹窗:支持编辑视频目标、弹幕文件和发送配置
- 编辑器改为发射器附属弹窗:直接编辑任务弹幕数据,沙盒模式支持撤销
- 监视器重构为队列总体监视:移除单任务监视,支持在线核销
- 历史记录验证功能:一键检测弹幕历史页弹幕状态
- 配置与账号文件原子写入:防止崩溃损坏
- CI 测试工作流:新增 Pytest GitHub Actions 测试
Changed
- DanmakuVerifier 分离核销逻辑:纯依赖注入,职责清晰
- AuthService/VideoFetcher 改为纯依赖注入:消除静态方法
- SenderController 拆分为 sender 包:controller.py + workers.py
- platform.py 合并:notification 和 system_utils 合并为平台服务
- UI 目录重组:业务页面移入 views/ 目录
- 七层单向依赖架构:types → config → repo → service → runtime → controller → ui
- 日志系统改造:格式改为
[时间] [线程/级别] [模块]: 消息
Fixed
- 修复配置和账号文件截断清空导致数据丢失的问题
[2.5.0] - 2026-08-17
Added
- 多账号加密凭据存储:支持 UID 维度的账号管理与一键切换
- 账号管理页面:支持批量检测账号状态、清除失效账号与等级图标展示
- 发送前确认对话框:防止误操作
- 全局快捷键:Ctrl+O 打开文件、Ctrl+Enter 发送、Ctrl+, 打开设置
- 局部时间轴平移:支持针对选中弹幕的时间轴平移
- Nightly Build 定时工作流
Changed
- 七层单向依赖架构:types → config → repo → service → runtime → controller → ui
- HistoryManager 去单例化:改为构造函数依赖注入
- VideoState 迁移至 runtime 层:改用 EventedModel,修复编辑器-发射器数据同步问题
- SenderPage 拆分:拆分为 sender 子包
- 日志系统改造:格式改为
[时间] [线程/级别] [模块]: 消息 - 爆发模式:添加 checkbox 开关
- 拖放体验:发射器拖放文件时显示覆盖层提示
- 时间轴平移上限:提高至 24 小时
Fixed
- 修复弹幕预览框字号与显示大小不符的问题
- 修复 create_xml_from_danmakus 写入失败时吞掉异常的问题
- 修复 GuiLoggingHandler 跨线程安全问题
- 修复 WbiSigner 锁内执行网络 I/O 阻塞的问题
- 修复编辑器导入/修改弹幕后,发射器 UI 不同步的问题
- 修复 Nightly Build 版本更新检查失效的问题
[2.4.1] - 2026-04-07
Added
- 新增或导入弹幕时自动开启全量预览并聚焦
Fixed
- 引入动态深浅主题引擎,修复深色模式下文字不可读的 Bug
- 修复扫码登录后头像未按预期自动刷新的问题
Changed
- 提取资源路径和样式加载到共享模块
- 整合图形渲染逻辑至 image_processor
[2.4.0] - 2026-04-06
Added
- 视觉模拟预览:属性编辑器顶部新增实时渲染画板
- 彩虹阵列生成器:支持在同一时刻爆发生成绚丽的"弹幕墙"
- 扫码登录:支持通过手机 B 站直接扫码登录
- 系统托盘与看板:支持最小化至任务栏托盘
- 文件拖放支持:在发射器页面直接拖入 XML 文件
- 编辑器文件操作:支持新建、导入、导出标准 XML 弹幕文件
- 指数退避重试:遇到风控限流或网络波动时自动重试
- 监视器统计基线:支持灵活设置"统计起点"
- 用户状态模型:显示用户昵称与智能裁剪的头像
Changed
- 架构跃迁:按照 Clean Architecture 彻底重组核心目录
- MVVM 数据驱动:引入 UIBinder 双向绑定引擎
- 异步基建:统一任务运行器为 concurrency 模块
- 代码规范化:所有自定义信号统一为 camelCase
- ETA 算法优化:时间复杂度降至 O(1)
- 历史记录异步查询:消除大数据量下的 UI 阻塞
Fixed
- 实现 WbiSigner 线程锁,修复竞态条件导致的启动时冗余 API 请求
- 修复未登录与登录时默认用户头像大小不一致的问题
[2.3.0] - 2026-03-14
Added
- 原子化撤销系统:基于原子变换记录的会话管理层
- 侧边栏属性检查器:支持实时修改颜色、模式、字号
- 时间轴偏移功能:支持毫秒级全局补偿
- ETA 结束时间预测:根据发送策略实时预测剩余时间
- 关键词拦截系统:支持自定义过滤词
- 多行编辑对话框:优化长文本弹幕的修改体验
- 官方文档站:集成 MkDocs Material 框架
Changed
- "校验器"更名为"编辑器"
- 编辑器会话层重构:基于原子变换架构
- 数据库迁移:废弃原生 SQL,全面迁移至 Peewee ORM
- 任务运行时锁定:发送时自动锁定策略配置项
Fixed
- 修复监视器长文本导致窗口无法缩小的 Bug
[2.2.0] - 2026-01-31
Added
- 智能断点续传:引入"计数对账"机制,自动跳过已发送的弹幕
- 弹幕历史档案:新增历史记录标签页,支持筛选查询
- 智能链接解析:支持粘贴完整 B 站视频链接,自动解析分 P
Changed
- 发送核心重构:引入 SendingContext 上下文对象
- HistoryManager 单例:确保数据库连接稳定性
- 构建迁移:全面迁移至 pyproject.toml 标准
Removed
- 弱化"保存 unsent.xml"逻辑
[2.1.0] - 2026-01-23
Added
- 历史存证系统:引入 HistoryManager (SQLite),自动记录弹幕发送状态
- 监视器仪表盘:实时展示已发送 / 已存活 / 待验证 / 疑似丢失
- 弹幕实体类:引入 Danmaku 实体类与结构化 DanmakuSendResult
Changed
- 监视器逻辑重写:基于 dmid 唯一指纹与本地数据库精确核销
- 监视器零依赖运行:不再需要加载本地 XML 文件
- API 客户端重构:支持参数透传与原始 JSON 响应处理
- 核心模块解耦:拆分为独立模块
- 错误码集中管理:中央化 B 站弹幕错误码与异常处理
Removed
- config.json 中的
tolerance配置项
[2.0.0] - 2026-01-13
从 Tkinter (ttkbootstrap) 迁移到 PySide6 的底层框架全线迁移。
Added
- 弹幕校验器:升级为 QTableWidget 表格交互
- 全量配置持久化:支持所有参数断电保存
- 帮助系统:内置 Markdown 渲染引擎
- 全局状态管理:引入 AppState
- 自动更新:重构自动更新模块适配 PySide6
- 主菜单栏:添加帮助与关于对话框
Changed
- UI 框架迁移:从 Tkinter 迁移到 PySide6
- 构建引擎:由 PyInstaller 迁移至 Nuitka
- 代码解耦:提取通用 BaseWorker 基类
- 资源管理:建立智能资源寻址逻辑
Fixed
- 修复 Inno Setup 简体中文语言包下载 URL 404
[1.3.0] - 2026-01-05
Added
- 撤销支持:引入命令模式,支持对编辑操作进行撤销
- 批量处理:新增批量去除换行符、批量截断过长弹幕
- 状态保护:在重置列表或重新验证前弹出二次确认
- 全局拦截:校验器存在未应用修改时,阻止发射器启动任务
- 自动停止:发送循环支持设置阈值自动停止
- 失败归类:任务结束后按失败原因归类统计,支持导出 XML
Changed
- 校验器架构:拆分 ValidatorTab,引入 ValidatorSession
- 日志路由:重构为白名单模式
Fixed
- 修复校验器日志错误输出至发射器界面的问题
[1.2.0] - 2026-01-01
Added
- 任务防中断机制:新增阻止系统休眠逻辑
- 智能控频系统:引入智能延迟管理器,支持爆发模式
- 网络环境适配:新增系统代理开关
- 自动更新检测:启动时自动检查 GitHub 最新版本
Changed
- 任务结算流程重构:修复 GUI 假死问题
- 共享数据模型重构:优化配置状态管理
Fixed
- 修复打开日志文件夹意外触发浏览器的问题
- 修正弹幕校验器弹窗参数顺序错误的问题
[1.1.0] - 2025-11-29
Added
- 发送前任务确认:防止误操作
- 桌面通知:任务结束后提供系统通知
- 未发送弹幕保存:中断或失败后支持保存
- 精确进度条:任务进展一目了然
- 打开日志文件夹:排查问题更便捷
Changed
- 项目结构标准化重构:提升打包后的稳定性和可维护性
[1.0.1] - 2025-11-01
Added
- BV号格式本地校验:避免格式错误导致不必要的等待
- 智能分P选择:单分P自动选中,多分P明确提示
Fixed
- 网络重试机制:遇到超时或连接错误时自动重试
[1.0.0] - 2025-10-30
B站弹幕补档工具正式版发布。
Added
- 弹幕发射器:加载本地 XML 弹幕文件,以自定义随机延迟发送到指定视频分P
- 弹幕校验器:识别不符合 B 站规范的弹幕,支持直接编辑或删除
- 弹幕监视器:实时跟踪弹幕补档进度
- 凭证管理:通过系统密钥环加密存储 Cookie
- 简洁 UI:清晰的标签页布局,详细日志输出