Commit Graph

7 Commits

Author SHA1 Message Date
yuming 317bd3020d fix: 修复等待逻辑,避免未完成就滚动导致漏下载
问题:旧逻辑等30秒就超时,重试点击一次后再等30秒就滚动。
大文件30秒下不完,队列满时重试点击无效,导致卡片漏下载。

修复:
- max_wait_per_round 从30秒增加到120秒
- 等待逻辑改为三轮:先等120s→再等120s→重试点击→再等120s
- 总最长等待6分钟,足够6个小文件全部下载完
- 队列满时不立即重试点击,先让正在下载的完成腾出位置
2026-09-18 21:22:44 +08:00
yuming 2e01d9e774 fix: 每轮点击数从9降到6,匹配萤石并发上限避免超发空转 2026-09-18 20:58:55 +08:00
yuming 028fcbe990 fix: 修复批量下载漏检测稀疏行和底部半行
根因:
1. std 横向采样区 x=350-1050 不覆盖左列卡片(中心x=201),
   导致只有左列有卡片的稀疏行 std 被拉低到27,低于阈值28被误判为间隙
2. 扫描范围 ROW_Y1=2300 太靠上,底部半行被边缘过滤
3. 每轮只处理前3行(full_rows[:3]),后续行即使检测到也被跳过

修复:
- ROW_STD_X0 350→50, ROW_STD_W 700→980(覆盖全部3列)
- ROW_STD_LOW 28→18(分组标签std=0不会误判)
- ROW_Y1 2300→2380(扩大底部扫描范围)
- 处理所有检测到的行,未打勾格子最多取前9个避免超并发
2026-09-18 18:05:33 +08:00
yuming 80e3815b2f fix: 用Pillow替代ImageMagick,修复批量下载漏下载的4个逻辑漏洞
漏下载根因:
1. ImageMagick(magick)未安装,detect_card_rows/std_profile/count_blue_pixels
   全部依赖magick命令,命令不存在时抛FileNotFoundError,sync_recent_days
   捕获异常后直接跳过当天 → 整天漏下载
2. detect_card_rows两次返回空就误判'全部已打勾'直接滚动 → 漏掉当前屏所有卡片
3. 到底清扫时检测不到行就误判'清扫完成'提前结束 → 漏掉底部卡片
4. 点击超时未打勾的卡片不重试 → 点击落在间隙/标签上的卡片永远漏下载
5. sync_recent_days某天异常直接跳过不重试 → 偶发ANR导致整天漏下载

修复:
- 全部magick调用(sample_pixel_rgb/count_blue_pixels/std_profile/date_label_hash/
  screenshot_hash)替换为Pillow实现,消除系统级外部依赖
- detect_card_rows返回空时重试3次(逐次加长等待),仍为空则跳过本轮不盲点
- 到底清扫时检测不到行重试3次,仍为空才判底部无内容
- 点击超时未打勾的卡片重试点击一次,再等一轮
- sync_recent_days每天最多重试1次(共2次尝试)
2026-09-18 16:06:50 +08:00
yuming b3608f534e feat: 新增视频分析流水线、Web界面、孤儿清理工具;修复健壮性问题
- 新增 analysis/ 模块:MOG2活动检测、YOLO人物跟踪、MediaPipe摔倒检测、Ollama活动打标、缩略图抽取
- 新增 webapp/:Flask事件浏览界面,按需HEVC→H264转码缓存
- 新增 analyze.py:7阶段状态机流水线(scan→backfill→motion→person→fall→activity→thumbnail)
- 新增 cleanup_orphans.py:清理文件已删除的数据库孤儿记录
- 修复:motion/person/activity三阶段加单视频异常兜底,避免批次中断
- 修复:ollama_client加健康检查和3次重试,num_ctx从8192降到2048
- 修复:transcode_cache加fcntl文件锁,防止并发转码同一视频
- 修复:SQLite开WAL模式+busy_timeout,支持读写并发
- 修复:sync.py ffmpeg路径改为shutil.which查找,删除automate.py死代码PYTHON
- 修复:thumbnail失败加3次重试上限,避免无限重试损坏文件
- 新增:requirements.lock锁定版本、README文档
- 更新:.gitignore排除.playwright-mcp、截图、备份文件
2026-09-18 15:52:49 +08:00
yuming 203cca42a2 fix: 动态定位卡片行根治萤石批量下载重复问题
根因:批量下载列表是自绘 UI,原用写死的网格坐标 THUMB_Y 定位卡片;但列表
每隔一段插入"整点分组标签"行,滚动跨过标签会使所有卡片整行错位(实测漂移
达 174px),导致点击落空、打勾检测采样错位、已下载卡片被误判重下,重复率约 30%。

修复与优化:
- 改用亮度标准差(std)垂直剖面每屏动态实测卡片行真实中心,替代写死的 THUMB_Y
- 每轮最多点前 3 行(9 格),避免超萤石约 10 个的并发下载上限
- 到底判定改用"卡片行有没有整体平移",抗底部灰占位抖动(原像素哈希会一直空滚)
- 到底时清扫当前屏剩余未下载卡片,补下被限 3 行漏掉的底部几个
- 截图改 exec-out 一步式 + 复用检测结果 + 缩短固定等待,单轮 ~12s 降到 ~7s

实测重复率 30% → 0%,端到端跑通(启动→下载→到底清扫→拉取到本地→同步完成)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-27 15:31:40 +08:00
yuming 45d17ee576 feat: 萤石 CB60 录像每日同步初始版本
通过 ADB 自动化模拟器中的萤石 App,每天把 SD 卡里昨天的录像批量
下载到本地。云 API 方案 (sync.py/probe.py) 是备选,需先在萤石开放
平台关闭设备码流加密。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-16 10:41:38 +08:00