oc-browser-relay 1.0.6 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/bundled-relay/public/configs/pages/douyin-creator-publish.json +3 -0
  2. package/bundled-relay/public/configs/pages/douyin-fxg-homepage.json +161 -0
  3. package/bundled-relay/public/configs/pages/index.json +4 -1
  4. package/bundled-relay/public/configs/pages/pinduoduo-mms-home.json +156 -0
  5. package/bundled-relay/public/configs/pages/pinduoduo-mms-orders-list.json +75 -0
  6. package/bundled-relay/public/configs/sites/douyin-fxg.json +13 -0
  7. package/bundled-relay/public/configs/sites/index.json +3 -1
  8. package/bundled-relay/public/configs/sites/pinduoduo-mms.json +12 -0
  9. package/bundled-relay/public/configs/task-templates/douyin-fxg-homepage-api.json +160 -0
  10. package/bundled-relay/public/configs/task-templates/index.json +2 -0
  11. package/bundled-relay/public/configs/task-templates/pinduoduo-mms-home-overview.json +61 -0
  12. package/bundled-relay/public/configs/task-templates/taobao-item-detail-comments.json +10 -2
  13. package/bundled-relay/public/icons/icon-inactive-128.png +0 -0
  14. package/bundled-relay/public/icons/icon-inactive-48.png +0 -0
  15. package/bundled-relay/public/icons/icon-inactive-96.png +0 -0
  16. package/index.js +1 -1
  17. package/package.json +1 -1
  18. package/skills/oc-browser-relay-article/SKILL.md +57 -0
  19. package/skills/oc-browser-relay-douyin/SKILL.md +54 -0
  20. package/skills/oc-browser-relay-douyin-fxg/SKILL.md +49 -0
  21. package/skills/oc-browser-relay-pinduoduo/SKILL.md +47 -0
  22. package/skills/oc-browser-relay-sycm/SKILL.md +60 -0
  23. package/skills/oc-browser-relay-sycm/references/sycm-field-mapping.md +40 -0
  24. package/skills/oc-browser-relay-taobao/SKILL.md +68 -0
  25. package/skills/oc-browser-relay-xiaohongshu/SKILL.md +77 -0
  26. package/bundled-relay/public/icons/icon-active-128.png +0 -0
  27. package/bundled-relay/public/icons/icon-active-48.png +0 -0
  28. package/bundled-relay/public/icons/icon-active-96.png +0 -0
  29. package/skills/bianjie-browser-relay/SKILL.md +0 -562
@@ -442,6 +442,9 @@
442
442
  }
443
443
  },
