chore: 删除抖音养号任务类型,平台只保留 generic_steps
tasks/douyin/(task_type=douyin_nurture)整体删除,唯一任务类型是 generic_steps。 所有默认值/文档/接口示例同步改成 generic_steps: - tasks/:删 douyin 包;__init__ 只注册 generic;base.py/generic 注释改为照 generic 抄 - 默认值:core/models.py(列默认 + 旧 JSON 迁移默认)、core/task_manager.py TaskJob、 web/tasks_api.py 建任务默认、static/admin/tasks.js 新建任务默认 - core/task_manager.py:去掉 douyin 专属的"清理废弃 comment 参数"迁移块,改为**启动时告警** 仍残留已删类型的任务(只告警不改数据);run_job_now 对已删类型直接返回明确错误, 不再"报已触发、线程里静默失败" - 清理残留:douyin_running 状态位(无任何读取方)、core/__init__、core/actions/*、 core/logger.py 注释里的抖音示例 - 文档:README(特性/目录树/类型表/参数表/示例)、TASK_DEV(目录树/注册说明/模板引用)、 ARCHITECTURE(注册示例/action 注册表示例)、API.md(task_types 与任务 JSON 示例)、 AI_TASK_GEN(P1 去掉 douyin 预设)、DEVELOPMENT - 注:示例里"抖音"作为**App 名**(MCP 列应用、AI 建任务的需求举例)保留,与任务类型无关 自测(全部通过):类型列表只剩 generic_steps;建任务不传类型默认 generic_steps;传 douyin_nurture 被 400 拒;库里塞残留旧类型任务 → 启动日志告警 + 执行返回明确错误 + 不自动删用户数据;前端新建任务下拉 1 项且默认选中、界面建任务成功;监控页卡片两个按钮 + 覆盖设备正常。临时任务/数据验完已清理,任务集合复原。
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
基于 **uiautomator2 + Flask + 自建设备池** 的 Android 多设备自动化任务执行平台(已摘除 OpenSTF 依赖)。
|
||||
|
||||
提供 Web 管理后台,支持多设备并发任务执行、定时调度、设备分组管理、设备池管理(新增/停用/删除/型号采集)、APK 批量安装、网页远程看屏(MJPEG 实时流 + 触控)、UI 元素抓取等功能。内置抖音养号任务和通用步骤任务,可扩展任意 App 的自动化操作。
|
||||
提供 Web 管理后台,支持多设备并发任务执行、定时调度、设备分组管理、设备池管理(新增/停用/删除/型号采集)、APK 批量安装、网页远程看屏(MJPEG 实时流 + 触控)、UI 元素抓取等功能。内置通用步骤任务(可视化步骤编辑器编排,覆盖任意 App 的操作),可扩展专属任务类型。
|
||||
|
||||
---
|
||||
|
||||
@@ -105,8 +105,7 @@ platform-tools/
|
||||
├── tasks/ # 任务定义层(每个 App 一个子包)
|
||||
│ ├── __init__.py # 全局任务注册表
|
||||
│ ├── base.py # BaseTask 基类 + @register_task 装饰器
|
||||
│ ├── douyin/ # 抖音养号任务
|
||||
│ └── generic/ # 通用步骤任务(可视化编辑器编排)
|
||||
│ └── generic/ # 通用步骤任务(可视化编辑器编排,当前唯一任务类型)
|
||||
│ └── task.py # 步骤执行引擎(open_app/click/swipe/if_el...)
|
||||
│
|
||||
├── templates/admin/ # 前端页面
|
||||
@@ -183,8 +182,7 @@ Worker.run_task(执行业务逻辑)
|
||||
|
||||
| 任务类型 | task_type | 说明 |
|
||||
|---------|-----------|------|
|
||||
| 抖音养号 | `douyin_nurture` | 自动看视频 + 随机点赞,被退出自动重连 |
|
||||
| 通用步骤 | `generic_steps` | 可视化步骤编辑器编排流程,支持循环/点击/滑动等 |
|
||||
| 通用步骤 | `generic_steps` | 可视化步骤编辑器编排流程,支持循环/点击/滑动/条件/OCR 等 |
|
||||
|
||||
### TaskJob — 任务计划
|
||||
|
||||
@@ -192,9 +190,9 @@ Worker.run_task(执行业务逻辑)
|
||||
|
||||
| 字段 | 说明 | 示例 |
|
||||
|------|------|------|
|
||||
| `task_type` | 任务类型 | `"douyin_nurture"` |
|
||||
| `task_type` | 任务类型 | `"generic_steps"` |
|
||||
| `target` | 目标设备 | `{"mode": "all"}` 或 `{"mode": "group", "group_name": "A组"}` 或 `{"mode": "serial", "serial": "192.168.1.100:5555"}` |
|
||||
| `params` | 任务参数(与默认值深合并) | `{"watch_count": 50, "actions": {"like": {"params": {"rate": 0.5}}}}` |
|
||||
| `params` | 任务参数(与默认值深合并) | `{"max_duration": 0, "steps": [{"type": "open_app", "params": {"package": "com.ss.android.ugc.aweme"}}]}` |
|
||||
| `schedule` | 调度策略 | `{"mode": "once"}` 或 `{"mode": "cron", "cron": "0 9 * * *"}` 或 `{"mode": "cron_stop", "cron": "0 9 * * *", "stop_cron": "0 18 * * *"}` |
|
||||
| `retry` | 重试策略 | `{"max_attempts": 3, "delay": 60}` |
|
||||
| `enabled` | 是否启用 | `true` |
|
||||
@@ -306,23 +304,6 @@ self.set_progress(done=5, total=80, unit="视频",
|
||||
|
||||
## 任务系统
|
||||
|
||||
### 抖音养号(douyin_nurture)
|
||||
|
||||
自动观看抖音视频,按配置随机执行点赞操作。参数(在 `tasks/douyin/task.py` 顶部):
|
||||
|
||||
| 参数 | 默认值 | 说明 |
|
||||
|------|--------|------|
|
||||
| `watch_count` | 80 | 观看视频数量(0=不限,靠时长停止) |
|
||||
| `watch_min` / `watch_max` | 5.0 / 35.0 | 单视频观看时长范围(秒) |
|
||||
| `max_duration` | 0 | 最大运行时长(秒),0=不限时 |
|
||||
| `swipe_min` / `swipe_max` | 0.25 / 0.50 | 上滑手势时长范围(秒) |
|
||||
| `gap_min` / `gap_max` | 1.0 / 3.0 | 视频间隔时长范围(秒) |
|
||||
| `actions.like.enabled` | true | 是否启用点赞 |
|
||||
| `actions.like.params.rate` | 0.3 | 点赞概率(0~1) |
|
||||
| `actions.like.params.method` | by_element | 点赞方式:by_element(找红心) / double_click(双击) |
|
||||
|
||||
终止条件(哪个先到就停):`watch_count` 数量到 / `max_duration` 时长到 / 手动停止。
|
||||
|
||||
### 通用步骤(generic_steps)
|
||||
|
||||
通过可视化步骤编辑器编排任务流程,worker 按步骤顺序执行。支持的步骤类型:
|
||||
@@ -352,7 +333,8 @@ self.set_progress(done=5, total=80, unit="视频",
|
||||
|
||||
### 新增 App 任务
|
||||
|
||||
参照 `tasks/douyin/` 结构,6 步即可新增一个 App 任务,详见 [doc/TASK_DEV.md](doc/TASK_DEV.md)。
|
||||
参照 `tasks/generic/` 结构,即可新增一个专属任务类型,详见 [doc/TASK_DEV.md](doc/TASK_DEV.md)。
|
||||
(注:当前平台只保留 `generic_steps` 一种类型;绝大多数 App 操作直接用步骤编辑器编排即可,不必新建类型。)
|
||||
|
||||
---
|
||||
|
||||
@@ -371,7 +353,7 @@ self.set_progress(done=5, total=80, unit="视频",
|
||||
|
||||
```python
|
||||
from core.logger import get_logger
|
||||
log = get_logger("task.douyin") # 写入 task.log
|
||||
log = get_logger("task.generic") # 写入 task.log
|
||||
log.info(f"[{self.serial}] 开始任务")
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user