抖音账号助手 0.1.8 — Windows 10/11 x64

【安装】
只需运行 DouyinAccounts-0.1.8-Windows-x64-Setup.exe。
无需安装 Python、Qt、Patchright、Node.js 或另行下载浏览器。
安装程序不会自动启动业务；没有开机自启、自动登录或默认私信。
默认使用随包的 fingerprint-chromium（adryfish 项目）和 Patchright 驱动，不再回退到系统 Chrome。
启动参数不再使用 --enable-automation；每个账号有固定的指纹种子，重启或切换归属不会改变种子。
这些调整不等于“无法被平台检测”，不能保证匿名、防封或绕过平台风控。
当前测试版尚未购买代码签名证书，Windows 可能提示未知发布者。请核对交付的 SHA256，不要关闭系统安全防护。

【首次使用】
1. 添加大号或小号，只填写自定义名称；小号还可选择归属大号。不需要知道或填写 UID。
2. 保存后自动打开该账号的独立浏览器，请自己在浏览器中登录。
   登录后程序自动读取并回填 UID、昵称、头像、粉丝数、关注数、获赞数和作品数。
   账号已添加或登录身份与原绑定不一致时会提示，不会覆盖已有绑定。登录成功也不会自动启动业务。
   若关闭了浏览器，可点击“登录 / 刷新信息”继续；已绑定账号点击此按钮可刷新资料和统计。
   只保留一个抖音首页或自己的页面；多个匹配标签会拒绝执行，防止选错。
3. 选择大号，配置规则。默认关闭；可配置通知类别、关注、私信、正文、不同任务批次间隔和同组 UID 冷却。
   作品监控默认“全部作品”。点击“作品监控”管理本地作品列表、指定作品范围和自动刷新间隔；默认 60 分钟，设为 0 可关闭。
   冷却默认 240 分钟（4 小时），设为 0 可关闭；勾选大号后点击启动。规则未开启不会产生或执行业务任务。
4. 每条匹配通知只给一个关联小号，按组内轮询，不跨组操作。
   一条聚合通知可能包含多个来源用户，每个有效来源用户各执行配置动作。
5. 小号不可用时等待原小号，不自动改派；大号不可用时整个组暂停。
6. 停止只暂停业务、等待在途请求保存，浏览器保留。
   关闭浏览器为独立操作，先停止账号组；退出软件也不会自动退出 Chrome。
7. “待核对”表示执行结果不确定，不会重发。请到平台人工核对，再确认成功或失败。
   同一通知同时开启关注和私信时，两个动作并行开始、结果互不依赖，不等待默认 30 秒批次间隔。
   批次间隔仍用于同一小号的不同通知批次；旧版“必须关注成功后再私信”配置升级后自动关闭。
8. “正在监听通知（N 条详情待重试，不阻塞新通知）”表示部分通知暂未返回详情。
   这些 ID 会保留，按 30、60、120、240、300 秒间隔重试，之后最多每 5 分钟一次；不拖停整组，不影响正常新通知。
   身份不符或真正的接口错误仍会暂停；不能根据空详情推断通知一定已删除。

【切换与删除】
切换/解除小号归属会取消旧组全部待执行任务，历史与待核对任务保留。
有执行中任务时禁止切换。登录目录不随归属变化。
“删除登录数据”需要确认并先停止业务、关闭对应浏览器；删除后需要手动重新登录。
此操作不删除账号定义、任务和历史，也不影响其他账号。
更换 Chrome 可执行路径会使用不同登录目录，不复制 Cookie。

【历史事件缓存与批量操作（0.1.8 调整）】
选中已绑定身份的大号，点击“历史事件操作”。首次使用会通过网页原生只读接口分页建立本地缓存，以后只增量同步新事件；固定 is_mark_read=0，不会自动标记已读。
历史事件和实时事件都会持久保存到 SQLite，重启软件后仍可查看。列表按当前作品范围和所选事件类型过滤，显示正常日期、中文类型、来源用户、作品、评论和通知 ID，不显示数字时间戳或原始 JSON；此时尚未创建任务。
可逐条勾选、全选或取消。点击确认后还会出现第二次真实操作警告；只有再次确认才按当前规则、作品范围、冷却和自操作保护创建任务。
历史任务优先级低于新消息：Worker 领取任务时先取新消息；同 UID 新消息会取消尚未执行的历史任务。已经执行、正在执行或待核对的历史任务不会被静默改写或重发。
同一通知如果先由历史列表入队、随后实时推送到达，尚未执行的任务会提升为新消息优先级，不重复创建。
重复历史通知、规则未开启、通知类别未勾选、作品范围外、无来源用户、冷却中或目标是执行号自身时都可能显示“选择成功但任务数较少”，具体原因查看运行记录。