444
444
  "executionPolicy": {
445
+ "popupGuard": {
446
+ "enabled": false
447
+ },
445
448
  "typingPolicy": {
446
449
  "mode": "human_typing",
447
450
  "minKeyDelayMs": 120,
@@ -0,0 +1,161 @@
1
+ {
2
+ "pageId": "douyin_fxg_homepage",
3
+ "pageName": "抖店商家后台首页",
4
+ "platform": "douyin",
5
+ "siteId": "douyin_fxg",
6
+ "pageType": "dashboard_home",
7
+ "version": "1.0.0",
8
+ "urlMatch": [
9
+ "https://fxg.jinritemai.com/ffa/mshop/homepage/index*"
10
+ ],
11
+ "readiness": {
12
+ "loginRequired": true,
13
+ "pageReadyWhen": {
14
+ "type": "logical_and",
15
+ "conditions": [
16
+ {
17
+ "type": "url_contains",
18
+ "value": "/ffa/mshop/homepage/index"
19
+ },
20
+ {
21
+ "type": "element_visible",
22
+ "selector": "label:has(input[type='radio'][value='Real']), label:has(input[type='radio'][value='Day'])"
23
+ }
24
+ ]
25
+ },
26
+ "waitTimeoutMs": 15000
27
+ },
28
+ "reusePolicy": {
29
+ "enabled": true,
30
+ "taskTypes": ["collect_douyin_fxg_homepage_api"],
31
+ "includeSameHostPages": true,
32
+ "candidatePages": [
33
+ "douyin_fxg_homepage"
34
+ ],
35
+ "resetActions": [
36
+ {
37
+ "when": "target_page",
38
+ "kind": "scroll_to_top"
39
+ },
40
+ {
41
+ "when": "same_host_non_target",
42
+ "kind": "click_locator",
43
+ "skipPopupGuard": true,
44
+ "locators": [
45
+ {
46
+ "kind": "css",
47
+ "value": "h1#fxg-pc-header-title",
48
+ "priority": 1
49
+ }
50
+ ],
51
+ "waitForUrlMatch": [
52
+ "https://fxg.jinritemai.com/ffa/mshop/homepage/index*"
53
+ ],
54
+ "waitTimeoutMs": 15000,
55
+ "settleDelayMs": 600
56
+ }
57
+ ]
58
+ },
59
+ "executionPolicy": {
60
+ "clickPolicy": {
61
+ "scrollIntoView": true,
62
+ "requireVisible": true,
63
+ "preHover": true,
64
+ "hoverDurationMsRange": [70, 150],
65
+ "preClickPauseMsRange": [40, 100]
66
+ },
67
+ "humanBehavior": {
68
+ "cursorMoveSpeedRange": [105, 170],
69
+ "cursorStepDelayMsRange": [3, 7],
70
+ "cursorVisibleDurationMsRange": [120, 220],
71
+ "minCursorStepCount": 10,
72
+ "mouseDownUpDelayMsRange": [30, 80],
73
+ "postClickPauseMsRange": [40, 120]
74
+ },
75
+ "actionPausePolicy": {
76
+ "minPauseMs": 120,
77
+ "maxPauseMs": 520
78
+ }
79
+ },
80
+ "actions": {
81
+ "switch_metric_period": {
82
+ "actionId": "switch_metric_period",
83
+ "label": "切换首页时间粒度",
84
+ "kind": "click",
85
+ "skipPopupGuard": true,
86
+ "locators": [
87
+ {
88
+ "kind": "xpath",
89
+ "value": "//input[@type='radio' and @value='Real']/ancestor::label[1]",
90
+ "priority": 1
91
+ }
92
+ ]
93
+ }
94
+ },
95
+ "captureSources": {
96
+ "homepage_metrics": {
97
+ "urlPattern": "/pc/api/home/homepage",
98
+ "method": "GET",
99
+ "capability": "hybrid",
100
+ "operation": "capture_response",
101
+ "persistent": true,
102
+ "artifactType": "hybrid",
103
+ "includeBody": true,
104
+ "locationSuffix": "douyin_fxg_homepage_metrics",
105
+ "hint": "capture douyin fxg homepage metrics"
106
+ }
107
+ },
108
+ "capturePlans": {
109
+ "homepage_metrics": {
110
+ "sourceId": "homepage_metrics",
111
+ "captureNetwork": {
112
+ "timeoutMs": 15000,
113
+ "startPhase": "before_action",
114
+ "actionScope": "step"
115
+ }
116
+ }
117
+ },
118
+ "crawlerHints": {
119
+ "structuredDataExtractors": {
120
+ "homepage_operating_data": {
121
+ "adapterId": "douyin_fxg_homepage",
122
+ "sourceId": "homepage_operating_data",
123
+ "timeoutMs": 15000,
124
+ "outputSchema": {
125
+ "root": {
126
+ "extractedAt": "sources.homepage_operating_data.extractedAt",
127
+ "metrics": "sources.homepage_operating_data.metrics",
128
+ "incomeExpenseMetrics": "sources.homepage_operating_data.incomeExpenseMetrics"
129
+ }
130
+ }
131
+ },
132
+ "homepage_metrics_capture": {
133
+ "adapterId": "douyin_fxg_homepage_capture",
134
+ "sourceId": "homepage_metrics_capture",
135
+ "timeoutMs": 30000,
136
+ "observationSources": [
137
+ {
138
+ "sourceId": "homepage_metrics_capture",
139
+ "nodeIdArg": "sourceNodeId",
140
+ "sourceType": "active_capture_results",
141
+ "consumeCapture": true,
142
+ "resultPath": "$self"
143
+ }
144
+ ],
145
+ "outputSchema": {
146
+ "root": {
147
+ "extractedAt": "sources.homepage_metrics_capture.extractedAt",
148
+ "periodValue": "sources.homepage_metrics_capture.periodValue",
149
+ "periodLabel": "sources.homepage_metrics_capture.periodLabel",
150
+ "title": "sources.homepage_metrics_capture.title",
151
+ "subTitle": "sources.homepage_metrics_capture.subTitle",
152
+ "rank": "sources.homepage_metrics_capture.rank",
153
+ "metrics": "sources.homepage_metrics_capture.metrics",
154
+ "incomeExpenseMetrics": "sources.homepage_metrics_capture.incomeExpenseMetrics",
155
+ "meta": "sources.homepage_metrics_capture.meta"
156
+ }
157
+ }
158
+ }
159
+ }
160
+ }
161
+ }
@@ -5,6 +5,9 @@
5
5
  "xiaohongshu-web-explore.json",
6
6
  "xiaohongshu-web-search-result.json",
7
7
  "taobao-item-detail.json",
8
- "douyin-creator-publish.json"
8
+ "douyin-creator-publish.json",
9
+ "douyin-fxg-homepage.json",
10
+ "pinduoduo-mms-home.json",
11
+ "pinduoduo-mms-orders-list.json"
9
12
  ]
10
13
  }
