Repository navigation
v0.9.3
DDtoolkit v0.9.3
个人向 VTuber 帖子 / 账号证据归档工具 —— 定时抓取 B 站与微博动态、账号统计并归档到本地 SQLite,桌面端浏览与管理。
本版主线是抓取调度重构(更省请求、更快拿到数据)与一批长期存在的正确性修复
(解除订阅删不掉、列表卡片宽度乱跳、账号信息抓不到),并补齐了界面细节与工程文档。
🐛 关键修复
- 解除订阅一直失败 —— 账号之下 4 张子表(统计快照/直播场次/礼物日/分类校正)挂外键但 ORM 未级联,
foreign_keys=ON下DELETE FROM accounts被挡回、整次事务回滚(接口 500、V 删不掉)。改为统一的services/purge.py清理清单,两个删除端点共用;测试库同步开启外键校验,这类问题以后跑测试就会红。 - 收录新 V 后账号信息抓不到 —— 启动链自动档占着锁时,手动任务只能"抢锁失败→跳过"。新增「手动任务优先」协议:自动档起跑见手动即跳过、持锁见手动请求则在轮次断点交还锁并等其跑完再续跑(两把锁独立、按平台隔离)。
- 右栏帖子宽度不对(有的宽有的窄) —— 一条 CSS 规则因滚动组件插层而静默失效,列表列宽退化成"内容多宽就多宽"(短标题页缩到 566px、含长串的页被撑到 1350px 并裁掉封面)。改为后代选择器 + 正文
min-width:0+ 长串折行,并把「列表卡片列宽契约」写进 UI 探针(改回去立刻报错)。 - 添加平台账号后并不抓取 —— 前端提示"正在后台抓取"却要等下一轮定时档。现在加完账号立刻后台抓该 V 账号信息,并回填新账号的第三方历史。
- 只改图标不触发重建 —— Tauri 构建脚本未声明图标依赖,改图标后 cargo 认为"无事发生"。
build.rs补rerun-if-changed。
⚡ 抓取调度重构
- 三个定时档合并为一个「综合档」:动态流(每 V 主账号 1 页 + 限 2 帖,15 分钟)与账号流(全量账号信息)同档并发,墙钟 ≈ max(两条流) 而不是相加(实测 66s → 36s)。
- 账号信息改为数据驱动:不再每 5/15 分钟刷(账号字段变化慢),按
accounts.last_fetched_at判定,超过 24 小时才抓;启动时同样按此判断,重启/休眠后行为一致。 - 双粒度并发:任务级(动态流 ∥ 账号流)+ 平台级(bilibili ∥ weibo,平台内部串行)——单平台请求速率不变,某平台风控只冷却该平台。
- 外部数据批次排队而非跳过:T4 被手动任务挡下时等待其结束(最多 30 分钟)再执行,不再当天丢数据。
🎨 界面
- 顶栏状态行:浮片材质 + 深玫瑰徽章(A2 定稿),容器"只在有事时出现",字号 13px。
- 标题字体统一阿里妈妈方圆体(移除已删字体残留);滚动条粉色只属于指针悬停。
- 帖子详情抽屉单图去重、关闭钮补焦点环。
- 任务栏 LOGO 不再模糊:ICO 目录首项改为 48px 任务栏专用层,小尺寸(≤48px)用专用稿(
docs/design/svg/LOGO-small.svg),并按尺寸补偿描边。
📚 文档
- 新增
docs/GLOSSARY.md(术语表:名词 → 含义 → 代码路径 → 依赖,含"需求→代码入口"速查)与docs/ARCHITECTURE.md(运行时形态 / 9 表 ER / 抓取分层 / 数据来源地图)。 - 数据层与抓取文档全面对齐到 v0.9.x;
docs/目录整理(新增索引docs/README.md,发布说明归档docs/releases/)。
📦 资产
DDtoolkit_0.9.3_x64-setup.exe— Windows NSIS 安装包(用户级安装)DDtoolkit-portable-win64.zip— 便携版(解压即用,含后端 onedir)
数据目录:安装版 %APPDATA%\com.ddtoolkit.app;便携版可设 DDTOOLKIT_DATA_DIR 自定义。
⚠️ 从 v0.9.1 升级请先卸载旧版再安装(旧安装目录残留了被打平的后端文件);从 v0.9.2 起可直接覆盖安装。
🔧 技术栈
- 后端:Python 3.14 + FastAPI + SQLAlchemy 2.0 + SQLite(WAL) + APScheduler + Alembic(迁移链 e007)
- 前端:Vite + React 18 + TypeScript + Tailwind v4 + ECharts 6 + Radix
- 桌面壳:Tauri v2(拉起后端 + 注入空闲端口 + 进程看门狗)
⚖️ 许可
MIT License(见 LICENSE)。字体:思源黑体(Noto Sans SC,OFL 1.1)+ 阿里妈妈方圆体(官方许可免费商用+嵌入)。