【作品缓存与指定作品监控（0.1.8 调整）】
选中已绑定身份的大号，点击“作品监控”。首次使用会分页建立全部历史作品缓存；以后手动或定时刷新只读取新作品并合并，重启软件后缓存仍在。
每个大号可单独设置运行期间自动刷新间隔，默认 60 分钟，0 表示关闭；账号组停止后不会自动请求，也可随时点击“强制增量刷新”。列表使用正常日期和独立的点赞、评论、收藏、分享字段，不显示原始 JSON。
默认“监控全部作品”，保持升级前行为并自动包含以后发布的新作品。取消该选项后进入“指定作品”模式，至少勾选一个作品；此后新作品不会自动加入。
指定作品模式按通知内的作品 ID统一过滤点赞、评论、收藏或其他作品互动。平台当前没有暴露稳定的独立收藏通知常量，因此不会硬编码未经证实的类型；只要通知携带作品 ID，就使用同一筛选规则。
关注通知没有作品 ID，不受作品筛选。作品列表来自完整本地缓存，因此既有历史选择可以统一管理。
作品选择持久化在大号规则中，新通知和用户确认的历史事件使用同一范围。已入队任务继续使用原规则快照，不因修改作品范围而静默改写。

【业务输出与认证凭据（0.1.8 调整）】
普通界面显示可直接阅读的 UID、通知 ID、昵称、作品 ID/描述、评论内容、私信正文、URL、平台资料和业务结果摘要，不显示原始 JSON 或数字时间戳。完整平台业务字段保存在本地 SQLite 中，供问题定位。
Cookie、Authorization、Session、Token、密码、verifyFp、a_bogus、X-Bogus及其他签名/认证字段仍强制隐藏，避免按日日志成为可直接接管账号的凭据文件。
完整业务输出可能包含个人信息并显著增加日志体积。日志仅保存在本机；请限制数据目录访问并自行确定保留期限。

【同组 UID 冷却与双动作并行（0.1.6 新增）】
冷却按大号组共享：该组任一小号开始操作某 UID 后，组内其他小号在设定时长内也不会再次操作该 UID；不同大号组互不影响。
冷却从任务实际领取、即将请求平台时开始并持久化，程序重启不重置。只排队后因停止、切换归属或删除小号而取消的任务不会启动冷却。
冷却期间，上一次结果无论成功、明确失败还是待核对，都不会因新通知再次创建任务；待核对记录在人工处理前还会继续阻止重复任务，优先保证不重复打扰。
在任务实际开始前，如果同组同 UID 已存在待执行、执行中或待核对任务，新通知也会直接跳过，避免短时间多条通知重复排队。
修改冷却时长会用于之后收到的通知；现有冷却按新通知当时的规则计算剩余时间。日志记录冷却开始、剩余秒数、已有任务跳过和所属本地大号名称，不记录完整 UID。
同一通知同时启用关注和私信时，两项组成一个并行批次，同时调用平台接口；其中一项失败或待核对不会取消另一项。两项各自保存结果。
默认 30 秒“不同任务批次间隔”只作用于前后两个通知批次，不插入到同一并行批次的关注和私信之间。

【详细运行记录（0.1.5 新增）】
“运行记录”显示最近 2000 条，重新打开程序也会加载最近的日志。可关闭自动滚动，或打开日志文件夹。
完整记录按电脑本地日期写入 %LOCALAPPDATA%\DouyinAccounts\logs\YYYY-MM-DD.log，UTF-8 编码，不因 UI 上限而截断，也不自动删除旧日期文件。
记录推送接收与去重、详情请求/重试、规则不匹配、无执行小号、自操作保护、UID 冷却、并行批次、轮询分配、任务入队/执行/结果、旧任务依赖等待、人工核对、账号操作和异常。
例如“触发者就是执行小号自身”会明确显示跳过原因；“分配完成”不代表已经关注或发送私信。
监听无新通知时每分钟写一次心跳，重复等待状态不反复刷屏。任务列表也仅展示最近 2000 条，完整历史仍在数据库中。
日志保留完整业务字段，包括私信正文、通知 ID、目标 UID、作品资料、URL和业务结果；Cookie、Token、密码、Authorization和签名字段仍不保存。
磁盘或权限异常会在 UI 明确提示；该期间仅有最近 2000 条内存记录，缺失的文件日志不会自动补写，请及时检查。
旧版 activity.log 及备份仍保留，未记录过的旧过程不会补造。日志会持续占用磁盘，请自行备份管理。