@@ -0,0 +1,156 @@
1
+ {
2
+ "pageId": "pinduoduo_mms_home",
3
+ "pageName": "拼多多商家后台首页",
4
+ "platform": "pinduoduo",
5
+ "siteId": "pinduoduo_mms",
6
+ "pageType": "dashboard_home",
7
+ "capabilities": {
8
+ "homeOverview": true
9
+ },
10
+ "version": "1.0.0",
11
+ "urlMatch": [
12
+ "https://mms.pinduoduo.com/home*"
13
+ ],
14
+ "reusePolicy": {
15
+ "enabled": true,
16
+ "taskTypes": ["browser_action"],
17
+ "includeSameHostPages": true,
18
+ "candidatePages": [
19
+ "pinduoduo_mms_home",
20
+ "pinduoduo_mms_orders_list"
21
+ ],
22
+ "resetActions": [
23
+ {
24
+ "when": "target_page",
25
+ "kind": "scroll_to_top"
26
+ },
27
+ {
28
+ "when": "same_host_non_target",
29
+ "kind": "click_locator",
30
+ "locators": [
31
+ {
32
+ "kind": "xpath",
33
+ "value": "//*[self::a or self::div or self::span][contains(normalize-space(.),'商家后台') and not(self::script)]",
34
+ "priority": 1
35
+ }
36
+ ],
37
+ "waitForUrlMatch": [
38
+ "https://mms.pinduoduo.com/home*"
39
+ ],
40
+ "waitTimeoutMs": 20000,
41
+ "settleDelayMs": 600
42
+ }
43
+ ]
44
+ },
45
+ "readiness": {
46
+ "loginRequired": true,
47
+ "pageReadyWhen": {
48
+ "type": "logical_and",
49
+ "conditions": [
50
+ {
51
+ "type": "url_contains",
52
+ "value": "/home"
53
+ },
54
+ {
55
+ "type": "logical_and",
56
+ "conditions": [
57
+ {
58
+ "type": "element_visible",
59
+ "selector": "a[href^='/home/']"
60
+ },
61
+ {
62
+ "type": "text_visible",
63
+ "value": "后台首页"
64
+ }
65
+ ]
66
+ }
67
+ ]
68
+ },
69
+ "waitTimeoutMs": 20000
70
+ },
71
+ "executionPolicy": {
72
+ "clickPolicy": {
73
+ "scrollIntoView": true,
74
+ "requireVisible": true,
75
+ "preHover": true,
76
+ "hoverDurationMsRange": [80, 180],
77
+ "preClickPauseMsRange": [50, 140]
78
+ },
79
+ "humanBehavior": {
80
+ "cursorMoveSpeedRange": [80, 140],
81
+ "cursorStepDelayMsRange": [4, 10],
82
+ "cursorVisibleDurationMsRange": [180, 320],
83
+ "minCursorStepCount": 12,
84
+ "mouseDownUpDelayMsRange": [40, 110],
85
+ "postClickPauseMsRange": [80, 180]
86
+ },
87
+ "actionPausePolicy": {
88
+ "minPauseMs": 180,
89
+ "maxPauseMs": 800
90
+ }
91
+ },
92
+ "actions": {
93
+ "open_home_via_logo": {
94
+ "actionId": "open_home_via_logo",
95
+ "label": "点击商家后台 Logo",
96
+ "kind": "click",
97
+ "locators": [
98
+ {
99
+ "kind": "xpath",
100
+ "value": "//*[self::a or self::div or self::span][contains(normalize-space(.),'商家后台') and not(self::script)]",
101
+ "priority": 1
102
+ }
103
+ ]
104
+ },
105
+ "open_home_dashboard": {
106
+ "actionId": "open_home_dashboard",
107
+ "label": "进入后台首页",
108
+ "kind": "click",
109
+ "locators": [
110
+ {
111
+ "kind": "xpath",
112
+ "value": "//a[starts-with(@href,'/home/') and contains(normalize-space(.),'首页')]",
113
+ "priority": 1
114
+ },
115
+ {
116
+ "kind": "css",
117
+ "value": "a[href^='/home/']",
118
+ "priority": 2
119
+ }
120
+ ]
121
+ },
122
+ "open_order_query": {
123
+ "actionId": "open_order_query",
124
+ "label": "进入订单查询",
125
+ "kind": "click",
126
+ "locators": [
127
+ {
128
+ "kind": "xpath",
129
+ "value": "//a[@href='/orders/list' and contains(normalize-space(.),'订单查询')]",
130
+ "priority": 1
131
+ },
132
+ {
133
+ "kind": "xpath",
134
+ "value": "//a[@href='/orders/list']",
135
+ "priority": 2
136
+ }
137
+ ]
138
+ }
139
+ },
140
+ "crawlerHints": {
141
+ "structuredDataExtractors": {
142
+ "home_overview": {
143
+ "adapterId": "pinduoduo_mms_home_overview",
144
+ "sourceId": "home_overview",
145
+ "timeoutMs": 15000,
146
+ "outputSchema": {
147
+ "root": {
148
+ "metrics": "sources.home_overview.metrics",
149
+ "cards": "sources.home_overview.cards",
150
+ "crawledAt": "sources.home_overview.crawledAt"
151
+ }
152
+ }
153
+ }
154
+ }
155
+ }
156
+ }
@@ -0,0 +1,75 @@
1
+ {
2
+ "pageId": "pinduoduo_mms_orders_list",
3
+ "pageName": "拼多多商家后台订单列表页",
4
+ "platform": "pinduoduo",
5
+ "siteId": "pinduoduo_mms",
6
+ "pageType": "orders_list",
7
+ "capabilities": {
8
+ "ordersList": true
9
+ },
10
+ "version": "1.0.0",
11
+ "urlMatch": [
12
+ "https://mms.pinduoduo.com/orders/list*"
13
+ ],
14
+ "readiness": {
15
+ "loginRequired": true,
16
+ "pageReadyWhen": {
17
+ "type": "logical_and",
18
+ "conditions": [
19
+ {
20
+ "type": "url_contains",
21
+ "value": "/orders/list"
22
+ },
23
+ {
24
+ "type": "element_visible",
25
+ "selector": "li#__msfe__side-nav_item_101.active > a[href='/orders/list']"
26
+ }
27
+ ]
28
+ },
29
+ "waitTimeoutMs": 20000
30
+ },
31
+ "executionPolicy": {
32
+ "clickPolicy": {
33
+ "scrollIntoView": true,
34
+ "requireVisible": true,
35
+ "preHover": true,
36
+ "hoverDurationMsRange": [80, 180],
37
+ "preClickPauseMsRange": [50, 140]
38
+ },
39
+ "humanBehavior": {
40
+ "cursorMoveSpeedRange": [80, 140],
41
+ "cursorStepDelayMsRange": [4, 10],
42
+ "cursorVisibleDurationMsRange": [180, 320],
43
+ "minCursorStepCount": 12,
44
+ "mouseDownUpDelayMsRange": [40, 110],
45
+ "postClickPauseMsRange": [80, 180]
46
+ },
47
+ "actionPausePolicy": {
48
+ "minPauseMs": 180,
49
+ "maxPauseMs": 800
50
+ }
51
+ },
52
+ "crawlerHints": {
53
+ "structuredDataExtractors": {
54
+ "home_overview": {
55
+ "adapterId": "pinduoduo_mms_home_overview",
56
+ "sourceId": "home_overview",
57
+ "timeoutMs": 15000,
58
+ "observationSources": [
59
+ {
60
+ "sourceId": "home_overview_capture",
61
+ "nodeIdArg": "sourceNodeId",
62
+ "sourceType": "active_capture_results",
63
+ "consumeCapture": true,
64
+ "resultPath": "$self"
65
+ }
66
+ ],
67
+ "outputSchema": {
68
+ "root": {
69
+ "body": "sources.home_overview.body"
70
+ }
71
+ }
72
+ }
73
+ }
74
+ }
75
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "siteId": "douyin_fxg",
3
+ "siteName": "抖店商家后台",
4
+ "platform": "douyin",
5
+ "hosts": [
6
+ "fxg.jinritemai.com"
7
+ ],
8
+ "loginPagePatterns": [
9
+ "https://sso.jinritemai.com/*",
10
+ "https://fxg.jinritemai.com/login*",
11
+ "https://fxg.jinritemai.com/passport/*"
12
+ ]
13
+ }
@@ -4,6 +4,8 @@
4
4
  "xiaohongshu-web.json",
