@follenfang/ddauto
v0.1.5
Published
Install and run the DDAuto Codex Skill and Python CLI.
Maintainers
Readme
DDAuto
DDAuto 是基于 Python、CloakBrowser 和 pydoll 的网易 DD 协议采集与确认式频道、私信操作工具。它复用同一个持久 Profile 完成有头登录、无头采集和协议写入,业务数据保存在调用项目中。
安装
npm install --global @follenfang/ddauto
ddauto setup
ddauto doctorsetup 在 ${DDAUTO_HOME:-~/.ddauto} 下安装固定版本的 Python 3.12、带 hash 的 Python 依赖和 CloakChromium。下载默认使用 8 个 Node HTTP Range worker,将互斥区间写入一个预分配 .part 文件,并通过原子分片元数据支持连接熔断、精确断点续传和进程中断恢复。服务器不支持严格 Range 时仅对同一官方 URL 降级为单连接;只有无空洞/重叠、长度、SHA-256 及官方签名全部验证后才原子更新 runtimes/current.json。不要求系统预装 Python 或 Chrome。
ddauto update --check
ddauto update
ddauto uninstall
ddauto uninstall --confirmdoctor 和 update --check 只读。uninstall 默认输出清理计划,--confirm 仅删除受管 runtime、浏览器、下载缓存及 Skill;项目 profile/、message/ 和未识别目录保留。
源码开发:
python -m venv .venv
& .\.venv\Scripts\python.exe -m pip install -e . pytest
& .\.venv\Scripts\python.exe -m pytest -qProfile
ddauto profile create --profile work
ddauto profile login --profile work
ddauto session status --profile work登录命令打开有头 CloakBrowser。识别登录并验证 DD 协议初始化后,同一 Profile 自动恢复无头模式。现有旧版 profile/<name>/browser/ 会继续复用。
采集
ddauto teams list --profile work
ddauto channels tree --profile work
ddauto members collect --profile work
ddauto messages collect --profile work --channel <channel-id> --from 2026-08-01T00:00:00+08:00 --to 2026-08-02T00:00:00+08:00
ddauto private conversations --profile work
ddauto private messages collect --profile work --conversation <uid> --from 2026-08-01T00:00:00+08:00 --to 2026-08-02T00:00:00+08:00
ddauto audio snapshot --profile work
ddauto sync --profile work --from 2026-08-01T00:00:00+08:00 --to 2026-08-02T00:00:00+08:00历史消息按降序游标持续拉取,直到越过起始时间或服务端耗尽,不设置固定页数。图片默认下载原图并用 SHA-256 去重;可传 --media links 或 --media none。
确认式发送
ddauto protocol send --profile work --team <team-id> --channel <channel-id> --text "message"
ddauto protocol send --confirm --plan-id <plan-id>第一次命令只创建 15 分钟有效的 plan。确认命令重新解析目标并验证 payload hash,只发送一次;不确定结果使用 ddauto protocol reconcile --plan-id <plan-id>。
固定有头视觉回归只写入 team 355886 / channel 10444614:
ddauto protocol visual-test --profile work频道协议写入使用通用运行时目标,支持频道树中的大频道、中频道和子频道。先生成 plan,再执行一次:
ddauto channel send --profile work --team TEAM_ID --channel CHANNEL_ID --text "hello"
ddauto channel execute --profile work --plan-id PLAN_ID同一组命令还支持 --mention-uid、--at-all、--at-online、--quote-msg-id、--image-url 和 --image-file。本地图片在 plan 阶段绑定 SHA-256,确认后复用同一 Profile 页面登录态上传;支持 PNG/JPEG/GIF/WebP,最大 50 MiB。删除、置顶及取消置顶分别使用 channel delete、channel pin、channel unpin。固定频道 355886/10444614 只用于全量集成回归,不是产品默认目标。
完整命令矩阵、字段契约和错误码见 ddauto/references/channel-protocol.md。
私信写入同样先生成 plan,再确认执行一次。目标始终由 friendUid 传入:
ddauto private send --profile work --friend-uid UID --text "hello"
ddauto private send --profile work --friend-uid UID --image-file IMAGE_PATH --text "caption"
ddauto private send --profile work --friend-uid UID --file FILE_PATH
ddauto private execute --profile work --plan-id PLAN_ID还支持 --quote-msg-id、已上传的 --image-url、--file-url/--file-name/--file-size,以及 private delete --msg-id。发送使用 44257/cmd=9,删除使用 44257/cmd=17;本地媒体确认后通过同一 Profile 上传。结果未知只运行 private reconcile --plan-id,不自动重发。完整协议字段和错误见 ddauto/references/private-protocol.md。
数据目录
profile/<profile>/ # 浏览器身份、runtime token 和锁
message/profiles/<profile>/ # 原始响应、实体、消息、媒体、checkpoint、回执和诊断
${DDAUTO_HOME:-~/.ddauto}/ # npm 管理的 Python、CloakChromium、下载和状态,不含业务数据stdout 为 NDJSON。Cookie、token、动态签名和完整签名 URL 不进入业务记录、诊断、源码或 npm 包。
