跳转至

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:清晰的标签页布局,详细日志输出