5
5
  "taobao-web.json",
6
6
  "sycm-taobao.json",
7
- "douyin-creator.json"
7
+ "douyin-creator.json",
8
+ "douyin-fxg.json",
9
+ "pinduoduo-mms.json"
8
10
  ]
9
11
  }
@@ -0,0 +1,12 @@
1
+ {
2
+ "siteId": "pinduoduo_mms",
3
+ "siteName": "拼多多商家后台",
4
+ "platform": "pinduoduo",
5
+ "hosts": [
6
+ "mms.pinduoduo.com"
7
+ ],
8
+ "loginPagePatterns": [
9
+ "https://mms.pinduoduo.com/login*",
10
+ "https://mms.pinduoduo.com/home/login*"
11
+ ]
12
+ }
@@ -0,0 +1,160 @@
1
+ {
2
+ "siteId": "douyin_fxg",
3
+ "taskType": "collect_douyin_fxg_homepage_api",
4
+ "platform": "douyin",
5
+ "name": "采集抖店首页经营看板指标",
6
+ "description": "打开抖店商家后台首页,切换指定时间粒度按钮,捕获首页接口响应并返回结构化经营数据。",
7
+ "requiredFields": [
8
+ ],
9
+ "optionalFields": [
10
+ {
11
+ "name": "pageUrl",
12
+ "type": "string",
13
+ "description": "抖店首页地址",
14
+ "default": "https://fxg.jinritemai.com/ffa/mshop/homepage/index?channel=zhaoshang"
15
+ },
16
+ {
17
+ "name": "metricPeriodValue",
18
+ "type": "string",
19
+ "description": "首页时间粒度按钮值,支持:Real、Day、Week、Month、Promotion",
20
+ "default": "Real"
21
+ }
22
+ ],
23
+ "nodes": [
24
+ {
25
+ "nodeId": "s1",
26
+ "name": "open_fxg_homepage",
27
+ "goal": "打开抖店商家后台首页",
28
+ "tool": "open_tab",
29
+ "args": {
30
+ "url": "{{data.pageUrl}}"
31
+ }
32
+ },
33
+ {
34
+ "nodeId": "s2",
35
+ "name": "validate_fxg_homepage",
36
+ "goal": "校验当前页面已进入抖店商家后台首页",
37
+ "tool": "validate_page",
38
+ "args": {}
39
+ },
40
+ {
41
+ "nodeId": "s2b",
42
+ "name": "prepare_realtime_metrics",
43
+ "goal": "当目标为实时粒度时先切到近1天,确保回切实时会触发接口刷新",
44
+ "when": "equals(payload.metricPeriodValue, 'Real')",
45
+ "tool": "trigger_action",
46
+ "args": {
47
+ "action": "switch_metric_period",
48
+ "locators": [
49
+ {
50
+ "kind": "xpath",
51
+ "value": "//input[@type='radio' and @value='Day']/ancestor::label[1]",
52
+ "priority": 1
53
+ }
54
+ ]
55
+ }
56
+ },
57
+ {
58
+ "nodeId": "s2c_day",
59
+ "name": "prepare_day_metrics",
60
+ "goal": "当目标为近1天时先切到实时,确保重新切回近1天会触发接口刷新",
61
+ "when": "equals(payload.metricPeriodValue, 'Day')",
62
+ "tool": "trigger_action",
63
+ "args": {
64
+ "action": "switch_metric_period",
65
+ "locators": [
66
+ {
67
+ "kind": "xpath",
68
+ "value": "//input[@type='radio' and @value='Real']/ancestor::label[1]",
69
+ "priority": 1
70
+ }
71
+ ]
72
+ }
73
+ },
74
+ {
75
+ "nodeId": "s2c_week",
76
+ "name": "prepare_week_metrics",
77
+ "goal": "当目标为近7天时先切到实时,确保重新切回近7天会触发接口刷新",
78
+ "when": "equals(payload.metricPeriodValue, 'Week')",
79
+ "tool": "trigger_action",
80
+ "args": {
81
+ "action": "switch_metric_period",
82
+ "locators": [
83
+ {
84
+ "kind": "xpath",
85
+ "value": "//input[@type='radio' and @value='Real']/ancestor::label[1]",
86
+ "priority": 1
87
+ }
88
+ ]
89
+ }
90
+ },
91
+ {
92
+ "nodeId": "s2c_month",
93
+ "name": "prepare_month_metrics",
94
+ "goal": "当目标为近30天时先切到实时,确保重新切回近30天会触发接口刷新",
95
+ "when": "equals(payload.metricPeriodValue, 'Month')",
96
+ "tool": "trigger_action",
97
+ "args": {
98
+ "action": "switch_metric_period",
99
+ "locators": [
100
+ {
101
+ "kind": "xpath",
102
+ "value": "//input[@type='radio' and @value='Real']/ancestor::label[1]",
103
+ "priority": 1
104
+ }
105
+ ]
106
+ }
107
+ },
108
+ {
109
+ "nodeId": "s2c_promotion",
110
+ "name": "prepare_promotion_metrics",
111
+ "goal": "当目标为大促时先切到实时,确保重新切回大促会触发接口刷新",
112
+ "when": "equals(payload.metricPeriodValue, 'Promotion')",
113
+ "tool": "trigger_action",
114
+ "args": {
115
+ "action": "switch_metric_period",
116
+ "locators": [
117
+ {
118
+ "kind": "xpath",
119
+ "value": "//input[@type='radio' and @value='Real']/ancestor::label[1]",
120
+ "priority": 1
121
+ }
122
+ ]
123
+ }
124
+ },
125
+ {
126
+ "nodeId": "s3",
127
+ "name": "refresh_homepage_metrics",
128
+ "goal": "点击指定时间粒度按钮并捕获首页经营指标接口响应",
129
+ "tool": "trigger_action",
130
+ "args": {
131
+ "action": "switch_metric_period",
132
+ "locators": [
133
+ {
134
+ "kind": "xpath",
135
+ "value": "//input[@type='radio' and @value='{{data.metricPeriodValue}}']/ancestor::label[1]",
136
+ "priority": 1
137
+ }
138
+ ],
139
+ "captureNetwork": {
140
+ "capturePlanId": "homepage_metrics"
141
+ }
142
+ }
143
+ },
144
+ {
145
+ "nodeId": "s4",
146
+ "name": "collect_homepage_metrics",
147
+ "goal": "从首页接口响应中投影经营数据与全店收支数据",
148
+ "tool": "collect_structured_data",
149
+ "args": {
150
+ "extractor": "homepage_metrics_capture",
151
+ "sourceNodeId": "s3",
152
+ "metricPeriodValue": "{{data.metricPeriodValue}}"
153
+ },
154
+ "storeAs": "homepageApiResult",
155
+ "outputs": [
156
+ "homepageApiResult"
157
+ ]
158
+ }
159
+ ]
160
+ }
@@ -2,12 +2,14 @@
2
2
  "files": [
3
3
  "sycm-taobao-home-live-metrics.json",
4
4
  "sycm-taobao-api-group.json",
5
+ "pinduoduo-mms-home-overview.json",
5
6
  "xiaohongshu-creator-publish.json",
6
7
  "xiaohongshu-creator-save-draft.json",
7
8
  "xiaohongshu-web-search-notes.json",
8
9
  "taobao-item-detail-comments.json",
9
10
  "douyin-creator-publish.json",
10
11
  "douyin-creator-save-draft.json",
12
+ "douyin-fxg-homepage-api.json",
11
13
  "wechat-get-article.json"
12
14
  ]