【删除小号（0.1.5 新增）】
先停止小号所属组，等待执行完成；选中小号，点击“删除小号”，二次确认（默认取消）。
将关闭该小号浏览器，删除其独立登录目录，清除绑定 UID、头像和资料，取消待执行任务，并从账号列表移除。
按已确认的方案，历史任务和日志保留；后台保留最小账号引用以供历史核对，不会将旧任务改派或重发。
执行中或所属组运行时禁止删除；目录删除失败时保留账号供重试，不会删除其他账号目录。
同一抖音账号可重新添加，将获得新的独立目录，不复用旧登录。大号不提供删除操作。
“删除登录数据”仍是另一项操作：只清空登录数据，不删除账号或解除绑定。

【数据位置与升级】
配置、SQLite、登录目录和脱敏日志存于：%LOCALAPPDATA%\DouyinAccounts
安装文件在：%LOCALAPPDATA%\Programs\DouyinAccounts
卸载/覆盖升级默认保留账号数据。从 0.1.0 升级旧数据库时会先备份再迁移，保留原 UID、归属、任务和历史。
升级 0.1.2 前请先停止业务并关闭旧 Chrome。新内核使用独立登录目录，需要自行重新登录原账号。
旧目录及旧浏览器配置保留，但新版本不自动沿用旧 Chrome 的路径配置；如需自定义请重新设置指纹浏览器路径。
0.1.3 及更新版本首次启动旧库时会增加通知重试字段；0.1.5 增加删除标记字段；0.1.6 增加组内 UID 冷却表；0.1.7 增加事件来源、任务优先级和作品范围；0.1.8 增加作品与事件缓存表和作品刷新间隔。旧账号、通知 ID、任务和登录目录不变。
0.1.6 将旧规则的“必须关注成功后再私信”自动关闭；旧版已排队且带前置依赖的任务仍按原快照安全处理，不重写历史。
0.1.4 修复了新点赞、评论推送后无法取得详情的问题：复用网页自身请求层，自动补齐当前运行时参数，保持原始 ID 精度。
本次已经实际验证“新增点赞和评论 → 两条推送 → 两条完整详情”，未执行自动关注或私信。
备份前先停止业务、退出软件并关闭所有账号浏览器，备份整个数据目录。
登录目录属于敏感凭据，请不要发送给他人，也不要上传到公共云盘。
更换 Windows 用户或电脑可能需要重新登录，不能依赖 Chrome Cookie 跨用户迁移。

【安全与已知边界】
只操作你拥有或得到授权的账号，遵守平台规则，勿用于骚扰或批量垃圾消息。
CDP 仅允许本机监听，不要映射到公网。
本包不会附带任何账号、Cookie 或登录目录。
网络、页面和平台 SDK 变化可能使监听或操作暂停。界面显示原因；不要强制重复发送。
通知依赖网页现有 WebSocket；网页刷新/断网期间尚未持久化的推送可能丢失。已保存的通知 ID 会恢复拉取详情。
离线模拟测试不代表多真实账号的线上业务验收；真实关注/私信及安装体验由使用者自行验收。
首次绑定以你在该独立浏览器中登录的账号为准；绑定后仍严格核验原 UID。未完成登录的账号不能启动业务。

【高级命令行（普通使用不需要）】
安装目录 cli\DouyinCLI.exe 提供 current-user、notifications、follow、im、mark-read。
所有操作显式传 --cdp-url http://127.0.0.1:端口 --expected-uid 数字UID。
通知订阅：DouyinCLI.exe notifications --subscribe --cdp-url ... --expected-uid ...
私信预览：DouyinCLI.exe im send --uid 目标UID --text 正文 --cdp-url ... --expected-uid ...
私信只有 --confirm 才提交；mark-read 只有 --apply 才提交。
follow 默认执行关注，--check-only 只读。请勿随意复制写操作命令。
不得让 CLI 与桌面队列同时对同一账号写入，CLI 不参与桌面任务事务。

【第三方组件】
Python、PySide6/Qt、Patchright（含其 Node 运行时）、psutil、fingerprint-chromium 随包提供。
fingerprint-chromium 是第三方 Ungoogled Chromium 分支，非 Google 官方 Chrome；上游说明最新补丁源码会延迟发布。
本版本固定使用 148.0.7778.215，并校验其发布 ZIP 的 SHA256；这不是对其全部补丁安全性的独立审计。
版本和浏览器来源见 build-manifest.json；许可文件见 licenses 目录、浏览器 chrome://credits 及各组件内附文件。
Qt/PySide6 为动态 DLL 分发，可按对应开源许可替换兼容 DLL。源代码与许可入口：
https://www.qt.io/licensing/open-source-lgpl-obligations
https://code.qt.io/cgit/pyside/pyside-setup.git/ （6.9.2）
https://code.qt.io/cgit/qt/qt5.git/ （6.9.2）
https://www.python.org/downloads/source/
https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-python
https://github.com/microsoft/playwright
https://github.com/giampaolo/psutil
https://github.com/adryfish/fingerprint-chromium
本项目与抖音、Google、Qt 无隶属关系。
