feat: recover transient PDD sold-out pages (#27)

This commit is contained in:
QiuSW
2026-08-15 17:23:20 +08:00
parent 72d614524b
commit dbeb151f1d
14 changed files with 225 additions and 12 deletions
+2
View File
@@ -73,6 +73,7 @@ v2 完整示例见 [PDD 商品详情规则](rules/pdd-product-detail-v2.proposed
- `pageEvidence`:精确的 PDD 包名、Activity 和非空节点证据。
- `collector.collectorId: pddProductDetailV1`:引用 Agent 中经过测试的类型化能力,不下发可执行代码。
- `hooks.afterSpecPanelOpen`:固定阶段的安全动作;当前只允许对语义目标 `specPanel` 执行 `swipe`,方向为上下左右、单动作次数 1~5、等待 0~2000 毫秒,单阶段最多 8 个动作。
- `pageRecovery.transientSoldOut`:商品详情页精确显示“商品已售罄”且缺少正常商品证据时,允许对商品页执行一次有界恢复;默认下拉 2 次、间隔 1000 毫秒。规格面板内的 SKU 售罄不触发。恢复后仍售罄时失败码为 `PDD_GOODS_SOLD_OUT`。
- `collector.dimensionAliases`、`timeoutsMs` 和 `limits`:分别管理规格标题别名、超时和遍历/SKU 上限。
例如规格面板打开后向上滑动两次,只修改规则:
@@ -268,6 +269,7 @@ POST /api/agent/v1/tasks/{taskId}/fail
| `PDD_CAPTCHA_REQUIRED` | 验证码或人机验证 | 否 |
| `PDD_RISK_CONTROL` | 风控页面 | 否 |
| `PDD_LINK_INVALID` | 商品链接无效、商品不存在或已下架 | 否 |
| `PDD_GOODS_SOLD_OUT` | 商品页一次性下拉恢复后仍显示商品已售罄,或恢复动作失败 | 否 |
| `RULE_NOT_MATCHED` | 找不到唯一控件或页面 | 否 |
| `RULE_AMBIGUOUS` | 规则同时匹配多个控件 | 否 |
| `TASK_ALREADY_CLAIMED` | 未指定任务已被其他设备领取 | 否 |
+1
View File
@@ -32,6 +32,7 @@
| T22 | [#24](https://git.ilapage.cn/OPC/goauto/issues/24) | 内置规则模板与管理端校验 | T20、T21 |
| T23 | [#25](https://git.ilapage.cn/OPC/goauto/issues/25) | v2 一加真机验收 | T20~T22 |
| T24 | [#26](https://git.ilapage.cn/OPC/goauto/issues/26) | 修复 PDD 规格面板蛇形遍历与尺码续页 | T20~T23 |
| T25 | [#27](https://git.ilapage.cn/OPC/goauto/issues/27) | PDD 假售罄页面一次性下拉恢复 | T20~T24 |
## 延期
@@ -35,6 +35,16 @@
"className": "android.widget.FrameLayout"
}
},
"pageRecovery": {
"transientSoldOut": {
"enabled": true,
"exactText": "商品已售罄",
"pullDownCount": 2,
"intervalMs": 1000,
"settleMs": 2000,
"maxAttempts": 1
}
},
"hooks": {
"afterSpecPanelOpen": []
},