13
15
  }
@@ -0,0 +1,61 @@
1
+ {
2
+ "siteId": "pinduoduo_mms",
3
+ "taskType": "browser_action",
4
+ "platform": "pinduoduo",
5
+ "name": "采集拼多多后台首页概览 DOM",
6
+ "description": "打开拼多多后台首页,直接采集首页概览卡片的 DOM key/value 数据。",
7
+ "requiredFields": [],
8
+ "optionalFields": [
9
+ {
10
+ "name": "url",
11
+ "type": "string",
12
+ "description": "拼多多商家后台首页地址,默认首页",
13
+ "default": "https://mms.pinduoduo.com/home/"
14
+ },
15
+ {
16
+ "name": "returnHostPatterns",
17
+ "type": "array",
18
+ "description": "任务结束后若存在匹配这些 host 或 URL 片段的标签页,则切回该标签页"
19
+ }
20
+ ],
21
+ "nodes": [
22
+ {
23
+ "nodeId": "s1",
24
+ "name": "open_mms_home",
25
+ "goal": "打开拼多多商家后台首页",
26
+ "tool": "open_tab",
27
+ "args": {
28
+ "url": "{{data.url}}"
29
+ }
30
+ },
31
+ {
32
+ "nodeId": "s2",
33
+ "name": "validate_mms_home",
34
+ "goal": "校验当前页面已进入拼多多商家后台首页",
35
+ "tool": "validate_page",
36
+ "args": {}
37
+ },
38
+ {
39
+ "nodeId": "s3",
40
+ "name": "collect_home_overview",
41
+ "goal": "提取首页概览卡片 DOM key/value",
42
+ "tool": "collect_structured_data",
43
+ "args": {
44
+ "extractor": "home_overview"
45
+ },
46
+ "storeAs": "homeOverview",
47
+ "outputs": ["homeOverview"]
48
+ },
49
+ {
50
+ "nodeId": "s4",
51
+ "name": "switch_to_existing_host_tab",
52
+ "goal": "任务结束后若存在匹配的既有标签页则切回去",
53
+ "when": "exists(payload.returnHostPatterns)",
54
+ "tool": "switch_tab",
55
+ "args": {
56
+ "urlIncludesAny": "{{data.returnHostPatterns}}",
57
+ "optional": true
58
+ }
59
+ }
60
+ ]
61
+ }