Skip to content

v1.2.0

Choose a tag to compare

@Mrslippe Mrslippe released this 07 Oct 17:56
· 302 commits to main since this release

DDtoolkit v1.2.0

个人向 VTuber 帖子 / 账号证据归档工具 —— 定时抓取 B 站、微博、小红书与抖音的帖子与账号统计并归档到本地 SQLite,桌面端浏览与管理。

v1.1.1 → v1.2.0 是一个功能版(devlog/377–445):单推模式、背景取景与背景视频、
左栏自定义排序、播放器全屏卡顿定案,外加「小 V 加不上」等一批修复。

⚠️ 本版有数据库迁移(f009 → f012):首次启动自动迁移,迁移前会自动备份到
<数据目录>/backups/。覆盖安装即可,不需要手动做任何事。

🎬 单推模式:只剩背景图,鼠标一动就回来(需求 6)

图标栏上多了一颗 单推 开关(一个 V 都没进时不可用)。打开它是固定的分段收起动画
(左栏 → 左侧工具栏 → 顶栏);全部收起后停手 5 秒 ⇒ 页面元素下滑渐隐、白纱罩一起撤掉
(只在卡片视图生效),背景图完整露出来;鼠标一动,界面元素上滑渐显、遮罩回来。

单推中顶栏与左侧工具栏仍可贴边唤出(顶部一条 12px 的带子、左缘是工具栏整宽),
唤出时界面元素立刻恢复;唤出的两栏一定压在面板的浮层之上(这类"按钮被顶掉"的层级问题
在本版修过两轮)。

左栏的收起 / 展开现在是常驻功能:不管在哪种模式,鼠标移到左栏右缘(收起后是内容区
左缘)那条窄边上,拉手才会现身,点一下即可收起 / 展开,偏好跨启动记住。

🖼️ 背景:能调位置,也能放视频(需求 7 / 9)

  • 背景视频:上传一段视频当背景(与背景图共用同一条流式落盘与内容校验纪律),可单独清除;
  • 取景(调位置):预览框里 拖 = 平移、滚轮 = 缩放,松手才存;口径是「图片锚点」
    (保铺满、锚点守恒,与 object-position 同向);
  • 图片与视频的取景互不相干,一个按钮切换在调哪一份;调视频时用首帧当预览;
  • 播放器一开始播放,背景就自动让位(不再和视频抢注意力)。

📺 播放器:全屏卡顿定案 + 键盘与焦点(需求 2 / 3)

  • 全屏卡顿(长时间全屏播放掉帧)定案到元凶:硬件视频解码器。壳里关掉
    --disable-accelerated-video-decode 之后实测全屏丢帧 10.8% → 0.1%(devlog/403/404);
    排查期间加的诊断开关与权宜改动全部撤掉,窗口恢复分层透明(devlog/407–411);
  • 键盘改由「指针移入」接管:指针进入播放器才响应 /、k、←→↑↓、m、f,移出交回页面;
    并且播放器移出 Tab 序(需求 3);
  • 进出全屏加了一段过渡(不再"生硬地跳");切 V 时背景不再闪白 —— 改成双层交叉淡入 +
    预加载,任何一帧都至少有一层是不透明的(devlog/378)。

🗂️ 左栏:按住拖动排序 + 排序栏(需求 4 / 5)

  • 左栏按住 350ms 进入拖动、按落点重排(乐观渲染,失败回退);拿起/松手是双向缓动;
  • 筛选浮窗里新增排序栏六档,与拖动排序共用同一份顺序数据(迁移 f010)。

🐛 其它修复

  • 小 V 加不上:B 站给新账号发的 mid 是 16 位,旧判据卡在 12 位 ⇒ 库里约四分之一的
    「池外新 V」搜得到、点添加却没反应。前后端判据一起放宽到 20 位(devlog/378);
  • 通知「已读」的让位时机改为滑出 60%–80% 之后再顶上来(需求 10);
  • 单推模式下「唤出的工具栏被面板浮层盖住按钮」「正常模式收起左栏时工具栏一起消失」
    「收起/展开有延迟」等一串视觉与手感问题。

🔧 维护者侧(不影响使用)

  • CI 两条腿的四处根因收口(干净 clone 上的资源 glob、文档路径引用、补装 build 组的顺序);
  • 单推那批代码里 16 处指向 devlog/430/434 的悬空指针修正(那两个编号从未存在);
  • UI-MAP 的图标栏那一行按代码重写,并立下一条:文档里只写旋钮的名字与真源、不写它的现值。

📦 资产

  • DDtoolkit_1.2.0_x64-setup.exe — Windows NSIS 安装包(用户级安装,含 extension\)
  • DDtoolkit-portable-win64.zip — 便携版(解压即用,含后端 onedir 与 extension\)
  • latest.json + 安装包的 .sig — 应用内更新的载体与清单(手工下载请用上面两项)

⚠️ 升级说明

  • 数据库有迁移:f009 → f012(三条:左栏自定义排序 / 背景取景 + 背景视频 /
    视频取景与图片取景分开)。首次启动自动迁移,迁移前自动备份到 <数据目录>/backups/;
    迁移失败会把坏库隔离并用空库继续启动(状态见 /healthz 与「设置 → 关于」的体检);
    不放心的话可以先手动复制整个数据目录再升级;
  • 使用须知不会再让你确认一次:本版没有改声明正文(NOTICE_VERSION 仍是 2026-10-06);
  • 数据目录与 v1.1.1 相同:默认 %APPDATA%\com.ddtoolkit.app,也可以在「设置 → 关于」里
    迁移到其他盘;
  • v1.1.1 的行为都保留:浏览器扩展随包分发、MSE 播放内核、抖音总开关默认关、通知中心、轻资产固化等。

🔧 技术栈

  • 后端:Python 3.14 + FastAPI + SQLAlchemy 2.0 + SQLite(WAL) + APScheduler + Alembic(迁移链 f012)
  • 前端:Vite + React 18 + TypeScript + Tailwind v4 + ECharts 6 + Radix
  • 桌面壳:Tauri v2(托盘 + 拉起后端 + 注入空闲端口 + Job Object 进程看门狗)
  • 浏览器扩展:MV3(纯 JS + chrome.cookies,无构建步骤,随安装包/便携版一起分发)

⚖️ 许可

MIT License(见 LICENSE)。嵌入字体:阿里妈妈方圆体(官方许可免费商用 + 允许嵌入)。
抖音签名实现移植自 Douyin_TikTok_Download_API
(Apache-2.0:许可原文与上游 NOTICE 随仓库 app/services/platforms/vendor/dtksign/ 一起分发)。