@iflyrpa/actions 1.2.14-beta.3 → 1.2.14-beta.5
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.
- package/dist/actions/searchPublishInfo/types.d.ts +2 -1
- package/dist/bundle.js +11779 -11807
- package/dist/bundle.js.map +1 -1
- package/dist/index.js +572 -589
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +577 -599
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,374 +1,15 @@
|
|
|
1
|
+
import * as __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__ from "node:fs";
|
|
2
|
+
import * as __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__ from "node:path";
|
|
1
3
|
import * as __WEBPACK_EXTERNAL_MODULE_dom_serializer_aa70940b__ from "dom-serializer";
|
|
2
4
|
import * as __WEBPACK_EXTERNAL_MODULE_domhandler__ from "domhandler";
|
|
3
5
|
import * as __WEBPACK_EXTERNAL_MODULE_htmlparser2__ from "htmlparser2";
|
|
4
6
|
import * as __WEBPACK_EXTERNAL_MODULE_mime_types_eebf54a5__ from "mime-types";
|
|
5
|
-
import * as __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__ from "@iflyrpa/share";
|
|
6
7
|
import * as __WEBPACK_EXTERNAL_MODULE_axios__ from "axios";
|
|
7
|
-
import * as
|
|
8
|
-
import * as __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__ from "node:path";
|
|
8
|
+
import * as __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__ from "@iflyrpa/share";
|
|
9
9
|
import * as __WEBPACK_EXTERNAL_MODULE_form_data_cf000082__ from "form-data";
|
|
10
10
|
import * as __WEBPACK_EXTERNAL_MODULE_node_buffer_fb286294__ from "node:buffer";
|
|
11
11
|
import * as __WEBPACK_EXTERNAL_MODULE_node_crypto_9ba42079__ from "node:crypto";
|
|
12
12
|
var __webpack_modules__ = {
|
|
13
|
-
"./src/actions/searchAccountInfo/getWxInfo.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
14
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
15
|
-
n: ()=>getWeixinData
|
|
16
|
-
});
|
|
17
|
-
var _iflyrpa_share__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("@iflyrpa/share");
|
|
18
|
-
var _types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/actions/searchAccountInfo/types.ts");
|
|
19
|
-
var _utils_http__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/utils/http.ts");
|
|
20
|
-
var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/utils/index.ts");
|
|
21
|
-
async function getWeixinData(params) {
|
|
22
|
-
const { token } = params;
|
|
23
|
-
if (!token) return {
|
|
24
|
-
code: 200,
|
|
25
|
-
message: "缺少token",
|
|
26
|
-
data: null
|
|
27
|
-
};
|
|
28
|
-
try {
|
|
29
|
-
const { token } = params;
|
|
30
|
-
if (!token) return (0, _types__WEBPACK_IMPORTED_MODULE_1__.V)("缺少token", 200);
|
|
31
|
-
const http = new _utils_http__WEBPACK_IMPORTED_MODULE_2__.e({
|
|
32
|
-
headers: {
|
|
33
|
-
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";")
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
const massRandomIDHtml = await http.api({
|
|
37
|
-
method: "get",
|
|
38
|
-
url: "https://mp.weixin.qq.com/misc/appmsganalysis",
|
|
39
|
-
params: {
|
|
40
|
-
token,
|
|
41
|
-
lang: "zh_CN",
|
|
42
|
-
action: "report"
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
const massRandomIDReg = massRandomIDHtml.match(/mass_all\.([a-z0-9]+)\.js/);
|
|
46
|
-
const massRandomID = massRandomIDReg ? massRandomIDReg[1] : "";
|
|
47
|
-
const [readInfo, fansInfoHtml] = await Promise.all([
|
|
48
|
-
http.api({
|
|
49
|
-
method: "get",
|
|
50
|
-
url: `https://res.wx.qq.com/mpres/zh_CN/htmledition/pages/statistics/mass_all/mass_all.${massRandomID}.js`
|
|
51
|
-
}),
|
|
52
|
-
http.api({
|
|
53
|
-
method: "get",
|
|
54
|
-
url: "https://mp.weixin.qq.com/misc/useranalysis",
|
|
55
|
-
params: {
|
|
56
|
-
token,
|
|
57
|
-
lang: "zh_CN"
|
|
58
|
-
}
|
|
59
|
-
})
|
|
60
|
-
]);
|
|
61
|
-
const regex = /(readAllList|shareAllList|completeAllList):\s*(\[[^\]]+\])/g;
|
|
62
|
-
let match;
|
|
63
|
-
const arrays = {};
|
|
64
|
-
while(null !== (match = regex.exec(readInfo)))arrays[match[1]] = JSON.parse(match[2]);
|
|
65
|
-
const readAllList = arrays.readAllList || [];
|
|
66
|
-
const shareAllList = arrays.shareAllList || [];
|
|
67
|
-
const fansInfoReg = fansInfoHtml.match(/window\.CGI_DATA\['pages\/statistics\/user_statistics'\]\s*=\s*(\{[\s\S]*?\});/);
|
|
68
|
-
if (!fansInfoReg) return (0, _types__WEBPACK_IMPORTED_MODULE_1__.V)("未找到粉丝信息", 200);
|
|
69
|
-
const fansInfo = eval("(" + fansInfoReg[1] + ")");
|
|
70
|
-
const yesterday = _utils__WEBPACK_IMPORTED_MODULE_3__.Tx.format(new Date().setDate(new Date().getDate() - 1), "yyyy-MM-dd");
|
|
71
|
-
const yesterdayFansInfo = fansInfo.list[0]?.list.find((item)=>item.date === yesterday);
|
|
72
|
-
if (!yesterdayFansInfo) return (0, _types__WEBPACK_IMPORTED_MODULE_1__.V)("未找到粉丝数", 200);
|
|
73
|
-
const wxData = {
|
|
74
|
-
fansNum: yesterdayFansInfo.cumulate_user,
|
|
75
|
-
fansNumYesterday: yesterdayFansInfo.new_user - yesterdayFansInfo.cancel_user,
|
|
76
|
-
readNumYesterday: readAllList[0] || 0,
|
|
77
|
-
shareNumYesterday: shareAllList[0] || 0
|
|
78
|
-
};
|
|
79
|
-
return (0, _iflyrpa_share__WEBPACK_IMPORTED_MODULE_0__.success)(wxData, "微信粉丝数据获取成功!");
|
|
80
|
-
} catch (error) {
|
|
81
|
-
return (0, _types__WEBPACK_IMPORTED_MODULE_1__.V)(error instanceof Error ? error.message : "微信数据获取失败");
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
},
|
|
85
|
-
"./src/actions/searchAccountInfo/types.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
86
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
87
|
-
V: ()=>errorResponse
|
|
88
|
-
});
|
|
89
|
-
const errorResponse = (message, code = 500)=>({
|
|
90
|
-
code,
|
|
91
|
-
message,
|
|
92
|
-
data: null
|
|
93
|
-
});
|
|
94
|
-
},
|
|
95
|
-
"./src/utils/http.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
96
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
97
|
-
e: ()=>Http
|
|
98
|
-
});
|
|
99
|
-
var external_axios_ = __webpack_require__("axios");
|
|
100
|
-
class Http {
|
|
101
|
-
static handleApiError(error) {
|
|
102
|
-
if (error && "object" == typeof error && "code" in error && "message" in error) return error;
|
|
103
|
-
return {
|
|
104
|
-
code: 500,
|
|
105
|
-
message: "",
|
|
106
|
-
data: error
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
constructor(config){
|
|
110
|
-
this.apiClient = external_axios_["default"].create(config);
|
|
111
|
-
}
|
|
112
|
-
addResponseInterceptor(findError) {
|
|
113
|
-
this.apiClient.interceptors.response.use((response)=>{
|
|
114
|
-
const error = findError(response);
|
|
115
|
-
if (error) return Promise.reject(Object.assign(error, {
|
|
116
|
-
extra: {
|
|
117
|
-
method: response.config.method,
|
|
118
|
-
url: response.config.url
|
|
119
|
-
}
|
|
120
|
-
}));
|
|
121
|
-
return response;
|
|
122
|
-
}, (error)=>{
|
|
123
|
-
const errorResponse = {
|
|
124
|
-
code: error.response?.status || 500,
|
|
125
|
-
message: error.message || "",
|
|
126
|
-
data: error.response?.data,
|
|
127
|
-
extra: {
|
|
128
|
-
method: error.config?.method,
|
|
129
|
-
url: error.config?.url
|
|
130
|
-
}
|
|
131
|
-
};
|
|
132
|
-
if (error.response?.data) {
|
|
133
|
-
if ("object" == typeof error.response.data) {
|
|
134
|
-
const serverError = error.response.data;
|
|
135
|
-
if (serverError.message) errorResponse.message = serverError.message;
|
|
136
|
-
errorResponse.data = serverError;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
return Promise.reject(errorResponse);
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
async api(config) {
|
|
143
|
-
try {
|
|
144
|
-
const response = await this.apiClient(config);
|
|
145
|
-
return response.data;
|
|
146
|
-
} catch (error) {
|
|
147
|
-
return Promise.reject(Http.handleApiError(error));
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
},
|
|
152
|
-
"./src/utils/index.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
153
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
154
|
-
hc: ()=>parseUrlQueryString,
|
|
155
|
-
I: ()=>replaceImgSrc,
|
|
156
|
-
E_: ()=>extractImgTag,
|
|
157
|
-
i9: ()=>getRandomInRange,
|
|
158
|
-
f8: ()=>PopupListener,
|
|
159
|
-
qN: ()=>copyHtmlToClipboard,
|
|
160
|
-
Tx: ()=>TimeFormatter,
|
|
161
|
-
Tb: ()=>defaultParams,
|
|
162
|
-
n: ()=>stringifyError,
|
|
163
|
-
H8: ()=>getFileState,
|
|
164
|
-
jo: ()=>executeAction,
|
|
165
|
-
e0: ()=>calculateCropCoordinates
|
|
166
|
-
});
|
|
167
|
-
var external_node_fs_ = __webpack_require__("node:fs");
|
|
168
|
-
var external_node_path_ = __webpack_require__("node:path");
|
|
169
|
-
var http = __webpack_require__("./src/utils/http.ts");
|
|
170
|
-
function getRandomInRange(min, max) {
|
|
171
|
-
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
172
|
-
}
|
|
173
|
-
const getFileState = (filePath)=>{
|
|
174
|
-
const filename = external_node_path_["default"].basename(filePath);
|
|
175
|
-
const fileType = __WEBPACK_EXTERNAL_MODULE_mime_types_eebf54a5__["default"].lookup(filePath);
|
|
176
|
-
const stats = external_node_fs_["default"].statSync(filePath);
|
|
177
|
-
const fileSize = stats.size;
|
|
178
|
-
const lastModifiedDate = stats.mtime;
|
|
179
|
-
return {
|
|
180
|
-
name: filename,
|
|
181
|
-
type: fileType,
|
|
182
|
-
size: fileSize,
|
|
183
|
-
lastModifiedDate: lastModifiedDate.toString()
|
|
184
|
-
};
|
|
185
|
-
};
|
|
186
|
-
const calculateCropCoordinates = (width, height, aspectRatio)=>{
|
|
187
|
-
const targetRatio = aspectRatio[0] / aspectRatio[1];
|
|
188
|
-
let cropWidth;
|
|
189
|
-
let cropHeight;
|
|
190
|
-
if (width / height > targetRatio) {
|
|
191
|
-
cropHeight = height;
|
|
192
|
-
cropWidth = height * targetRatio;
|
|
193
|
-
} else {
|
|
194
|
-
cropWidth = width;
|
|
195
|
-
cropHeight = width / targetRatio;
|
|
196
|
-
}
|
|
197
|
-
const x1 = (width - cropWidth) / 2;
|
|
198
|
-
const y1 = (height - cropHeight) / 2;
|
|
199
|
-
const x2 = x1 + cropWidth;
|
|
200
|
-
const y2 = y1 + cropHeight;
|
|
201
|
-
return {
|
|
202
|
-
x1: x1 / width,
|
|
203
|
-
y1: y1 / height,
|
|
204
|
-
x2: x2 / width,
|
|
205
|
-
y2: y2 / height
|
|
206
|
-
};
|
|
207
|
-
};
|
|
208
|
-
const extractImgTag = (html)=>{
|
|
209
|
-
const srcList = [];
|
|
210
|
-
const parser = new __WEBPACK_EXTERNAL_MODULE_htmlparser2__.Parser({
|
|
211
|
-
onopentag (name, attributes) {
|
|
212
|
-
if ("img" === name && (attributes.src.trim() || attributes.currentSrc.trim())) srcList.push(attributes.src.trim() || attributes.currentSrc.trim());
|
|
213
|
-
}
|
|
214
|
-
});
|
|
215
|
-
parser.write(html);
|
|
216
|
-
parser.end();
|
|
217
|
-
return srcList;
|
|
218
|
-
};
|
|
219
|
-
class TimeFormatter {
|
|
220
|
-
static format(timestamp, formatStr = 'yyyy-MM-dd hh:mm') {
|
|
221
|
-
if ('number' == typeof timestamp && 10 === timestamp.toString().length) timestamp *= 1000;
|
|
222
|
-
const date = new Date(timestamp);
|
|
223
|
-
const map = {
|
|
224
|
-
yyyy: String(date.getFullYear()),
|
|
225
|
-
yy: String(date.getFullYear()).slice(-2),
|
|
226
|
-
MM: String(date.getMonth() + 1).padStart(2, '0'),
|
|
227
|
-
dd: String(date.getDate()).padStart(2, '0'),
|
|
228
|
-
hh: String(date.getHours()).padStart(2, '0'),
|
|
229
|
-
mm: String(date.getMinutes()).padStart(2, '0'),
|
|
230
|
-
ss: String(date.getSeconds()).padStart(2, '0'),
|
|
231
|
-
M: String(date.getMonth() + 1),
|
|
232
|
-
d: String(date.getDate()),
|
|
233
|
-
h: String(date.getHours()),
|
|
234
|
-
m: String(date.getMinutes()),
|
|
235
|
-
s: String(date.getSeconds())
|
|
236
|
-
};
|
|
237
|
-
return formatStr.replace(/yyyy|yy|MM|dd|hh|mm|ss|M|d|h|m|s/g, (key)=>map[key]);
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
const replaceImgSrc = (html, callback)=>{
|
|
241
|
-
let lastedHtml = html;
|
|
242
|
-
const isImageTag = (node)=>"tag" === node.type && "img" === node.name;
|
|
243
|
-
const traverseDom = (node)=>{
|
|
244
|
-
if (__WEBPACK_EXTERNAL_MODULE_htmlparser2__.DomUtils.hasChildren(node)) for (const child of node.children){
|
|
245
|
-
if (isImageTag(child)) callback(child);
|
|
246
|
-
traverseDom(child);
|
|
247
|
-
}
|
|
248
|
-
};
|
|
249
|
-
const handler = new __WEBPACK_EXTERNAL_MODULE_domhandler__.DomHandler((error, dom)=>{
|
|
250
|
-
if (error) console.log(error);
|
|
251
|
-
else dom.forEach(traverseDom);
|
|
252
|
-
lastedHtml = (0, __WEBPACK_EXTERNAL_MODULE_dom_serializer_aa70940b__["default"])(dom, {
|
|
253
|
-
decodeEntities: false
|
|
254
|
-
});
|
|
255
|
-
});
|
|
256
|
-
const parser = new __WEBPACK_EXTERNAL_MODULE_htmlparser2__.Parser(handler, {
|
|
257
|
-
decodeEntities: false
|
|
258
|
-
});
|
|
259
|
-
parser.write(html);
|
|
260
|
-
parser.end();
|
|
261
|
-
return lastedHtml;
|
|
262
|
-
};
|
|
263
|
-
const stringifyError = (error)=>{
|
|
264
|
-
if (error instanceof Error) return error.toString();
|
|
265
|
-
if ("object" == typeof error) return JSON.stringify(error);
|
|
266
|
-
return error;
|
|
267
|
-
};
|
|
268
|
-
const executeAction = (...actions)=>async (task, params)=>{
|
|
269
|
-
let result = {
|
|
270
|
-
code: 500,
|
|
271
|
-
message: "",
|
|
272
|
-
data: null
|
|
273
|
-
};
|
|
274
|
-
for(let index = 0; index < actions.length; index++){
|
|
275
|
-
const action = actions[index];
|
|
276
|
-
try {
|
|
277
|
-
result = await action(task, params);
|
|
278
|
-
} catch (error) {
|
|
279
|
-
result = http.e.handleApiError(error);
|
|
280
|
-
}
|
|
281
|
-
if (0 === result.code || 200 === result.code) break;
|
|
282
|
-
if (index !== actions.length - 1) task.logger.error(result.message, stringifyError(result.data), result.extra);
|
|
283
|
-
}
|
|
284
|
-
return result;
|
|
285
|
-
};
|
|
286
|
-
async function copyHtmlToClipboard(page, html, options = {
|
|
287
|
-
format: "text/html",
|
|
288
|
-
fallback: true
|
|
289
|
-
}) {
|
|
290
|
-
try {
|
|
291
|
-
await page.evaluate(async ({ htmlContent, format })=>{
|
|
292
|
-
const blob = new Blob([
|
|
293
|
-
htmlContent
|
|
294
|
-
], {
|
|
295
|
-
type: format
|
|
296
|
-
});
|
|
297
|
-
await navigator.clipboard.write([
|
|
298
|
-
new ClipboardItem({
|
|
299
|
-
[format]: blob
|
|
300
|
-
})
|
|
301
|
-
]);
|
|
302
|
-
}, {
|
|
303
|
-
htmlContent: html,
|
|
304
|
-
format: options.format
|
|
305
|
-
});
|
|
306
|
-
} catch (error) {
|
|
307
|
-
if (options.fallback) await page.evaluate((htmlContent)=>{
|
|
308
|
-
const div = document.createElement("div");
|
|
309
|
-
div.contentEditable = "true";
|
|
310
|
-
div.style.cssText = `
|
|
311
|
-
position: fixed;
|
|
312
|
-
left: -9999px;
|
|
313
|
-
opacity: 0;
|
|
314
|
-
pointer-events: none;
|
|
315
|
-
`;
|
|
316
|
-
div.innerHTML = htmlContent;
|
|
317
|
-
document.body.appendChild(div);
|
|
318
|
-
const range = document.createRange();
|
|
319
|
-
range.selectNodeContents(div);
|
|
320
|
-
const selection = window.getSelection();
|
|
321
|
-
selection.removeAllRanges();
|
|
322
|
-
selection.addRange(range);
|
|
323
|
-
document.execCommand("copy");
|
|
324
|
-
document.body.removeChild(div);
|
|
325
|
-
selection.removeAllRanges();
|
|
326
|
-
}, html);
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
function PopupListener(page, popupSelector, popKey, buttonSelector, options = {}) {
|
|
330
|
-
const { checkInterval = 1000, stopAfterClick = false } = options;
|
|
331
|
-
const popup = page.locator(popupSelector);
|
|
332
|
-
const button = page.locator(buttonSelector);
|
|
333
|
-
const intervalId = setInterval(async ()=>{
|
|
334
|
-
try {
|
|
335
|
-
if (await popup.count() > 0 && await popup.isVisible() && (await popup.textContent() || "").includes(popKey)) {
|
|
336
|
-
await button.click({
|
|
337
|
-
force: true
|
|
338
|
-
});
|
|
339
|
-
if (stopAfterClick) clearInterval(intervalId);
|
|
340
|
-
}
|
|
341
|
-
} catch (err) {}
|
|
342
|
-
}, checkInterval);
|
|
343
|
-
return ()=>{
|
|
344
|
-
clearInterval(intervalId);
|
|
345
|
-
};
|
|
346
|
-
}
|
|
347
|
-
const parseUrlQueryString = (url)=>{
|
|
348
|
-
const queryStringObject = {};
|
|
349
|
-
if (!url || !url.includes("?")) return queryStringObject;
|
|
350
|
-
const queryString = url.split("?")[1];
|
|
351
|
-
if (!queryString) return queryStringObject;
|
|
352
|
-
const queryWithoutHash = queryString.split("#")[0];
|
|
353
|
-
const queryStringArray = queryWithoutHash.split("&");
|
|
354
|
-
for (const item of queryStringArray){
|
|
355
|
-
if (!item) continue;
|
|
356
|
-
const equalIndex = item.indexOf("=");
|
|
357
|
-
if (-1 === equalIndex) queryStringObject[item] = "";
|
|
358
|
-
else {
|
|
359
|
-
const key = item.slice(0, equalIndex);
|
|
360
|
-
const value = item.slice(equalIndex + 1);
|
|
361
|
-
try {
|
|
362
|
-
queryStringObject[key] = decodeURIComponent(value);
|
|
363
|
-
} catch (e) {
|
|
364
|
-
queryStringObject[key] = value;
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
return queryStringObject;
|
|
369
|
-
};
|
|
370
|
-
const defaultParams = (params, defaults)=>Object.assign({}, defaults, params);
|
|
371
|
-
},
|
|
372
13
|
"./src/utils/ttABEncrypt.js": function(module, __unused_webpack_exports, __webpack_require__) {
|
|
373
14
|
module = __webpack_require__.nmd(module);
|
|
374
15
|
const a0_0x45db08 = a0_0x4b0d;
|
|
@@ -1450,18 +1091,6 @@ var __webpack_modules__ = {
|
|
|
1450
1091
|
return Data2A_B(Base2Data(EnvData2CharCode(_0x315138, _0x1c32b3, _0x56536b)));
|
|
1451
1092
|
}
|
|
1452
1093
|
module[a0_0x45db08(0xae)] = GenAB;
|
|
1453
|
-
},
|
|
1454
|
-
"@iflyrpa/share": function(module) {
|
|
1455
|
-
module.exports = __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__;
|
|
1456
|
-
},
|
|
1457
|
-
axios: function(module) {
|
|
1458
|
-
module.exports = __WEBPACK_EXTERNAL_MODULE_axios__;
|
|
1459
|
-
},
|
|
1460
|
-
"node:fs": function(module) {
|
|
1461
|
-
module.exports = __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__;
|
|
1462
|
-
},
|
|
1463
|
-
"node:path": function(module) {
|
|
1464
|
-
module.exports = __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__;
|
|
1465
1094
|
}
|
|
1466
1095
|
};
|
|
1467
1096
|
var __webpack_module_cache__ = {};
|
|
@@ -1477,19 +1106,6 @@ function __webpack_require__(moduleId) {
|
|
|
1477
1106
|
module.loaded = true;
|
|
1478
1107
|
return module.exports;
|
|
1479
1108
|
}
|
|
1480
|
-
(()=>{
|
|
1481
|
-
__webpack_require__.d = function(exports, definition) {
|
|
1482
|
-
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) Object.defineProperty(exports, key, {
|
|
1483
|
-
enumerable: true,
|
|
1484
|
-
get: definition[key]
|
|
1485
|
-
});
|
|
1486
|
-
};
|
|
1487
|
-
})();
|
|
1488
|
-
(()=>{
|
|
1489
|
-
__webpack_require__.o = function(obj, prop) {
|
|
1490
|
-
return Object.prototype.hasOwnProperty.call(obj, prop);
|
|
1491
|
-
};
|
|
1492
|
-
})();
|
|
1493
1109
|
(()=>{
|
|
1494
1110
|
__webpack_require__.nmd = function(module) {
|
|
1495
1111
|
module.paths = [];
|
|
@@ -1497,11 +1113,258 @@ function __webpack_require__(moduleId) {
|
|
|
1497
1113
|
return module;
|
|
1498
1114
|
};
|
|
1499
1115
|
})();
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1116
|
+
class Http {
|
|
1117
|
+
static handleApiError(error) {
|
|
1118
|
+
if (error && "object" == typeof error && "code" in error && "message" in error) return error;
|
|
1119
|
+
return {
|
|
1120
|
+
code: 500,
|
|
1121
|
+
message: "",
|
|
1122
|
+
data: error
|
|
1123
|
+
};
|
|
1124
|
+
}
|
|
1125
|
+
constructor(config){
|
|
1126
|
+
this.apiClient = __WEBPACK_EXTERNAL_MODULE_axios__["default"].create(config);
|
|
1127
|
+
}
|
|
1128
|
+
addResponseInterceptor(findError) {
|
|
1129
|
+
this.apiClient.interceptors.response.use((response)=>{
|
|
1130
|
+
const error = findError(response);
|
|
1131
|
+
if (error) return Promise.reject(Object.assign(error, {
|
|
1132
|
+
extra: {
|
|
1133
|
+
method: response.config.method,
|
|
1134
|
+
url: response.config.url
|
|
1135
|
+
}
|
|
1136
|
+
}));
|
|
1137
|
+
return response;
|
|
1138
|
+
}, (error)=>{
|
|
1139
|
+
const errorResponse = {
|
|
1140
|
+
code: error.response?.status || 500,
|
|
1141
|
+
message: error.message || "",
|
|
1142
|
+
data: error.response?.data,
|
|
1143
|
+
extra: {
|
|
1144
|
+
method: error.config?.method,
|
|
1145
|
+
url: error.config?.url
|
|
1146
|
+
}
|
|
1147
|
+
};
|
|
1148
|
+
if (error.response?.data) {
|
|
1149
|
+
if ("object" == typeof error.response.data) {
|
|
1150
|
+
const serverError = error.response.data;
|
|
1151
|
+
if (serverError.message) errorResponse.message = serverError.message;
|
|
1152
|
+
errorResponse.data = serverError;
|
|
1153
|
+
}
|
|
1154
|
+
}
|
|
1155
|
+
return Promise.reject(errorResponse);
|
|
1156
|
+
});
|
|
1157
|
+
}
|
|
1158
|
+
async api(config) {
|
|
1159
|
+
try {
|
|
1160
|
+
const response = await this.apiClient(config);
|
|
1161
|
+
return response.data;
|
|
1162
|
+
} catch (error) {
|
|
1163
|
+
return Promise.reject(Http.handleApiError(error));
|
|
1164
|
+
}
|
|
1165
|
+
}
|
|
1166
|
+
}
|
|
1167
|
+
function getRandomInRange(min, max) {
|
|
1168
|
+
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
1169
|
+
}
|
|
1170
|
+
const getFileState = (filePath)=>{
|
|
1171
|
+
const filename = __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].basename(filePath);
|
|
1172
|
+
const fileType = __WEBPACK_EXTERNAL_MODULE_mime_types_eebf54a5__["default"].lookup(filePath);
|
|
1173
|
+
const stats = __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__["default"].statSync(filePath);
|
|
1174
|
+
const fileSize = stats.size;
|
|
1175
|
+
const lastModifiedDate = stats.mtime;
|
|
1176
|
+
return {
|
|
1177
|
+
name: filename,
|
|
1178
|
+
type: fileType,
|
|
1179
|
+
size: fileSize,
|
|
1180
|
+
lastModifiedDate: lastModifiedDate.toString()
|
|
1181
|
+
};
|
|
1182
|
+
};
|
|
1183
|
+
const calculateCropCoordinates = (width, height, aspectRatio)=>{
|
|
1184
|
+
const targetRatio = aspectRatio[0] / aspectRatio[1];
|
|
1185
|
+
let cropWidth;
|
|
1186
|
+
let cropHeight;
|
|
1187
|
+
if (width / height > targetRatio) {
|
|
1188
|
+
cropHeight = height;
|
|
1189
|
+
cropWidth = height * targetRatio;
|
|
1190
|
+
} else {
|
|
1191
|
+
cropWidth = width;
|
|
1192
|
+
cropHeight = width / targetRatio;
|
|
1193
|
+
}
|
|
1194
|
+
const x1 = (width - cropWidth) / 2;
|
|
1195
|
+
const y1 = (height - cropHeight) / 2;
|
|
1196
|
+
const x2 = x1 + cropWidth;
|
|
1197
|
+
const y2 = y1 + cropHeight;
|
|
1198
|
+
return {
|
|
1199
|
+
x1: x1 / width,
|
|
1200
|
+
y1: y1 / height,
|
|
1201
|
+
x2: x2 / width,
|
|
1202
|
+
y2: y2 / height
|
|
1203
|
+
};
|
|
1204
|
+
};
|
|
1205
|
+
const extractImgTag = (html)=>{
|
|
1206
|
+
const srcList = [];
|
|
1207
|
+
const parser = new __WEBPACK_EXTERNAL_MODULE_htmlparser2__.Parser({
|
|
1208
|
+
onopentag (name, attributes) {
|
|
1209
|
+
if ("img" === name && (attributes.src.trim() || attributes.currentSrc.trim())) srcList.push(attributes.src.trim() || attributes.currentSrc.trim());
|
|
1210
|
+
}
|
|
1211
|
+
});
|
|
1212
|
+
parser.write(html);
|
|
1213
|
+
parser.end();
|
|
1214
|
+
return srcList;
|
|
1215
|
+
};
|
|
1216
|
+
class TimeFormatter {
|
|
1217
|
+
static format(timestamp, formatStr = 'yyyy-MM-dd hh:mm') {
|
|
1218
|
+
if ('number' == typeof timestamp && 10 === timestamp.toString().length) timestamp *= 1000;
|
|
1219
|
+
const date = new Date(timestamp);
|
|
1220
|
+
const map = {
|
|
1221
|
+
yyyy: String(date.getFullYear()),
|
|
1222
|
+
yy: String(date.getFullYear()).slice(-2),
|
|
1223
|
+
MM: String(date.getMonth() + 1).padStart(2, '0'),
|
|
1224
|
+
dd: String(date.getDate()).padStart(2, '0'),
|
|
1225
|
+
hh: String(date.getHours()).padStart(2, '0'),
|
|
1226
|
+
mm: String(date.getMinutes()).padStart(2, '0'),
|
|
1227
|
+
ss: String(date.getSeconds()).padStart(2, '0'),
|
|
1228
|
+
M: String(date.getMonth() + 1),
|
|
1229
|
+
d: String(date.getDate()),
|
|
1230
|
+
h: String(date.getHours()),
|
|
1231
|
+
m: String(date.getMinutes()),
|
|
1232
|
+
s: String(date.getSeconds())
|
|
1233
|
+
};
|
|
1234
|
+
return formatStr.replace(/yyyy|yy|MM|dd|hh|mm|ss|M|d|h|m|s/g, (key)=>map[key]);
|
|
1235
|
+
}
|
|
1236
|
+
}
|
|
1237
|
+
const replaceImgSrc = (html, callback)=>{
|
|
1238
|
+
let lastedHtml = html;
|
|
1239
|
+
const isImageTag = (node)=>"tag" === node.type && "img" === node.name;
|
|
1240
|
+
const traverseDom = (node)=>{
|
|
1241
|
+
if (__WEBPACK_EXTERNAL_MODULE_htmlparser2__.DomUtils.hasChildren(node)) for (const child of node.children){
|
|
1242
|
+
if (isImageTag(child)) callback(child);
|
|
1243
|
+
traverseDom(child);
|
|
1244
|
+
}
|
|
1245
|
+
};
|
|
1246
|
+
const handler = new __WEBPACK_EXTERNAL_MODULE_domhandler__.DomHandler((error, dom)=>{
|
|
1247
|
+
if (error) console.log(error);
|
|
1248
|
+
else dom.forEach(traverseDom);
|
|
1249
|
+
lastedHtml = (0, __WEBPACK_EXTERNAL_MODULE_dom_serializer_aa70940b__["default"])(dom, {
|
|
1250
|
+
decodeEntities: false
|
|
1251
|
+
});
|
|
1252
|
+
});
|
|
1253
|
+
const parser = new __WEBPACK_EXTERNAL_MODULE_htmlparser2__.Parser(handler, {
|
|
1254
|
+
decodeEntities: false
|
|
1255
|
+
});
|
|
1256
|
+
parser.write(html);
|
|
1257
|
+
parser.end();
|
|
1258
|
+
return lastedHtml;
|
|
1259
|
+
};
|
|
1260
|
+
const stringifyError = (error)=>{
|
|
1261
|
+
if (error instanceof Error) return error.toString();
|
|
1262
|
+
if ("object" == typeof error) return JSON.stringify(error);
|
|
1263
|
+
return error;
|
|
1264
|
+
};
|
|
1265
|
+
const executeAction = (...actions)=>async (task, params)=>{
|
|
1266
|
+
let result = {
|
|
1267
|
+
code: 500,
|
|
1268
|
+
message: "",
|
|
1269
|
+
data: null
|
|
1270
|
+
};
|
|
1271
|
+
for(let index = 0; index < actions.length; index++){
|
|
1272
|
+
const action = actions[index];
|
|
1273
|
+
try {
|
|
1274
|
+
result = await action(task, params);
|
|
1275
|
+
} catch (error) {
|
|
1276
|
+
result = Http.handleApiError(error);
|
|
1277
|
+
}
|
|
1278
|
+
if (0 === result.code || 200 === result.code) break;
|
|
1279
|
+
if (index !== actions.length - 1) task.logger.error(result.message, stringifyError(result.data), result.extra);
|
|
1280
|
+
}
|
|
1281
|
+
return result;
|
|
1282
|
+
};
|
|
1283
|
+
async function copyHtmlToClipboard(page, html, options = {
|
|
1284
|
+
format: "text/html",
|
|
1285
|
+
fallback: true
|
|
1286
|
+
}) {
|
|
1287
|
+
try {
|
|
1288
|
+
await page.evaluate(async ({ htmlContent, format })=>{
|
|
1289
|
+
const blob = new Blob([
|
|
1290
|
+
htmlContent
|
|
1291
|
+
], {
|
|
1292
|
+
type: format
|
|
1293
|
+
});
|
|
1294
|
+
await navigator.clipboard.write([
|
|
1295
|
+
new ClipboardItem({
|
|
1296
|
+
[format]: blob
|
|
1297
|
+
})
|
|
1298
|
+
]);
|
|
1299
|
+
}, {
|
|
1300
|
+
htmlContent: html,
|
|
1301
|
+
format: options.format
|
|
1302
|
+
});
|
|
1303
|
+
} catch (error) {
|
|
1304
|
+
if (options.fallback) await page.evaluate((htmlContent)=>{
|
|
1305
|
+
const div = document.createElement("div");
|
|
1306
|
+
div.contentEditable = "true";
|
|
1307
|
+
div.style.cssText = `
|
|
1308
|
+
position: fixed;
|
|
1309
|
+
left: -9999px;
|
|
1310
|
+
opacity: 0;
|
|
1311
|
+
pointer-events: none;
|
|
1312
|
+
`;
|
|
1313
|
+
div.innerHTML = htmlContent;
|
|
1314
|
+
document.body.appendChild(div);
|
|
1315
|
+
const range = document.createRange();
|
|
1316
|
+
range.selectNodeContents(div);
|
|
1317
|
+
const selection = window.getSelection();
|
|
1318
|
+
selection.removeAllRanges();
|
|
1319
|
+
selection.addRange(range);
|
|
1320
|
+
document.execCommand("copy");
|
|
1321
|
+
document.body.removeChild(div);
|
|
1322
|
+
selection.removeAllRanges();
|
|
1323
|
+
}, html);
|
|
1324
|
+
}
|
|
1325
|
+
}
|
|
1326
|
+
function PopupListener(page, popupSelector, popKey, buttonSelector, options = {}) {
|
|
1327
|
+
const { checkInterval = 1000, stopAfterClick = false } = options;
|
|
1328
|
+
const popup = page.locator(popupSelector);
|
|
1329
|
+
const button = page.locator(buttonSelector);
|
|
1330
|
+
const intervalId = setInterval(async ()=>{
|
|
1331
|
+
try {
|
|
1332
|
+
if (await popup.count() > 0 && await popup.isVisible() && (await popup.textContent() || "").includes(popKey)) {
|
|
1333
|
+
await button.click({
|
|
1334
|
+
force: true
|
|
1335
|
+
});
|
|
1336
|
+
if (stopAfterClick) clearInterval(intervalId);
|
|
1337
|
+
}
|
|
1338
|
+
} catch (err) {}
|
|
1339
|
+
}, checkInterval);
|
|
1340
|
+
return ()=>{
|
|
1341
|
+
clearInterval(intervalId);
|
|
1342
|
+
};
|
|
1343
|
+
}
|
|
1344
|
+
const parseUrlQueryString = (url)=>{
|
|
1345
|
+
const queryStringObject = {};
|
|
1346
|
+
if (!url || !url.includes("?")) return queryStringObject;
|
|
1347
|
+
const queryString = url.split("?")[1];
|
|
1348
|
+
if (!queryString) return queryStringObject;
|
|
1349
|
+
const queryWithoutHash = queryString.split("#")[0];
|
|
1350
|
+
const queryStringArray = queryWithoutHash.split("&");
|
|
1351
|
+
for (const item of queryStringArray){
|
|
1352
|
+
if (!item) continue;
|
|
1353
|
+
const equalIndex = item.indexOf("=");
|
|
1354
|
+
if (-1 === equalIndex) queryStringObject[item] = "";
|
|
1355
|
+
else {
|
|
1356
|
+
const key = item.slice(0, equalIndex);
|
|
1357
|
+
const value = item.slice(equalIndex + 1);
|
|
1358
|
+
try {
|
|
1359
|
+
queryStringObject[key] = decodeURIComponent(value);
|
|
1360
|
+
} catch (e) {
|
|
1361
|
+
queryStringObject[key] = value;
|
|
1362
|
+
}
|
|
1363
|
+
}
|
|
1364
|
+
}
|
|
1365
|
+
return queryStringObject;
|
|
1366
|
+
};
|
|
1367
|
+
const defaultParams = (params, defaults)=>Object.assign({}, defaults, params);
|
|
1505
1368
|
const errnoMap = {
|
|
1506
1369
|
20040706: "正文图片和封面图片推荐jpg、png格式。",
|
|
1507
1370
|
20040084: "正文图片和封面图片推荐jpg、png格式。",
|
|
@@ -1520,7 +1383,7 @@ const errnoMap = {
|
|
|
1520
1383
|
const mockAction = async (task, params)=>{
|
|
1521
1384
|
const { baijiahaoSingleCover, baijiahaoMultCover, baijiahaoCoverType } = params.settingInfo;
|
|
1522
1385
|
const tmpCachePath = task.getTmpPath();
|
|
1523
|
-
const http = new
|
|
1386
|
+
const http = new Http({
|
|
1524
1387
|
headers: {
|
|
1525
1388
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
1526
1389
|
token: params.token
|
|
@@ -1554,8 +1417,8 @@ const mockAction = async (task, params)=>{
|
|
|
1554
1417
|
const uploadImages = async (_images)=>{
|
|
1555
1418
|
const images = _images.filter((url)=>!!url && "" !== url.trim());
|
|
1556
1419
|
return await Promise.all(images.map(async (url)=>{
|
|
1557
|
-
const fileName = (0,
|
|
1558
|
-
const image = await (0,
|
|
1420
|
+
const fileName = (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.getFilenameFromUrl)(url);
|
|
1421
|
+
const image = await (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.downloadImage)(url, __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].join(tmpCachePath, fileName));
|
|
1559
1422
|
const formData = new __WEBPACK_EXTERNAL_MODULE_form_data_cf000082__["default"]();
|
|
1560
1423
|
formData.append("org_file_name", fileName);
|
|
1561
1424
|
formData.append("type", "image");
|
|
@@ -1564,7 +1427,7 @@ const mockAction = async (task, params)=>{
|
|
|
1564
1427
|
formData.append("save_material", "1");
|
|
1565
1428
|
formData.append("no_compress", "0");
|
|
1566
1429
|
formData.append("article_type", "news");
|
|
1567
|
-
formData.append("media",
|
|
1430
|
+
formData.append("media", __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__["default"].createReadStream(image));
|
|
1568
1431
|
const res = await http.api({
|
|
1569
1432
|
method: "post",
|
|
1570
1433
|
url: "https://baijiahao.baidu.com/materialui/picture/uploadProxy",
|
|
@@ -1574,9 +1437,9 @@ const mockAction = async (task, params)=>{
|
|
|
1574
1437
|
return res.ret;
|
|
1575
1438
|
}));
|
|
1576
1439
|
};
|
|
1577
|
-
const originContentImages = (
|
|
1440
|
+
const originContentImages = extractImgTag(params.content);
|
|
1578
1441
|
const targetContentImages = await uploadImages(originContentImages);
|
|
1579
|
-
const content = (
|
|
1442
|
+
const content = replaceImgSrc(params.content, (dom)=>{
|
|
1580
1443
|
if (dom.attribs.src) {
|
|
1581
1444
|
const idx = originContentImages.findIndex((it)=>it === dom.attribs.src);
|
|
1582
1445
|
dom.attribs.src = targetContentImages[idx].bos_url;
|
|
@@ -1651,7 +1514,7 @@ const mockAction = async (task, params)=>{
|
|
|
1651
1514
|
},
|
|
1652
1515
|
defaultErrorMsg: isDraft ? "文章同步出现异常,请稍后重试。" : "文章发布出现异常,请稍后重试。"
|
|
1653
1516
|
});
|
|
1654
|
-
return (0,
|
|
1517
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(res.ret.article_id, "百家号发布完成。");
|
|
1655
1518
|
};
|
|
1656
1519
|
const rpaAction = async (task, params)=>{
|
|
1657
1520
|
const tmpCachePath = task.getTmpPath();
|
|
@@ -1689,7 +1552,7 @@ const rpaAction = async (task, params)=>{
|
|
|
1689
1552
|
const titleInstance = page.locator("#ueditor #bjhNewsTitle .input-box textarea");
|
|
1690
1553
|
await titleInstance.click();
|
|
1691
1554
|
await titleInstance.fill(params.title);
|
|
1692
|
-
await (
|
|
1555
|
+
await copyHtmlToClipboard(page, params.content);
|
|
1693
1556
|
await page.click("#ueditor .edui-editor-iframeholder iframe");
|
|
1694
1557
|
await page.keyboard.press("Control+A");
|
|
1695
1558
|
await page.keyboard.press("Control+V");
|
|
@@ -1705,8 +1568,8 @@ const rpaAction = async (task, params)=>{
|
|
|
1705
1568
|
const images = await Promise.all((isSingleCover ? [
|
|
1706
1569
|
params.settingInfo.baijiahaoSingleCover
|
|
1707
1570
|
] : params.settingInfo.baijiahaoMultCover).map((url)=>{
|
|
1708
|
-
const fileName = (0,
|
|
1709
|
-
return (0,
|
|
1571
|
+
const fileName = (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.getFilenameFromUrl)(url);
|
|
1572
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.downloadImage)(url, __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].join(tmpCachePath, fileName));
|
|
1710
1573
|
}));
|
|
1711
1574
|
const coverSelector = page.locator(".cheetah-form-item-control .edit-cover-container .cover-list .DraggableTags-tag-drag .coverUploaderView");
|
|
1712
1575
|
const coverCount = await coverSelector.count();
|
|
@@ -1789,7 +1652,7 @@ const rpaAction = async (task, params)=>{
|
|
|
1789
1652
|
hasText: "日"
|
|
1790
1653
|
}).click();
|
|
1791
1654
|
await page.locator('#select-date_list + * .cheetah-select-item-option', {
|
|
1792
|
-
hasText:
|
|
1655
|
+
hasText: TimeFormatter.format(params.settingInfo.timer, "M月dd日")
|
|
1793
1656
|
}).click();
|
|
1794
1657
|
await page.waitForTimeout(200);
|
|
1795
1658
|
await page.locator(".timepublish-wrap-select .select-wrap", {
|
|
@@ -1810,7 +1673,7 @@ const rpaAction = async (task, params)=>{
|
|
|
1810
1673
|
let fistHourElemH = Number(fistHourElem?.split("点")[0]);
|
|
1811
1674
|
const lastHourElem = scrollHourInfo.elementItem[scrollHourInfo.elementItem.length - 1];
|
|
1812
1675
|
let lastHourElemH = Number(lastHourElem?.split("点")[0]);
|
|
1813
|
-
let targetTimeH = Number(
|
|
1676
|
+
let targetTimeH = Number(TimeFormatter.format(params.settingInfo.timer, 'h'));
|
|
1814
1677
|
await page.mouse.wheel(0, targetTimeH > lastHourElemH ? (targetTimeH - lastHourElemH) * scrollHourInfo.elementHeight : targetTimeH < fistHourElemH ? -(fistHourElemH - targetTimeH) * scrollHourInfo.elementHeight : 0);
|
|
1815
1678
|
await page.locator("#select-hour_list + * .cheetah-select-item-option ", {
|
|
1816
1679
|
hasText: targetTimeH + "点"
|
|
@@ -1834,7 +1697,7 @@ const rpaAction = async (task, params)=>{
|
|
|
1834
1697
|
let fistMinuteElemH = Number(fistMinuteElem?.split("分")[0]);
|
|
1835
1698
|
const lastMinuteElem = scrollMinuteInfo.elementItem[scrollMinuteInfo.elementItem.length - 1];
|
|
1836
1699
|
let lastMinuteElemH = Number(lastMinuteElem?.split("分")[0]);
|
|
1837
|
-
let targetTimeM = Number(
|
|
1700
|
+
let targetTimeM = Number(TimeFormatter.format(params.settingInfo.timer, 'm'));
|
|
1838
1701
|
await page.mouse.wheel(0, targetTimeM > lastMinuteElemH ? (targetTimeM - lastMinuteElemH) * scrollMinuteInfo.elementHeight : targetTimeM < fistMinuteElemH ? -(fistMinuteElemH - targetTimeM) * scrollMinuteInfo.elementHeight : 0);
|
|
1839
1702
|
await page.locator("#select-minute_list + * .cheetah-select-item-option ", {
|
|
1840
1703
|
hasText: targetTimeM + "分"
|
|
@@ -1848,16 +1711,16 @@ const rpaAction = async (task, params)=>{
|
|
|
1848
1711
|
}).locator("button").click();
|
|
1849
1712
|
});
|
|
1850
1713
|
await page.close();
|
|
1851
|
-
return (0,
|
|
1714
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(articleId, articleId ? "发布成功" : message);
|
|
1852
1715
|
};
|
|
1853
1716
|
const baijiahaoPublish = async (task, params)=>{
|
|
1854
1717
|
if ("rpa" === params.actionType) return rpaAction(task, params);
|
|
1855
1718
|
if ("mockApi" === params.actionType) return mockAction(task, params);
|
|
1856
|
-
return (
|
|
1719
|
+
return executeAction(mockAction, rpaAction)(task, params);
|
|
1857
1720
|
};
|
|
1858
1721
|
const getBaijiahaoActivity = async (_task, params)=>{
|
|
1859
1722
|
const cookies = params.cookies ?? [];
|
|
1860
|
-
const http = new
|
|
1723
|
+
const http = new Http({
|
|
1861
1724
|
headers: {
|
|
1862
1725
|
cookie: cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
1863
1726
|
token: params.token
|
|
@@ -1875,11 +1738,11 @@ const getBaijiahaoActivity = async (_task, params)=>{
|
|
|
1875
1738
|
task_type: -1
|
|
1876
1739
|
}
|
|
1877
1740
|
});
|
|
1878
|
-
return (0,
|
|
1741
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(res?.data?.list ?? []);
|
|
1879
1742
|
};
|
|
1880
1743
|
const getToutiaoConfig = async (_task, params)=>{
|
|
1881
1744
|
const cookies = params.cookies ?? [];
|
|
1882
|
-
const http = new
|
|
1745
|
+
const http = new Http({
|
|
1883
1746
|
headers: {
|
|
1884
1747
|
cookie: cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
1885
1748
|
referer: "https://mp.toutiao.com/profile_v4/graphic/publish"
|
|
@@ -1927,7 +1790,7 @@ const getToutiaoConfig = async (_task, params)=>{
|
|
|
1927
1790
|
getCityDistrict(),
|
|
1928
1791
|
getUserRights()
|
|
1929
1792
|
]);
|
|
1930
|
-
return (0,
|
|
1793
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)({
|
|
1931
1794
|
suggestWords,
|
|
1932
1795
|
cityDistrict,
|
|
1933
1796
|
userRights
|
|
@@ -1935,7 +1798,7 @@ const getToutiaoConfig = async (_task, params)=>{
|
|
|
1935
1798
|
};
|
|
1936
1799
|
const getBaijiahaoConfig = async (_task, params)=>{
|
|
1937
1800
|
const cookies = params.cookies ?? [];
|
|
1938
|
-
const http = new
|
|
1801
|
+
const http = new Http({
|
|
1939
1802
|
headers: {
|
|
1940
1803
|
cookie: cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
1941
1804
|
token: params.token
|
|
@@ -1961,10 +1824,10 @@ const getBaijiahaoConfig = async (_task, params)=>{
|
|
|
1961
1824
|
is_enable: 1,
|
|
1962
1825
|
publish_num_left: res.data.ability.publish_num_left
|
|
1963
1826
|
});
|
|
1964
|
-
return (0,
|
|
1827
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(data, "获取百家号配置项成功!");
|
|
1965
1828
|
};
|
|
1966
1829
|
const searchToutiaoTopicList = async (_task, params)=>{
|
|
1967
|
-
const http = new
|
|
1830
|
+
const http = new Http({
|
|
1968
1831
|
headers: {
|
|
1969
1832
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
1970
1833
|
referer: "https://mp.toutiao.com/profile_v4/graphic/publish"
|
|
@@ -1979,14 +1842,14 @@ const searchToutiaoTopicList = async (_task, params)=>{
|
|
|
1979
1842
|
words: params.searchValue
|
|
1980
1843
|
}
|
|
1981
1844
|
});
|
|
1982
|
-
if (0 === res.code) return (0,
|
|
1983
|
-
return (0,
|
|
1845
|
+
if (0 === res.code) return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(params.searchValue ? res.recents : res.hots);
|
|
1846
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)([]);
|
|
1984
1847
|
} catch (error) {
|
|
1985
|
-
return (0,
|
|
1848
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)([]);
|
|
1986
1849
|
}
|
|
1987
1850
|
};
|
|
1988
1851
|
const searchToutiaoLocation = async (_task, params)=>{
|
|
1989
|
-
const http = new
|
|
1852
|
+
const http = new Http({
|
|
1990
1853
|
headers: {
|
|
1991
1854
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
1992
1855
|
referer: "https://mp.toutiao.com/profile_v4/graphic/publish",
|
|
@@ -2010,7 +1873,7 @@ const searchToutiaoLocation = async (_task, params)=>{
|
|
|
2010
1873
|
timestamp: Math.floor(Date.now() / 1000)
|
|
2011
1874
|
}
|
|
2012
1875
|
});
|
|
2013
|
-
if (200 === res.code) return (0,
|
|
1876
|
+
if (200 === res.code) return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(res.data.poi.map((item)=>({
|
|
2014
1877
|
position: item.name,
|
|
2015
1878
|
city: item.city,
|
|
2016
1879
|
longitude: item.longitude,
|
|
@@ -2018,13 +1881,13 @@ const searchToutiaoLocation = async (_task, params)=>{
|
|
|
2018
1881
|
type_code: item.type_code,
|
|
2019
1882
|
poi_id: item.id
|
|
2020
1883
|
})));
|
|
2021
|
-
return (0,
|
|
1884
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)([]);
|
|
2022
1885
|
} catch (error) {
|
|
2023
|
-
return (0,
|
|
1886
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)([]);
|
|
2024
1887
|
}
|
|
2025
1888
|
};
|
|
2026
1889
|
const searchToutiaoUserInfo = async (_task, params)=>{
|
|
2027
|
-
const http = new
|
|
1890
|
+
const http = new Http({
|
|
2028
1891
|
headers: {
|
|
2029
1892
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
2030
1893
|
referer: "https://mp.toutiao.com/profile_v4/graphic/publish"
|
|
@@ -2040,19 +1903,19 @@ const searchToutiaoUserInfo = async (_task, params)=>{
|
|
|
2040
1903
|
app_name: "toutiao_mp"
|
|
2041
1904
|
}
|
|
2042
1905
|
});
|
|
2043
|
-
if (0 === res.err_no) return (0,
|
|
1906
|
+
if (0 === res.err_no) return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(res.data.suggest.map((item)=>({
|
|
2044
1907
|
user_id: item.user.info.user_id,
|
|
2045
1908
|
name: item.user.info.name,
|
|
2046
1909
|
avatar_url: item.user.info.avatar_url,
|
|
2047
1910
|
followers_count: item.user.relation_count.followers_count
|
|
2048
1911
|
})), '搜索成功');
|
|
2049
|
-
return (0,
|
|
1912
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)([]);
|
|
2050
1913
|
} catch (error) {
|
|
2051
|
-
return (0,
|
|
1914
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)([]);
|
|
2052
1915
|
}
|
|
2053
1916
|
};
|
|
2054
1917
|
const searchXiaohongshuLocation = async (_task, params)=>{
|
|
2055
|
-
const http = new
|
|
1918
|
+
const http = new Http({
|
|
2056
1919
|
headers: {
|
|
2057
1920
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
2058
1921
|
referer: "https://creator.xiaohongshu.com",
|
|
@@ -2073,13 +1936,13 @@ const searchXiaohongshuLocation = async (_task, params)=>{
|
|
|
2073
1936
|
type: 3
|
|
2074
1937
|
}
|
|
2075
1938
|
});
|
|
2076
|
-
return (0,
|
|
1939
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(0 === result.code ? result.data.poi_list : []);
|
|
2077
1940
|
} catch (error) {
|
|
2078
|
-
return (0,
|
|
1941
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)([]);
|
|
2079
1942
|
}
|
|
2080
1943
|
};
|
|
2081
1944
|
const searchXiaohongshuTopicList = async (_task, params)=>{
|
|
2082
|
-
const http = new
|
|
1945
|
+
const http = new Http({
|
|
2083
1946
|
headers: {
|
|
2084
1947
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
2085
1948
|
referer: "https://creator.xiaohongshu.com",
|
|
@@ -2103,9 +1966,9 @@ const searchXiaohongshuTopicList = async (_task, params)=>{
|
|
|
2103
1966
|
},
|
|
2104
1967
|
defaultErrorMsg: "话题搜索异常,请稍后重试。"
|
|
2105
1968
|
});
|
|
2106
|
-
return (0,
|
|
1969
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(0 === result.code ? result.data.topic_info_dtos : [], '获取话题成功');
|
|
2107
1970
|
} catch (error) {
|
|
2108
|
-
return (0,
|
|
1971
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)([]);
|
|
2109
1972
|
}
|
|
2110
1973
|
};
|
|
2111
1974
|
const GenAB = __webpack_require__("./src/utils/ttABEncrypt.js");
|
|
@@ -2141,7 +2004,7 @@ const get3101DetailError = (errorList, message, saveType)=>{
|
|
|
2141
2004
|
const mock_mockAction = async (task, params)=>{
|
|
2142
2005
|
const { toutiaoSingleCover, toutiaoMultCover, toutiaoCoverType, toutiaoOriginal, toutiaoExclusive, toutiaoClaim } = params.settingInfo;
|
|
2143
2006
|
const tmpCachePath = task.getTmpPath();
|
|
2144
|
-
const http = new
|
|
2007
|
+
const http = new Http({
|
|
2145
2008
|
headers: {
|
|
2146
2009
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
2147
2010
|
origin: "https://mp.toutiao.com",
|
|
@@ -2165,10 +2028,10 @@ const mock_mockAction = async (task, params)=>{
|
|
|
2165
2028
|
defaultErrorMsg: `头条号登录状态失效,请重新绑定账号后${"draft" === params.saveType ? "同步" : "发布"}。`
|
|
2166
2029
|
});
|
|
2167
2030
|
const uploadImages = async (images)=>await Promise.all(images.map(async (url)=>{
|
|
2168
|
-
const fileName = (0,
|
|
2169
|
-
const image = await (0,
|
|
2031
|
+
const fileName = (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.getFilenameFromUrl)(url);
|
|
2032
|
+
const image = await (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.downloadImage)(url, __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].join(tmpCachePath, fileName));
|
|
2170
2033
|
const formData = new __WEBPACK_EXTERNAL_MODULE_form_data_cf000082__["default"]();
|
|
2171
|
-
formData.append("image",
|
|
2034
|
+
formData.append("image", __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__["default"].createReadStream(image));
|
|
2172
2035
|
const response = await http.api({
|
|
2173
2036
|
method: "post",
|
|
2174
2037
|
url: "https://mp.toutiao.com/spice/image?upload_source=20020002&aid=1231&device_platform=web",
|
|
@@ -2177,9 +2040,9 @@ const mock_mockAction = async (task, params)=>{
|
|
|
2177
2040
|
});
|
|
2178
2041
|
return response.data;
|
|
2179
2042
|
}));
|
|
2180
|
-
const originContentImages = (
|
|
2043
|
+
const originContentImages = extractImgTag(params.content);
|
|
2181
2044
|
const targetContentImages = await uploadImages(originContentImages);
|
|
2182
|
-
const content = (
|
|
2045
|
+
const content = replaceImgSrc(params.content, (dom)=>{
|
|
2183
2046
|
if (dom.attribs.src) {
|
|
2184
2047
|
const idx = originContentImages.findIndex((it)=>it === dom.attribs.src);
|
|
2185
2048
|
dom.attribs.src = targetContentImages[idx].image_url;
|
|
@@ -2250,7 +2113,7 @@ const mock_mockAction = async (task, params)=>{
|
|
|
2250
2113
|
is_refute_rumor: 0,
|
|
2251
2114
|
save: "publish" === params.saveType ? 1 : 0,
|
|
2252
2115
|
timer_status: params.settingInfo.timer ? 1 : 0,
|
|
2253
|
-
timer_time: params.settingInfo.timer ?
|
|
2116
|
+
timer_time: params.settingInfo.timer ? TimeFormatter.format(params.settingInfo.timer) : "",
|
|
2254
2117
|
title: params.title,
|
|
2255
2118
|
content: content + topicContent,
|
|
2256
2119
|
extra: JSON.stringify(extraData),
|
|
@@ -2305,7 +2168,7 @@ const mock_mockAction = async (task, params)=>{
|
|
|
2305
2168
|
defaultErrorMsg: "draft" === params.saveType ? "文章同步异常,请稍后重试。" : "文章发布异常,请稍后重试。"
|
|
2306
2169
|
};
|
|
2307
2170
|
const publishResult = await http.api(publishOption);
|
|
2308
|
-
return (0,
|
|
2171
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(publishResult.data.pgc_id);
|
|
2309
2172
|
};
|
|
2310
2173
|
const rpa_GenAB = __webpack_require__("./src/utils/ttABEncrypt.js");
|
|
2311
2174
|
const rpa_rpaAction = async (task, params)=>{
|
|
@@ -2369,14 +2232,14 @@ const rpa_rpaAction = async (task, params)=>{
|
|
|
2369
2232
|
});
|
|
2370
2233
|
} else await route.continue();
|
|
2371
2234
|
});
|
|
2372
|
-
(
|
|
2235
|
+
PopupListener(page, '.byte-modal.publish-exclusive-modal .title', "激励", '.byte-modal-close-icon', {
|
|
2373
2236
|
checkInterval: 1000,
|
|
2374
2237
|
stopAfterClick: false
|
|
2375
2238
|
});
|
|
2376
2239
|
const titleInstance = page.locator(".publish-editor-title-wrapper .publish-editor-title textarea");
|
|
2377
2240
|
await titleInstance.click();
|
|
2378
2241
|
await titleInstance.fill(params.title);
|
|
2379
|
-
await (
|
|
2242
|
+
await copyHtmlToClipboard(page, params.content);
|
|
2380
2243
|
await page.click(".publish-editor .syl-editor-wrap .ProseMirror");
|
|
2381
2244
|
await page.keyboard.press("Control+V");
|
|
2382
2245
|
const coverTypeValue = COVER_TYPE[params.settingInfo.toutiaoCoverType];
|
|
@@ -2391,8 +2254,8 @@ const rpa_rpaAction = async (task, params)=>{
|
|
|
2391
2254
|
];
|
|
2392
2255
|
else if ("multiple" === params.settingInfo.toutiaoCoverType) coverUrls = params.settingInfo.toutiaoMultCover;
|
|
2393
2256
|
const images = await Promise.all(coverUrls.map((url)=>{
|
|
2394
|
-
const fileName = (0,
|
|
2395
|
-
return (0,
|
|
2257
|
+
const fileName = (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.getFilenameFromUrl)(url);
|
|
2258
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.downloadImage)(url, __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].join(tmpCachePath, fileName));
|
|
2396
2259
|
}));
|
|
2397
2260
|
const coverUploadEle = coverContainer.locator(".article-cover .article-cover-images").locator(".article-cover-img-wrap, .article-cover-add");
|
|
2398
2261
|
const coverUploadCount = await coverUploadEle.count();
|
|
@@ -2423,7 +2286,7 @@ const rpa_rpaAction = async (task, params)=>{
|
|
|
2423
2286
|
state: "visible"
|
|
2424
2287
|
});
|
|
2425
2288
|
await confirmBtn.click();
|
|
2426
|
-
await page.waitForTimeout((
|
|
2289
|
+
await page.waitForTimeout(getRandomInRange(500, 1000));
|
|
2427
2290
|
}
|
|
2428
2291
|
if (params.settingInfo.toutiaoLocation) {
|
|
2429
2292
|
const locationContainer = page.locator(".form-container .edit-cell").filter({
|
|
@@ -2492,17 +2355,17 @@ const rpa_rpaAction = async (task, params)=>{
|
|
|
2492
2355
|
});
|
|
2493
2356
|
await page.locator(".byte-modal-content .day-select .byte-select-view-value").click();
|
|
2494
2357
|
await page.locator('li.byte-select-option', {
|
|
2495
|
-
hasText:
|
|
2358
|
+
hasText: TimeFormatter.format(params.settingInfo.timer, "MM月dd日")
|
|
2496
2359
|
}).click();
|
|
2497
2360
|
await page.waitForTimeout(200);
|
|
2498
2361
|
await page.locator(".byte-modal-content .hour-select .byte-select-view-value").click();
|
|
2499
2362
|
await page.locator('li.byte-select-option', {
|
|
2500
|
-
hasText:
|
|
2363
|
+
hasText: TimeFormatter.format(params.settingInfo.timer, "h")
|
|
2501
2364
|
}).click();
|
|
2502
2365
|
await page.waitForTimeout(200);
|
|
2503
2366
|
await page.locator(".byte-modal-content .minute-select .byte-select-view-value").click();
|
|
2504
2367
|
await page.locator('li.byte-select-option', {
|
|
2505
|
-
hasText:
|
|
2368
|
+
hasText: TimeFormatter.format(params.settingInfo.timer, "m")
|
|
2506
2369
|
}).click();
|
|
2507
2370
|
await page.waitForTimeout(200);
|
|
2508
2371
|
await page.locator(".byte-modal-footer button").filter({
|
|
@@ -2529,7 +2392,7 @@ const rpa_rpaAction = async (task, params)=>{
|
|
|
2529
2392
|
}).click();
|
|
2530
2393
|
}
|
|
2531
2394
|
await page.close();
|
|
2532
|
-
return (0,
|
|
2395
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(articleId, "publish" === params.saveType ? "发布成功" : "保存草稿成功");
|
|
2533
2396
|
};
|
|
2534
2397
|
const COVER_TYPE = {
|
|
2535
2398
|
no: 1,
|
|
@@ -2540,10 +2403,10 @@ const getAddTypeValue = (toutiaoAd)=>"yes" === toutiaoAd ? 3 : 2;
|
|
|
2540
2403
|
const toutiaoPublish = async (task, params)=>{
|
|
2541
2404
|
if ("rpa" === params.actionType) return rpa_rpaAction(task, params);
|
|
2542
2405
|
if ("mockApi" === params.actionType) return mock_mockAction(task, params);
|
|
2543
|
-
return (
|
|
2406
|
+
return executeAction(mock_mockAction, rpa_rpaAction)(task, params);
|
|
2544
2407
|
};
|
|
2545
2408
|
const TTFansExport = async (_task, params)=>{
|
|
2546
|
-
const http = new
|
|
2409
|
+
const http = new Http({
|
|
2547
2410
|
headers: {
|
|
2548
2411
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
2549
2412
|
referer: "https://mp.toutiao.com/profile_v4/graphic/publish"
|
|
@@ -2557,19 +2420,19 @@ const TTFansExport = async (_task, params)=>{
|
|
|
2557
2420
|
app_id: 1231
|
|
2558
2421
|
}
|
|
2559
2422
|
});
|
|
2560
|
-
return (0,
|
|
2423
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(0 === res.code ? {
|
|
2561
2424
|
fans_count: res.total_fans_count
|
|
2562
2425
|
} : {
|
|
2563
2426
|
fans_count: null
|
|
2564
2427
|
}, "获取粉丝数成功!");
|
|
2565
2428
|
} catch (error) {
|
|
2566
|
-
return (0,
|
|
2429
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)({
|
|
2567
2430
|
fans_count: null
|
|
2568
2431
|
}, "获取粉丝数失败,请检查登陆有效性!");
|
|
2569
2432
|
}
|
|
2570
2433
|
};
|
|
2571
2434
|
const XhsFansExport = async (_task, params)=>{
|
|
2572
|
-
const http = new
|
|
2435
|
+
const http = new Http({
|
|
2573
2436
|
headers: {
|
|
2574
2437
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
2575
2438
|
referer: "https://creator.xiaohongshu.com/new/home?source=official"
|
|
@@ -2580,19 +2443,19 @@ const XhsFansExport = async (_task, params)=>{
|
|
|
2580
2443
|
method: "get",
|
|
2581
2444
|
url: "https://creator.xiaohongshu.com/api/galaxy/creator/home/personal_info"
|
|
2582
2445
|
});
|
|
2583
|
-
return (0,
|
|
2446
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(0 === res.result ? {
|
|
2584
2447
|
fans_count: res.data.fans_count
|
|
2585
2448
|
} : {
|
|
2586
2449
|
fans_count: null
|
|
2587
2450
|
}, "获取粉丝数成功!");
|
|
2588
2451
|
} catch (error) {
|
|
2589
|
-
return (0,
|
|
2452
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)({
|
|
2590
2453
|
fans_count: null
|
|
2591
2454
|
}, "获取粉丝数失败,请检查登陆有效性!");
|
|
2592
2455
|
}
|
|
2593
2456
|
};
|
|
2594
2457
|
const WxFansExport = async (_task, params)=>{
|
|
2595
|
-
const http = new
|
|
2458
|
+
const http = new Http({
|
|
2596
2459
|
headers: {
|
|
2597
2460
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";")
|
|
2598
2461
|
}
|
|
@@ -2608,19 +2471,19 @@ const WxFansExport = async (_task, params)=>{
|
|
|
2608
2471
|
}
|
|
2609
2472
|
});
|
|
2610
2473
|
const match = htmlStr.match(/总用户数[\s\S]*?<mp-thousandth>(\d+)<\/mp-thousandth>/);
|
|
2611
|
-
return (0,
|
|
2474
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(match ? {
|
|
2612
2475
|
fans_count: Number(match[1])
|
|
2613
2476
|
} : {
|
|
2614
2477
|
fans_count: null
|
|
2615
2478
|
}, "获取粉丝数成功!");
|
|
2616
2479
|
} catch (error) {
|
|
2617
|
-
return (0,
|
|
2480
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)({
|
|
2618
2481
|
fans_count: null
|
|
2619
2482
|
}, "获取粉丝数失败,请检查登陆有效性!");
|
|
2620
2483
|
}
|
|
2621
2484
|
};
|
|
2622
2485
|
const BjhFansExport = async (_task, params)=>{
|
|
2623
|
-
const http = new
|
|
2486
|
+
const http = new Http({
|
|
2624
2487
|
headers: {
|
|
2625
2488
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
2626
2489
|
referer: "https://baijiahao.baidu.com/builder/rc/home"
|
|
@@ -2631,19 +2494,19 @@ const BjhFansExport = async (_task, params)=>{
|
|
|
2631
2494
|
method: "get",
|
|
2632
2495
|
url: "https://baijiahao.baidu.com/cms-ui/rights/growth/get_info"
|
|
2633
2496
|
});
|
|
2634
|
-
return (0,
|
|
2497
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(0 === res.errno ? {
|
|
2635
2498
|
fans_count: res.data.total_fans
|
|
2636
2499
|
} : {
|
|
2637
2500
|
fans_count: null
|
|
2638
2501
|
}, "获取粉丝数成功!");
|
|
2639
2502
|
} catch (error) {
|
|
2640
|
-
return (0,
|
|
2503
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)({
|
|
2641
2504
|
fans_count: null
|
|
2642
2505
|
}, "获取粉丝数失败,请检查登陆有效性!");
|
|
2643
2506
|
}
|
|
2644
2507
|
};
|
|
2645
2508
|
const TTSessionCheck = async (_task, params)=>{
|
|
2646
|
-
const http = new
|
|
2509
|
+
const http = new Http({
|
|
2647
2510
|
headers: {
|
|
2648
2511
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
2649
2512
|
referer: "https://mp.toutiao.com/profile_v4/graphic/publish"
|
|
@@ -2655,19 +2518,19 @@ const TTSessionCheck = async (_task, params)=>{
|
|
|
2655
2518
|
url: "https://mp.toutiao.com/mp/agw/creator_center/user_info",
|
|
2656
2519
|
defaultErrorMsg: `头条号登录状态失效。`
|
|
2657
2520
|
});
|
|
2658
|
-
return (0,
|
|
2521
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(0 === res.code ? {
|
|
2659
2522
|
isValidSession: true
|
|
2660
2523
|
} : {
|
|
2661
2524
|
isValidSession: false
|
|
2662
2525
|
}, "头条账号有效性检测完成!");
|
|
2663
2526
|
} catch (error) {
|
|
2664
|
-
return (0,
|
|
2527
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)({
|
|
2665
2528
|
isValidSession: false
|
|
2666
2529
|
}, "头条账号有效性检测失败!");
|
|
2667
2530
|
}
|
|
2668
2531
|
};
|
|
2669
2532
|
const WxSessionCheck = async (_task, params)=>{
|
|
2670
|
-
const http = new
|
|
2533
|
+
const http = new Http({
|
|
2671
2534
|
headers: {
|
|
2672
2535
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";")
|
|
2673
2536
|
}
|
|
@@ -2694,19 +2557,19 @@ const WxSessionCheck = async (_task, params)=>{
|
|
|
2694
2557
|
ajax: 1
|
|
2695
2558
|
}
|
|
2696
2559
|
});
|
|
2697
|
-
return (0,
|
|
2560
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(0 === res.base_resp.ret ? {
|
|
2698
2561
|
isValidSession: true
|
|
2699
2562
|
} : {
|
|
2700
2563
|
isValidSession: false
|
|
2701
2564
|
}, "微信账号有效性检测完成!");
|
|
2702
2565
|
} catch (error) {
|
|
2703
|
-
return (0,
|
|
2566
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)({
|
|
2704
2567
|
isValidSession: false
|
|
2705
2568
|
}, "微信账号有效性检测失败!");
|
|
2706
2569
|
}
|
|
2707
2570
|
};
|
|
2708
2571
|
const XhsSessionCheck = async (_task, params)=>{
|
|
2709
|
-
const http = new
|
|
2572
|
+
const http = new Http({
|
|
2710
2573
|
headers: {
|
|
2711
2574
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
2712
2575
|
referer: "https://creator.xiaohongshu.com/new/home?source=official"
|
|
@@ -2717,19 +2580,19 @@ const XhsSessionCheck = async (_task, params)=>{
|
|
|
2717
2580
|
method: "get",
|
|
2718
2581
|
url: "https://creator.xiaohongshu.com/api/galaxy/user/info"
|
|
2719
2582
|
});
|
|
2720
|
-
return (0,
|
|
2583
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(0 === res.result ? {
|
|
2721
2584
|
isValidSession: true
|
|
2722
2585
|
} : {
|
|
2723
2586
|
isValidSession: false
|
|
2724
2587
|
}, "小红书账号有效性检测完成!");
|
|
2725
2588
|
} catch (error) {
|
|
2726
|
-
return (0,
|
|
2589
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)({
|
|
2727
2590
|
isValidSession: false
|
|
2728
2591
|
}, "小红书账号有效性检测完成!");
|
|
2729
2592
|
}
|
|
2730
2593
|
};
|
|
2731
2594
|
const BjhSessionCheck = async (_task, params)=>{
|
|
2732
|
-
const http = new
|
|
2595
|
+
const http = new Http({
|
|
2733
2596
|
headers: {
|
|
2734
2597
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
2735
2598
|
referer: "https://baijiahao.baidu.com/builder/rc/home"
|
|
@@ -2741,30 +2604,34 @@ const BjhSessionCheck = async (_task, params)=>{
|
|
|
2741
2604
|
url: "https://baijiahao.baidu.com/pcui/home/index",
|
|
2742
2605
|
defaultErrorMsg: `百家号登录状态失效。`
|
|
2743
2606
|
});
|
|
2744
|
-
return (0,
|
|
2607
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(0 === res.errno ? {
|
|
2745
2608
|
isValidSession: true
|
|
2746
2609
|
} : {
|
|
2747
2610
|
isValidSession: false
|
|
2748
2611
|
}, "百家号账号有效性检测完成!");
|
|
2749
2612
|
} catch (error) {
|
|
2750
|
-
return (0,
|
|
2613
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)({
|
|
2751
2614
|
isValidSession: false
|
|
2752
2615
|
}, "百家号账号有效性检测失败!");
|
|
2753
2616
|
}
|
|
2754
2617
|
};
|
|
2755
|
-
|
|
2618
|
+
const types_errorResponse = (message, code = 500)=>({
|
|
2619
|
+
code,
|
|
2620
|
+
message,
|
|
2621
|
+
data: null
|
|
2622
|
+
});
|
|
2756
2623
|
async function getBaijiahaoData(params) {
|
|
2757
2624
|
try {
|
|
2758
2625
|
const { token } = params;
|
|
2759
|
-
if (!token) return (
|
|
2760
|
-
const http = new
|
|
2626
|
+
if (!token) return types_errorResponse("缺少token", 200);
|
|
2627
|
+
const http = new Http({
|
|
2761
2628
|
headers: {
|
|
2762
2629
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
2763
2630
|
token: String(token),
|
|
2764
2631
|
Referer: "https://baijiahao.baidu.com/builder/rc/home"
|
|
2765
2632
|
}
|
|
2766
2633
|
});
|
|
2767
|
-
const yesterday =
|
|
2634
|
+
const yesterday = TimeFormatter.format(new Date().setDate(new Date().getDate() - 1), "yyyyMMdd");
|
|
2768
2635
|
const [fansData, readData, incomeData, yesterdayData] = await Promise.all([
|
|
2769
2636
|
http.api({
|
|
2770
2637
|
method: "get",
|
|
@@ -2801,15 +2668,15 @@ async function getBaijiahaoData(params) {
|
|
|
2801
2668
|
likeNumYesterday: -1 == yesterdayData.data.data.likes_count ? null : yesterdayData.data.data.likes_count,
|
|
2802
2669
|
commentNumYesterday: -1 == yesterdayData.data.data.comment_count ? null : yesterdayData.data.data.comment_count
|
|
2803
2670
|
};
|
|
2804
|
-
return (0,
|
|
2671
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(bjhData, "百家号平台数据获取成功!");
|
|
2805
2672
|
} catch (error) {
|
|
2806
|
-
return (
|
|
2673
|
+
return types_errorResponse(error instanceof Error ? error.message : "百家号平台数据获取失败");
|
|
2807
2674
|
}
|
|
2808
2675
|
}
|
|
2809
2676
|
async function getToutiaoData(params) {
|
|
2810
2677
|
const { cookies } = params;
|
|
2811
2678
|
try {
|
|
2812
|
-
const http = new
|
|
2679
|
+
const http = new Http({
|
|
2813
2680
|
headers: {
|
|
2814
2681
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
2815
2682
|
referer: "https://mp.toutiao.com/profile_v4/graphic/publish"
|
|
@@ -2850,12 +2717,71 @@ async function getToutiaoData(params) {
|
|
|
2850
2717
|
likeNumYesterday: contentDataYesterday.author_stat.interaction_data.digg_count,
|
|
2851
2718
|
commentNumYesterday: contentDataYesterday.author_stat.interaction_data.comment_count
|
|
2852
2719
|
};
|
|
2853
|
-
return (0,
|
|
2720
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(ttData, "头条号粉丝数据获取成功!");
|
|
2854
2721
|
} catch (error) {
|
|
2855
|
-
return (
|
|
2722
|
+
return types_errorResponse(error instanceof Error ? error.message : "头条号数据获取失败");
|
|
2723
|
+
}
|
|
2724
|
+
}
|
|
2725
|
+
async function getWeixinData(params) {
|
|
2726
|
+
const { token } = params;
|
|
2727
|
+
if (!token) return {
|
|
2728
|
+
code: 200,
|
|
2729
|
+
message: "缺少token",
|
|
2730
|
+
data: null
|
|
2731
|
+
};
|
|
2732
|
+
try {
|
|
2733
|
+
const { token } = params;
|
|
2734
|
+
if (!token) return types_errorResponse("缺少token", 200);
|
|
2735
|
+
const http = new Http({
|
|
2736
|
+
headers: {
|
|
2737
|
+
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";")
|
|
2738
|
+
}
|
|
2739
|
+
});
|
|
2740
|
+
const userInfo = {
|
|
2741
|
+
originalCount: 0,
|
|
2742
|
+
totalUsers: 0,
|
|
2743
|
+
userIncrease: 0,
|
|
2744
|
+
yesterday: {
|
|
2745
|
+
read: 0,
|
|
2746
|
+
share: 0,
|
|
2747
|
+
subscribe: 0
|
|
2748
|
+
}
|
|
2749
|
+
};
|
|
2750
|
+
const userInfoHtml = await http.api({
|
|
2751
|
+
method: "get",
|
|
2752
|
+
url: "https://mp.weixin.qq.com/cgi-bin/home",
|
|
2753
|
+
params: {
|
|
2754
|
+
t: "home/index",
|
|
2755
|
+
token,
|
|
2756
|
+
lang: "zh_CN"
|
|
2757
|
+
}
|
|
2758
|
+
});
|
|
2759
|
+
const originalMatch = userInfoHtml.trim().match(/原创内容[\s\S]*?<mp-thousandth[^>]*>([\d,]+)<\/mp-thousandth>/i);
|
|
2760
|
+
if (originalMatch) userInfo.originalCount = parseInt(originalMatch[1].replace(/,/g, ''), 10);
|
|
2761
|
+
const totalUsersMatch = userInfoHtml.match(/总用户数[\s\S]*?<div[^>]*class=["']weui-desktop-user_sum["'][^>]*>[\s\S]*?<mp-thousandth[^>]*>([\d,]+)<\/mp-thousandth>/i);
|
|
2762
|
+
if (totalUsersMatch) userInfo.totalUsers = parseInt(totalUsersMatch[1].replace(/,/g, ''), 10);
|
|
2763
|
+
const increaseMatch = userInfoHtml.match(/weui-desktop-user_increase_num[^>]*>\s*([+-]?)\s*<mp-thousandth[^>]*>([\d,]+)<\/mp-thousandth>/i);
|
|
2764
|
+
if (increaseMatch) {
|
|
2765
|
+
const sign = '-' === increaseMatch[1] ? -1 : 1;
|
|
2766
|
+
userInfo.userIncrease = sign * parseInt(increaseMatch[2].replace(/,/g, ''), 10);
|
|
2767
|
+
}
|
|
2768
|
+
const readMatch = userInfoHtml.match(/昨日阅读[\s\S]*?<mp-thousandth[^>]*>([\d,]+)<\/mp-thousandth>/i);
|
|
2769
|
+
if (readMatch) userInfo.yesterday.read = parseInt(readMatch[1].replace(/,/g, ''), 10);
|
|
2770
|
+
const shareMatch = userInfoHtml.match(/昨日分享[\s\S]*?<mp-thousandth[^>]*>([\d,]+)<\/mp-thousandth>/i);
|
|
2771
|
+
if (shareMatch) userInfo.yesterday.share = parseInt(shareMatch[1].replace(/,/g, ''), 10);
|
|
2772
|
+
const subscribeMatch = userInfoHtml.match(/昨日新增关注[\s\S]*?<mp-thousandth[^>]*>([\d,]+)<\/mp-thousandth>/i);
|
|
2773
|
+
if (subscribeMatch) userInfo.yesterday.subscribe = parseInt(subscribeMatch[1].replace(/,/g, ''), 10);
|
|
2774
|
+
const wxData = {
|
|
2775
|
+
fansNum: userInfo.totalUsers,
|
|
2776
|
+
fansNumYesterday: userInfo.yesterday.subscribe,
|
|
2777
|
+
readNumYesterday: userInfo.yesterday.read,
|
|
2778
|
+
shareNumYesterday: userInfo.yesterday.share
|
|
2779
|
+
};
|
|
2780
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(wxData, "微信平台数据获取成功!");
|
|
2781
|
+
} catch (error) {
|
|
2782
|
+
return types_errorResponse(error instanceof Error ? error.message : "微信平台数据获取失败");
|
|
2856
2783
|
}
|
|
2857
2784
|
}
|
|
2858
|
-
var getWxInfo = __webpack_require__("./src/actions/searchAccountInfo/getWxInfo.ts");
|
|
2859
2785
|
class XsEncrypt {
|
|
2860
2786
|
async encryptMD5(url) {
|
|
2861
2787
|
return __WEBPACK_EXTERNAL_MODULE_node_crypto_9ba42079__["default"].createHash("md5").update(url, "utf8").digest("hex");
|
|
@@ -2909,8 +2835,8 @@ class XsEncrypt {
|
|
|
2909
2835
|
async function getXiaohongshuData(params) {
|
|
2910
2836
|
try {
|
|
2911
2837
|
const a1Cookie = params.cookies.find((it)=>"a1" === it.name)?.value;
|
|
2912
|
-
if (!a1Cookie) return (
|
|
2913
|
-
const http = new
|
|
2838
|
+
if (!a1Cookie) return types_errorResponse("账号数据异常,请重新绑定账号后重试。", 200);
|
|
2839
|
+
const http = new Http({
|
|
2914
2840
|
headers: {
|
|
2915
2841
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
2916
2842
|
referer: "https://creator.xiaohongshu.com",
|
|
@@ -2946,9 +2872,9 @@ async function getXiaohongshuData(params) {
|
|
|
2946
2872
|
fansNumLastWeek: sevenData.data.seven.rise_fans_count,
|
|
2947
2873
|
fansNumYesterday: sevenData.data.seven.rise_fans_list[0].count
|
|
2948
2874
|
};
|
|
2949
|
-
return (0,
|
|
2875
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(xhsData, "小红书平台数据获取成功!");
|
|
2950
2876
|
} catch (error) {
|
|
2951
|
-
return (
|
|
2877
|
+
return types_errorResponse(error instanceof Error ? error.message : "小红书平台数据获取失败");
|
|
2952
2878
|
}
|
|
2953
2879
|
}
|
|
2954
2880
|
const SearchAccountInfo = async (_task, params)=>{
|
|
@@ -2959,14 +2885,14 @@ const SearchAccountInfo = async (_task, params)=>{
|
|
|
2959
2885
|
case "xiaohongshu":
|
|
2960
2886
|
return getXiaohongshuData(params);
|
|
2961
2887
|
case "weixin":
|
|
2962
|
-
return (
|
|
2888
|
+
return getWeixinData(params);
|
|
2963
2889
|
case "baijiahao":
|
|
2964
2890
|
return getBaijiahaoData(params);
|
|
2965
2891
|
default:
|
|
2966
|
-
return (0,
|
|
2892
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(null, "暂不支持该平台");
|
|
2967
2893
|
}
|
|
2968
2894
|
};
|
|
2969
|
-
const
|
|
2895
|
+
const searchPublishInfo_types_errorResponse = (message, code = 500)=>({
|
|
2970
2896
|
code,
|
|
2971
2897
|
message,
|
|
2972
2898
|
data: null
|
|
@@ -2974,7 +2900,7 @@ const errorResponse = (message, code = 500)=>({
|
|
|
2974
2900
|
async function handleToutiaoData(params) {
|
|
2975
2901
|
try {
|
|
2976
2902
|
const { cookies, pageNum = 1, pageSize = 10, showOriginalData = false, onlySuccess = false } = params;
|
|
2977
|
-
const http = new
|
|
2903
|
+
const http = new Http({
|
|
2978
2904
|
headers: {
|
|
2979
2905
|
cookie: cookies.map((it)=>`${it.name}=${it.value}`).join(";")
|
|
2980
2906
|
}
|
|
@@ -3021,7 +2947,7 @@ async function handleToutiaoData(params) {
|
|
|
3021
2947
|
} : {}
|
|
3022
2948
|
}));
|
|
3023
2949
|
const api_base_info_json = JSON.parse(articleInfo.api_base_info.app_extra_params);
|
|
3024
|
-
return (0,
|
|
2950
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)({
|
|
3025
2951
|
articleCell,
|
|
3026
2952
|
...onlySuccess ? {
|
|
3027
2953
|
pagination: {
|
|
@@ -3030,9 +2956,9 @@ async function handleToutiaoData(params) {
|
|
|
3030
2956
|
pageSize
|
|
3031
2957
|
}
|
|
3032
2958
|
} : null
|
|
3033
|
-
}, "
|
|
2959
|
+
}, "头条号文章文章获取成功");
|
|
3034
2960
|
} catch (error) {
|
|
3035
|
-
return
|
|
2961
|
+
return searchPublishInfo_types_errorResponse(error instanceof Error ? error.message : "头条号文章数据获取失败");
|
|
3036
2962
|
}
|
|
3037
2963
|
}
|
|
3038
2964
|
async function handleWeixinData(params) {
|
|
@@ -3043,21 +2969,57 @@ async function handleWeixinData(params) {
|
|
|
3043
2969
|
message: "缺少token",
|
|
3044
2970
|
data: null
|
|
3045
2971
|
};
|
|
3046
|
-
const http = new
|
|
2972
|
+
const http = new Http({
|
|
3047
2973
|
headers: {
|
|
3048
2974
|
cookie: cookies.map((it)=>`${it.name}=${it.value}`).join(";")
|
|
3049
2975
|
}
|
|
3050
2976
|
});
|
|
3051
2977
|
const ParsePublishPage = (body)=>{
|
|
3052
|
-
const
|
|
3053
|
-
const match = body.match(/publish_page\s*=\s*(\{[\s\S]*?\})\s*;/);
|
|
2978
|
+
const match = body.match(/publish_page\s*=\s*({[\s\S]*?});/);
|
|
3054
2979
|
if (!match) throw new Error('无法提取 publish_page 字段');
|
|
3055
|
-
|
|
3056
|
-
const
|
|
2980
|
+
let parsedData = JSON.parse(match[1]);
|
|
2981
|
+
const decodeEntities = function(str, decode = false) {
|
|
2982
|
+
const encodeMap = [
|
|
2983
|
+
"&",
|
|
2984
|
+
"&",
|
|
2985
|
+
"<",
|
|
2986
|
+
"<",
|
|
2987
|
+
">",
|
|
2988
|
+
">",
|
|
2989
|
+
" ",
|
|
2990
|
+
" ",
|
|
2991
|
+
'"',
|
|
2992
|
+
""",
|
|
2993
|
+
"'",
|
|
2994
|
+
"'"
|
|
2995
|
+
];
|
|
2996
|
+
const decodeMap = [
|
|
2997
|
+
"'",
|
|
2998
|
+
"'",
|
|
2999
|
+
""",
|
|
3000
|
+
'"',
|
|
3001
|
+
" ",
|
|
3002
|
+
" ",
|
|
3003
|
+
">",
|
|
3004
|
+
">",
|
|
3005
|
+
"<",
|
|
3006
|
+
"<",
|
|
3007
|
+
"&",
|
|
3008
|
+
"&",
|
|
3009
|
+
"<",
|
|
3010
|
+
"<",
|
|
3011
|
+
">",
|
|
3012
|
+
">"
|
|
3013
|
+
];
|
|
3014
|
+
const map = decode ? decodeMap : encodeMap;
|
|
3015
|
+
let result = str;
|
|
3016
|
+
for(let i = 0; i < map.length; i += 2)result = result.replace(new RegExp(map[i], "g"), map[i + 1]);
|
|
3017
|
+
return result;
|
|
3018
|
+
};
|
|
3057
3019
|
const finalData = {
|
|
3058
3020
|
...parsedData,
|
|
3059
3021
|
publish_list: parsedData.publish_list.map((item)=>{
|
|
3060
|
-
const decoded =
|
|
3022
|
+
const decoded = decodeEntities(item.publish_info, true);
|
|
3061
3023
|
const parsedInfo = JSON.parse(decoded);
|
|
3062
3024
|
return {
|
|
3063
3025
|
publish_type: item.publish_type,
|
|
@@ -3067,18 +3029,35 @@ async function handleWeixinData(params) {
|
|
|
3067
3029
|
};
|
|
3068
3030
|
return finalData;
|
|
3069
3031
|
};
|
|
3070
|
-
|
|
3071
|
-
|
|
3072
|
-
|
|
3073
|
-
|
|
3074
|
-
|
|
3075
|
-
|
|
3076
|
-
|
|
3077
|
-
|
|
3078
|
-
|
|
3032
|
+
async function fetchArticles(begin, pageSize, token) {
|
|
3033
|
+
return http.api({
|
|
3034
|
+
method: "get",
|
|
3035
|
+
url: 'https://mp.weixin.qq.com/cgi-bin/appmsgpublish',
|
|
3036
|
+
params: {
|
|
3037
|
+
sub: "list",
|
|
3038
|
+
begin: begin,
|
|
3039
|
+
count: pageSize,
|
|
3040
|
+
token: token,
|
|
3041
|
+
lang: "zh_CN"
|
|
3042
|
+
}
|
|
3043
|
+
});
|
|
3044
|
+
}
|
|
3045
|
+
let rawArticlesInfo = await fetchArticles(0, pageSize > 20 ? 20 : pageSize, token);
|
|
3046
|
+
let articlesInfo = ParsePublishPage(rawArticlesInfo);
|
|
3047
|
+
if (!onlySuccess && pageSize > 20) {
|
|
3048
|
+
let totalFetched = articlesInfo.publish_list.length;
|
|
3049
|
+
let nextPage = pageNum + 1;
|
|
3050
|
+
while(totalFetched < pageSize){
|
|
3051
|
+
const remaining = pageSize - totalFetched;
|
|
3052
|
+
const currentPageSize = remaining > 20 ? 20 : remaining;
|
|
3053
|
+
let _rawArticlesInfo = await fetchArticles((nextPage - 1) * 20, currentPageSize, token);
|
|
3054
|
+
let parsed = ParsePublishPage(_rawArticlesInfo);
|
|
3055
|
+
articlesInfo.publish_list = articlesInfo.publish_list.concat(parsed.publish_list);
|
|
3056
|
+
totalFetched = articlesInfo.publish_list.length;
|
|
3057
|
+
if (parsed.publish_list.length < currentPageSize) break;
|
|
3058
|
+
nextPage++;
|
|
3079
3059
|
}
|
|
3080
|
-
}
|
|
3081
|
-
const articlesInfo = ParsePublishPage(rawArticlesInfo);
|
|
3060
|
+
}
|
|
3082
3061
|
const articleCell = articlesInfo?.publish_list.map((item)=>({
|
|
3083
3062
|
title: item.publish_info.appmsg_info[0].title,
|
|
3084
3063
|
imageUrl: item.publish_info.appmsg_info[0].cover,
|
|
@@ -3092,7 +3071,7 @@ async function handleWeixinData(params) {
|
|
|
3092
3071
|
originalData: item
|
|
3093
3072
|
} : {}
|
|
3094
3073
|
}));
|
|
3095
|
-
return (0,
|
|
3074
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)({
|
|
3096
3075
|
articleCell,
|
|
3097
3076
|
...onlySuccess ? {
|
|
3098
3077
|
pagination: {
|
|
@@ -3101,9 +3080,9 @@ async function handleWeixinData(params) {
|
|
|
3101
3080
|
pageSize
|
|
3102
3081
|
}
|
|
3103
3082
|
} : null
|
|
3104
|
-
}, "
|
|
3083
|
+
}, "微信文章文章获取成功");
|
|
3105
3084
|
} catch (error) {
|
|
3106
|
-
return
|
|
3085
|
+
return searchPublishInfo_types_errorResponse(error instanceof Error ? error.message : "微信文章数据获取失败");
|
|
3107
3086
|
}
|
|
3108
3087
|
}
|
|
3109
3088
|
async function handleBaijiahaoData(params) {
|
|
@@ -3114,7 +3093,7 @@ async function handleBaijiahaoData(params) {
|
|
|
3114
3093
|
message: "缺少token",
|
|
3115
3094
|
data: null
|
|
3116
3095
|
};
|
|
3117
|
-
const http = new
|
|
3096
|
+
const http = new Http({
|
|
3118
3097
|
headers: {
|
|
3119
3098
|
cookie: cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
3120
3099
|
token: token
|
|
@@ -3167,7 +3146,7 @@ async function handleBaijiahaoData(params) {
|
|
|
3167
3146
|
originalData: item
|
|
3168
3147
|
} : {}
|
|
3169
3148
|
}));
|
|
3170
|
-
return (0,
|
|
3149
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)({
|
|
3171
3150
|
articleCell,
|
|
3172
3151
|
...onlySuccess ? {
|
|
3173
3152
|
pagination: {
|
|
@@ -3176,9 +3155,9 @@ async function handleBaijiahaoData(params) {
|
|
|
3176
3155
|
pageSize
|
|
3177
3156
|
}
|
|
3178
3157
|
} : null
|
|
3179
|
-
}, "
|
|
3158
|
+
}, "百家号文章数据获取成功");
|
|
3180
3159
|
} catch (error) {
|
|
3181
|
-
return
|
|
3160
|
+
return searchPublishInfo_types_errorResponse(error instanceof Error ? error.message : "百家号文章数据获取失败");
|
|
3182
3161
|
}
|
|
3183
3162
|
}
|
|
3184
3163
|
async function handleXiaohongshuData(params) {
|
|
@@ -3196,7 +3175,7 @@ async function handleXiaohongshuData(params) {
|
|
|
3196
3175
|
message: "小红书pageSize不可修改",
|
|
3197
3176
|
data: null
|
|
3198
3177
|
};
|
|
3199
|
-
const http = new
|
|
3178
|
+
const http = new Http({
|
|
3200
3179
|
headers: {
|
|
3201
3180
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
3202
3181
|
referer: "https://creator.xiaohongshu.com",
|
|
@@ -3249,18 +3228,18 @@ async function handleXiaohongshuData(params) {
|
|
|
3249
3228
|
originalData: item
|
|
3250
3229
|
} : {}
|
|
3251
3230
|
}));
|
|
3252
|
-
return (0,
|
|
3231
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)({
|
|
3253
3232
|
articleCell,
|
|
3254
3233
|
...onlySuccess ? {
|
|
3255
3234
|
pagination: {
|
|
3256
|
-
|
|
3235
|
+
nextPage: hasNextpage,
|
|
3257
3236
|
pageNum,
|
|
3258
3237
|
pageSize
|
|
3259
3238
|
}
|
|
3260
3239
|
} : null
|
|
3261
|
-
}, "
|
|
3240
|
+
}, "小红书文章数据获取成功");
|
|
3262
3241
|
} catch (error) {
|
|
3263
|
-
return
|
|
3242
|
+
return searchPublishInfo_types_errorResponse(error instanceof Error ? error.message : "小红书文章数据获取失败");
|
|
3264
3243
|
}
|
|
3265
3244
|
}
|
|
3266
3245
|
const FetchArticles = async (_task, params)=>{
|
|
@@ -3275,11 +3254,11 @@ const FetchArticles = async (_task, params)=>{
|
|
|
3275
3254
|
case "xiaohongshu":
|
|
3276
3255
|
return handleXiaohongshuData(params);
|
|
3277
3256
|
default:
|
|
3278
|
-
return (0,
|
|
3257
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(null, "暂不支持该平台");
|
|
3279
3258
|
}
|
|
3280
3259
|
};
|
|
3281
3260
|
const getWeixinConfig = async (_task, params)=>{
|
|
3282
|
-
const http = new
|
|
3261
|
+
const http = new Http({
|
|
3283
3262
|
headers: {
|
|
3284
3263
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";")
|
|
3285
3264
|
}
|
|
@@ -3300,11 +3279,11 @@ const getWeixinConfig = async (_task, params)=>{
|
|
|
3300
3279
|
const filtered = {
|
|
3301
3280
|
publishQuota: 0 === res.base_resp.ret ? res.quota_detail_list.filter((item)=>"kQuotaTypeMassSendNormal" === item.quota_type).map((item)=>item.quota_item_list) : []
|
|
3302
3281
|
};
|
|
3303
|
-
return (0,
|
|
3282
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(filtered, 0 === res.base_resp.ret ? "微信配置信息获取成功!" : "微信配置信息获取失败!");
|
|
3304
3283
|
};
|
|
3305
3284
|
const weitoutiaoPublish_mock_mockAction = async (task, params)=>{
|
|
3306
3285
|
const tmpCachePath = task.getTmpPath();
|
|
3307
|
-
const http = new
|
|
3286
|
+
const http = new Http({
|
|
3308
3287
|
headers: {
|
|
3309
3288
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
3310
3289
|
origin: "https://mp.toutiao.com",
|
|
@@ -3323,12 +3302,12 @@ const weitoutiaoPublish_mock_mockAction = async (task, params)=>{
|
|
|
3323
3302
|
const imageList = [];
|
|
3324
3303
|
if (params.banners && params.banners.length > 0) {
|
|
3325
3304
|
const images = await Promise.all(params.banners.map((url)=>{
|
|
3326
|
-
const fileName = (0,
|
|
3327
|
-
return (0,
|
|
3305
|
+
const fileName = (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.getFilenameFromUrl)(url);
|
|
3306
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.downloadImage)(url, __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].join(tmpCachePath, fileName));
|
|
3328
3307
|
}));
|
|
3329
3308
|
const res = await Promise.all(images.map(async (it)=>{
|
|
3330
3309
|
const formData = new __WEBPACK_EXTERNAL_MODULE_form_data_cf000082__["default"]();
|
|
3331
|
-
formData.append("image",
|
|
3310
|
+
formData.append("image", __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__["default"].createReadStream(it));
|
|
3332
3311
|
const response = await http.api({
|
|
3333
3312
|
method: "post",
|
|
3334
3313
|
url: "https://mp.toutiao.com/spice/image?upload_source=20020003&aid=1231&device_platform=web",
|
|
@@ -3371,7 +3350,7 @@ const weitoutiaoPublish_mock_mockAction = async (task, params)=>{
|
|
|
3371
3350
|
url: "https://mp.toutiao.com/mp/agw/article/wtt",
|
|
3372
3351
|
data: syncData
|
|
3373
3352
|
});
|
|
3374
|
-
return (0,
|
|
3353
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(res.data);
|
|
3375
3354
|
};
|
|
3376
3355
|
const weitoutiaoPublish_rpa_rpaAction = async (task, params)=>{
|
|
3377
3356
|
const commonCookies = {
|
|
@@ -3404,8 +3383,8 @@ const weitoutiaoPublish_rpa_rpaAction = async (task, params)=>{
|
|
|
3404
3383
|
await descInstance.fill(params.content);
|
|
3405
3384
|
if (params.banners && params.banners?.length > 0) {
|
|
3406
3385
|
const images = await Promise.all(params.banners.map((url)=>{
|
|
3407
|
-
const fileName = (0,
|
|
3408
|
-
return (0,
|
|
3386
|
+
const fileName = (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.getFilenameFromUrl)(url);
|
|
3387
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.downloadImage)(url, __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].join(tmpCachePath, fileName));
|
|
3409
3388
|
}));
|
|
3410
3389
|
const fileChooserPromise = page.waitForEvent("filechooser");
|
|
3411
3390
|
await page.locator(".toolbar .syl-toolbar-tool.weitoutiao-image-plugin").click();
|
|
@@ -3436,12 +3415,12 @@ const weitoutiaoPublish_rpa_rpaAction = async (task, params)=>{
|
|
|
3436
3415
|
await declarationFormItem.locator(`.byte-checkbox:has(input[value="${params.declaration}"])`).click();
|
|
3437
3416
|
}
|
|
3438
3417
|
await page.locator(".footer-wrap button.publish-content").click();
|
|
3439
|
-
return (0,
|
|
3418
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)("");
|
|
3440
3419
|
};
|
|
3441
3420
|
const weitoutiaoPublish = async (task, params)=>{
|
|
3442
3421
|
if ("rpa" === params.actionType) return weitoutiaoPublish_rpa_rpaAction(task, params);
|
|
3443
3422
|
if ("mockApi" === params.actionType) return weitoutiaoPublish_mock_mockAction(task, params);
|
|
3444
|
-
return (
|
|
3423
|
+
return executeAction(weitoutiaoPublish_mock_mockAction, weitoutiaoPublish_rpa_rpaAction)(task, params);
|
|
3445
3424
|
};
|
|
3446
3425
|
const scanRetryMaxCount = 30;
|
|
3447
3426
|
const QuotaType = {
|
|
@@ -3498,7 +3477,7 @@ const weixinPublish_mock_mockAction = async (task, params)=>{
|
|
|
3498
3477
|
const fingerprint = "4695500bc93ab4ce8fb2692da6564e04";
|
|
3499
3478
|
const client_time_diff = +Number("1743488763") - Math.floor(new Date().getTime() / 1000);
|
|
3500
3479
|
const tmpCachePath = task.getTmpPath();
|
|
3501
|
-
const http = new
|
|
3480
|
+
const http = new Http({
|
|
3502
3481
|
headers: {
|
|
3503
3482
|
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0",
|
|
3504
3483
|
Cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
@@ -3541,19 +3520,19 @@ const weixinPublish_mock_mockAction = async (task, params)=>{
|
|
|
3541
3520
|
const uploadImages = async (images)=>{
|
|
3542
3521
|
const cloudImages = [];
|
|
3543
3522
|
const localImages = await Promise.all(images.map((url)=>{
|
|
3544
|
-
const fileName = (0,
|
|
3545
|
-
return (0,
|
|
3523
|
+
const fileName = (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.getFilenameFromUrl)(url);
|
|
3524
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.downloadImage)(url, __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].join(tmpCachePath, fileName));
|
|
3546
3525
|
}));
|
|
3547
3526
|
for(let index = 0; index < images.length; index++){
|
|
3548
3527
|
const image = localImages[index];
|
|
3549
|
-
const fileState = (
|
|
3528
|
+
const fileState = getFileState(image);
|
|
3550
3529
|
const formData = new __WEBPACK_EXTERNAL_MODULE_form_data_cf000082__["default"]();
|
|
3551
3530
|
formData.append("id", `WU_FILE_${index + 1}`);
|
|
3552
3531
|
formData.append("name", fileState.name);
|
|
3553
3532
|
formData.append("type", fileState.type);
|
|
3554
3533
|
formData.append("lastModifiedDate", fileState.lastModifiedDate);
|
|
3555
3534
|
formData.append("size", fileState.size);
|
|
3556
|
-
formData.append("file",
|
|
3535
|
+
formData.append("file", __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__["default"].createReadStream(image));
|
|
3557
3536
|
const response = await http.api({
|
|
3558
3537
|
method: "post",
|
|
3559
3538
|
url: `https://mp.weixin.qq.com/cgi-bin/filetransfer?action=upload_material&f=json&writetype=doublewrite&token=${params.token}&lang=zh_CN`,
|
|
@@ -3564,9 +3543,9 @@ const weixinPublish_mock_mockAction = async (task, params)=>{
|
|
|
3564
3543
|
}
|
|
3565
3544
|
return cloudImages;
|
|
3566
3545
|
};
|
|
3567
|
-
const originContentImages = (
|
|
3546
|
+
const originContentImages = extractImgTag(params.content);
|
|
3568
3547
|
const targetContentImages = await uploadImages(originContentImages);
|
|
3569
|
-
const content = (
|
|
3548
|
+
const content = replaceImgSrc(params.content, (dom)=>{
|
|
3570
3549
|
if (dom.attribs.src) {
|
|
3571
3550
|
const idx = originContentImages.findIndex((it)=>it === dom.attribs.src);
|
|
3572
3551
|
dom.attribs.src = targetContentImages[idx].cdn_url;
|
|
@@ -3683,13 +3662,13 @@ const weixinPublish_mock_mockAction = async (task, params)=>{
|
|
|
3683
3662
|
defaultErrorMsg: GET_QRCODE_DEFAULT_ERROR
|
|
3684
3663
|
});
|
|
3685
3664
|
const rewardBuffer = Buffer.from(rewardbind.qrcode_base64, 'base64');
|
|
3686
|
-
const rewardFilePath =
|
|
3687
|
-
|
|
3665
|
+
const rewardFilePath = __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].join(tmpCachePath, "weixin_reward.jpg");
|
|
3666
|
+
__WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__["default"].writeFileSync(rewardFilePath, new Uint8Array(rewardBuffer));
|
|
3688
3667
|
params.safeQrcodeCallback?.(rewardFilePath);
|
|
3689
3668
|
const task_id = rewardbind.task_id;
|
|
3690
3669
|
let code = null;
|
|
3691
3670
|
for(let i = 0; i < scanRetryMaxCount; i++){
|
|
3692
|
-
await (0,
|
|
3671
|
+
await (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.sleep)(2000);
|
|
3693
3672
|
const checkScanResult = await http.api({
|
|
3694
3673
|
method: "get",
|
|
3695
3674
|
url: "https://mp.weixin.qq.com/acct/writermgr",
|
|
@@ -3950,7 +3929,7 @@ const weixinPublish_mock_mockAction = async (task, params)=>{
|
|
|
3950
3929
|
appmsgid: appMsgId
|
|
3951
3930
|
};
|
|
3952
3931
|
for(let i = 0; i < 10; i++){
|
|
3953
|
-
await (0,
|
|
3932
|
+
await (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.sleep)(1000);
|
|
3954
3933
|
const lastData = {
|
|
3955
3934
|
...copyrightStatData,
|
|
3956
3935
|
first_check: 0 === i ? 1 : 0
|
|
@@ -3958,7 +3937,7 @@ const weixinPublish_mock_mockAction = async (task, params)=>{
|
|
|
3958
3937
|
const checkCopyrightStatRes = await checkCopyrightStat(http, params, lastData);
|
|
3959
3938
|
if (checkCopyrightStatRes.open_ad_reprint_status) break;
|
|
3960
3939
|
}
|
|
3961
|
-
await (0,
|
|
3940
|
+
await (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.sleep)(300);
|
|
3962
3941
|
await http.api({
|
|
3963
3942
|
method: "post",
|
|
3964
3943
|
url: "https://mp.weixin.qq.com/cgi-bin/masssend",
|
|
@@ -3979,7 +3958,7 @@ const weixinPublish_mock_mockAction = async (task, params)=>{
|
|
|
3979
3958
|
random: Math.random().toString()
|
|
3980
3959
|
})
|
|
3981
3960
|
});
|
|
3982
|
-
await (0,
|
|
3961
|
+
await (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.sleep)(300);
|
|
3983
3962
|
await http.api({
|
|
3984
3963
|
method: "post",
|
|
3985
3964
|
url: "https://mp.weixin.qq.com/cgi-bin/masssend",
|
|
@@ -3997,7 +3976,7 @@ const weixinPublish_mock_mockAction = async (task, params)=>{
|
|
|
3997
3976
|
random: Math.random().toString()
|
|
3998
3977
|
})
|
|
3999
3978
|
});
|
|
4000
|
-
await (0,
|
|
3979
|
+
await (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.sleep)(300);
|
|
4001
3980
|
const getTicketResult = await http.api({
|
|
4002
3981
|
method: "post",
|
|
4003
3982
|
url: "https://mp.weixin.qq.com/misc/safeassistant",
|
|
@@ -4017,7 +3996,7 @@ const weixinPublish_mock_mockAction = async (task, params)=>{
|
|
|
4017
3996
|
}),
|
|
4018
3997
|
defaultErrorMsg: GET_QRCODE_DEFAULT_ERROR
|
|
4019
3998
|
});
|
|
4020
|
-
await (0,
|
|
3999
|
+
await (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.sleep)(300);
|
|
4021
4000
|
const getUuidResult = await http.api({
|
|
4022
4001
|
method: "post",
|
|
4023
4002
|
url: "https://mp.weixin.qq.com/safe/safeqrconnect",
|
|
@@ -4040,14 +4019,14 @@ const weixinPublish_mock_mockAction = async (task, params)=>{
|
|
|
4040
4019
|
}),
|
|
4041
4020
|
defaultErrorMsg: GET_QRCODE_DEFAULT_ERROR
|
|
4042
4021
|
});
|
|
4043
|
-
await (0,
|
|
4022
|
+
await (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.sleep)(1000);
|
|
4044
4023
|
if (0 !== getUuidResult.genuuid_res) return {
|
|
4045
4024
|
code: 200,
|
|
4046
4025
|
message: GET_QRCODE_DEFAULT_ERROR,
|
|
4047
4026
|
data: ""
|
|
4048
4027
|
};
|
|
4049
4028
|
const uuid = getUuidResult.uuid;
|
|
4050
|
-
await (0,
|
|
4029
|
+
await (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.sleep)(1000);
|
|
4051
4030
|
const qrcodeResult = await http.api({
|
|
4052
4031
|
method: "get",
|
|
4053
4032
|
url: "https://mp.weixin.qq.com/safe/safeqrcode",
|
|
@@ -4067,12 +4046,12 @@ const weixinPublish_mock_mockAction = async (task, params)=>{
|
|
|
4067
4046
|
responseType: "arraybuffer"
|
|
4068
4047
|
});
|
|
4069
4048
|
const qrcodeBuffer = Buffer.from(qrcodeResult);
|
|
4070
|
-
const qrcodeFilePath =
|
|
4071
|
-
|
|
4049
|
+
const qrcodeFilePath = __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].join(tmpCachePath, "weixin_qrcode.jpg");
|
|
4050
|
+
__WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__["default"].writeFileSync(qrcodeFilePath, new Uint8Array(qrcodeBuffer));
|
|
4072
4051
|
params.safeQrcodeCallback?.(qrcodeFilePath);
|
|
4073
4052
|
let code = "";
|
|
4074
4053
|
for(let i = 0; i < scanRetryMaxCount; i++){
|
|
4075
|
-
await (0,
|
|
4054
|
+
await (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.sleep)(2000);
|
|
4076
4055
|
const checkScanResult = await http.api({
|
|
4077
4056
|
method: "post",
|
|
4078
4057
|
url: "https://mp.weixin.qq.com/safe/safeuuid",
|
|
@@ -4159,7 +4138,7 @@ const weixinPublish_mock_mockAction = async (task, params)=>{
|
|
|
4159
4138
|
share_page: "1",
|
|
4160
4139
|
synctxweibo: "0",
|
|
4161
4140
|
operation_seq,
|
|
4162
|
-
req_id: (0,
|
|
4141
|
+
req_id: (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.randomString)(32),
|
|
4163
4142
|
req_time: new Date().getTime() + 1e3 * client_time_diff,
|
|
4164
4143
|
sync_version: "1",
|
|
4165
4144
|
isFreePublish: params.masssend ? "false" : "true",
|
|
@@ -4171,9 +4150,8 @@ const weixinPublish_mock_mockAction = async (task, params)=>{
|
|
|
4171
4150
|
}),
|
|
4172
4151
|
defaultErrorMsg: params.masssend ? "文章群发异常,请尝试关闭群发或稍后重试。" : "文章发布异常,请稍后重试。"
|
|
4173
4152
|
});
|
|
4174
|
-
return (0,
|
|
4153
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(appMsgId, params.settingInfo.timer ? "微信公众号文章定时发布成功。" : "微信公众号发布完成。");
|
|
4175
4154
|
};
|
|
4176
|
-
var external_axios_ = __webpack_require__("axios");
|
|
4177
4155
|
const waitQrcodeResultMaxTime = 2000 * scanRetryMaxCount;
|
|
4178
4156
|
const weixinPublish_rpa_rpaAction = async (task, params)=>{
|
|
4179
4157
|
const tmpCachePath = task.getTmpPath();
|
|
@@ -4221,8 +4199,8 @@ const weixinPublish_rpa_rpaAction = async (task, params)=>{
|
|
|
4221
4199
|
const qrcodeSrc = await reward_page.locator(".invite-qrcode").getAttribute('src');
|
|
4222
4200
|
if (qrcodeSrc) {
|
|
4223
4201
|
const rewardBuffer = Buffer.from(qrcodeSrc.replace(/^data:image\/\w+;base64,/, ''), 'base64');
|
|
4224
|
-
const rewardFilePath =
|
|
4225
|
-
|
|
4202
|
+
const rewardFilePath = __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].join(tmpCachePath, "weixin_reward.jpg");
|
|
4203
|
+
__WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__["default"].writeFileSync(rewardFilePath, new Uint8Array(rewardBuffer));
|
|
4226
4204
|
params.safeQrcodeCallback?.(rewardFilePath);
|
|
4227
4205
|
}
|
|
4228
4206
|
} catch (error) {
|
|
@@ -4289,11 +4267,11 @@ const weixinPublish_rpa_rpaAction = async (task, params)=>{
|
|
|
4289
4267
|
await page.waitForSelector("#editor_pannel", {
|
|
4290
4268
|
state: "visible"
|
|
4291
4269
|
});
|
|
4292
|
-
(
|
|
4270
|
+
PopupListener(page, '[v-transfer-dom="#vue_app"] .weui-desktop-dialog', "更新", '[v-transfer-dom="#vue_app"] .weui-desktop-icon-btn.weui-desktop-dialog__close-btn', {
|
|
4293
4271
|
checkInterval: 1000,
|
|
4294
4272
|
stopAfterClick: false
|
|
4295
4273
|
});
|
|
4296
|
-
(
|
|
4274
|
+
PopupListener(page, '[extclass="weui-desktop-dialog_simple"] .weui-desktop-dialog', "小店", '[extclass="weui-desktop-dialog_simple"] .weui-desktop-icon-btn.weui-desktop-dialog__close-btn', {
|
|
4297
4275
|
checkInterval: 1000,
|
|
4298
4276
|
stopAfterClick: true
|
|
4299
4277
|
});
|
|
@@ -4305,7 +4283,7 @@ const weixinPublish_rpa_rpaAction = async (task, params)=>{
|
|
|
4305
4283
|
await titleInstance.click();
|
|
4306
4284
|
await titleInstance.fill(params.settingInfo.wxAuthor);
|
|
4307
4285
|
}
|
|
4308
|
-
await (
|
|
4286
|
+
await copyHtmlToClipboard(page, params.content);
|
|
4309
4287
|
await page.click(".js_editor_area .ProseMirror");
|
|
4310
4288
|
await page.keyboard.press("Control+V");
|
|
4311
4289
|
await page.locator("#article_setting_area").evaluate((node)=>node.scrollIntoView());
|
|
@@ -4315,8 +4293,8 @@ const weixinPublish_rpa_rpaAction = async (task, params)=>{
|
|
|
4315
4293
|
await titleInstance.fill(params.settingInfo.wxAbstract);
|
|
4316
4294
|
}
|
|
4317
4295
|
if (params.settingInfo.wxCover) {
|
|
4318
|
-
const fileName = (0,
|
|
4319
|
-
const cover = await (0,
|
|
4296
|
+
const fileName = (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.getFilenameFromUrl)(params.settingInfo.wxCover);
|
|
4297
|
+
const cover = await (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.downloadImage)(params.settingInfo.wxCover, __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].join(tmpCachePath, fileName));
|
|
4320
4298
|
await page.locator("#article_setting_area #js_cover_area .select-cover__btn").hover();
|
|
4321
4299
|
await page.locator("#article_setting_area #js_cover_area .pop-opr__group-select-cover .pop-opr__list .pop-opr__item").filter({
|
|
4322
4300
|
hasText: "从图片库选择"
|
|
@@ -4502,7 +4480,7 @@ const weixinPublish_rpa_rpaAction = async (task, params)=>{
|
|
|
4502
4480
|
const articleId = await new Promise(async (resolve)=>{
|
|
4503
4481
|
const handleResponse = async (response)=>{
|
|
4504
4482
|
const url = response.url();
|
|
4505
|
-
const query = (
|
|
4483
|
+
const query = parseUrlQueryString(url);
|
|
4506
4484
|
if (url.includes("/cgi-bin/operate_appmsg") && query?.t === "ajax-response") {
|
|
4507
4485
|
const jsonResponse = await response.json();
|
|
4508
4486
|
page.off("response", handleResponse);
|
|
@@ -4516,15 +4494,15 @@ const weixinPublish_rpa_rpaAction = async (task, params)=>{
|
|
|
4516
4494
|
await page.locator(".mass-send .mass-send__td-setting", {
|
|
4517
4495
|
hasText: "定时发表"
|
|
4518
4496
|
}).locator(".weui-desktop-switch__box").check();
|
|
4519
|
-
let dateD = Number(
|
|
4520
|
-
let nowD = Number(
|
|
4497
|
+
let dateD = Number(TimeFormatter.format(params.settingInfo.timer, "d"));
|
|
4498
|
+
let nowD = Number(TimeFormatter.format(Date.now(), "d"));
|
|
4521
4499
|
await page.locator(".mass-send__timer .weui-desktop-form__dropdown__dt").click();
|
|
4522
4500
|
const dropMenu = page.locator(".mass-send__timer .weui-desktop-dropdown-menu").locator(".weui-desktop-dropdown__list-ele");
|
|
4523
4501
|
await dropMenu.filter({
|
|
4524
|
-
hasText: dateD == nowD ? "今天" : dateD == nowD + 1 ? "明天" :
|
|
4502
|
+
hasText: dateD == nowD ? "今天" : dateD == nowD + 1 ? "明天" : TimeFormatter.format(params.settingInfo.timer, "M月d日")
|
|
4525
4503
|
}).click();
|
|
4526
4504
|
const timeDropMenu = page.locator(".mass-send__timer .weui-desktop-picker__time:visible");
|
|
4527
|
-
await timeDropMenu.locator(".weui-desktop-form__input").fill(
|
|
4505
|
+
await timeDropMenu.locator(".weui-desktop-form__input").fill(TimeFormatter.format(params.settingInfo.timer, "hh:mm"));
|
|
4528
4506
|
await timeDropMenu.locator("i.weui-desktop-icon__time").click();
|
|
4529
4507
|
}
|
|
4530
4508
|
});
|
|
@@ -4582,13 +4560,13 @@ const weixinPublish_rpa_rpaAction = async (task, params)=>{
|
|
|
4582
4560
|
const qrcodeSrc = await page.locator(".dialog .js_wxchecks.safe_check img.qrcode.js_qrcode").first().getAttribute("src");
|
|
4583
4561
|
if (qrcodeSrc) {
|
|
4584
4562
|
const imgUrl = new URL(qrcodeSrc, page.url()).href;
|
|
4585
|
-
const response = await (0,
|
|
4563
|
+
const response = await (0, __WEBPACK_EXTERNAL_MODULE_axios__["default"])({
|
|
4586
4564
|
method: "get",
|
|
4587
4565
|
url: imgUrl,
|
|
4588
4566
|
responseType: "arraybuffer"
|
|
4589
4567
|
});
|
|
4590
|
-
const qrcodeFilePath =
|
|
4591
|
-
|
|
4568
|
+
const qrcodeFilePath = __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].join(tmpCachePath, "weixin_qrcode.jpg");
|
|
4569
|
+
__WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__["default"].writeFileSync(qrcodeFilePath, response.data);
|
|
4592
4570
|
params.safeQrcodeCallback?.(qrcodeFilePath);
|
|
4593
4571
|
} else throw new Error("qrcodeSrc is empty");
|
|
4594
4572
|
});
|
|
@@ -4602,15 +4580,15 @@ const weixinPublish_rpa_rpaAction = async (task, params)=>{
|
|
|
4602
4580
|
}
|
|
4603
4581
|
await page.waitForTimeout(3000);
|
|
4604
4582
|
await page.close();
|
|
4605
|
-
return (0,
|
|
4583
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(articleId);
|
|
4606
4584
|
};
|
|
4607
4585
|
const weixinPublish = async (task, _params)=>{
|
|
4608
|
-
const params = (
|
|
4586
|
+
const params = defaultParams(_params, {
|
|
4609
4587
|
masssend: true
|
|
4610
4588
|
});
|
|
4611
4589
|
if ("rpa" === params.actionType) return weixinPublish_rpa_rpaAction(task, params);
|
|
4612
4590
|
if ("mockApi" === params.actionType) return weixinPublish_mock_mockAction(task, params);
|
|
4613
|
-
return (
|
|
4591
|
+
return executeAction(weixinPublish_mock_mockAction, weixinPublish_rpa_rpaAction)(task, params);
|
|
4614
4592
|
};
|
|
4615
4593
|
const saveDraft = (http, params, data)=>{
|
|
4616
4594
|
const formData = new __WEBPACK_EXTERNAL_MODULE_form_data_cf000082__["default"]();
|
|
@@ -4630,7 +4608,7 @@ const saveDraft = (http, params, data)=>{
|
|
|
4630
4608
|
};
|
|
4631
4609
|
const weixinmpPublish_mock_mockAction = async (task, params)=>{
|
|
4632
4610
|
const tmpCachePath = task.getTmpPath();
|
|
4633
|
-
const http = new
|
|
4611
|
+
const http = new Http({
|
|
4634
4612
|
headers: {
|
|
4635
4613
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
4636
4614
|
origin: "https://mp.weixin.qq.com",
|
|
@@ -4641,19 +4619,19 @@ const weixinmpPublish_mock_mockAction = async (task, params)=>{
|
|
|
4641
4619
|
const cropResult = {};
|
|
4642
4620
|
if (params.banners && params.banners.length > 0) {
|
|
4643
4621
|
const images = await Promise.all(params.banners.map((url)=>{
|
|
4644
|
-
const fileName = (0,
|
|
4645
|
-
return (0,
|
|
4622
|
+
const fileName = (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.getFilenameFromUrl)(url);
|
|
4623
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.downloadImage)(url, __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].join(tmpCachePath, fileName));
|
|
4646
4624
|
}));
|
|
4647
4625
|
for(let index = 0; index < images.length; index++){
|
|
4648
4626
|
const image = images[index];
|
|
4649
|
-
const fileState = (
|
|
4627
|
+
const fileState = getFileState(image);
|
|
4650
4628
|
const formData = new __WEBPACK_EXTERNAL_MODULE_form_data_cf000082__["default"]();
|
|
4651
4629
|
formData.append("id", `WU_FILE_${index + 1}`);
|
|
4652
4630
|
formData.append("name", fileState.name);
|
|
4653
4631
|
formData.append("type", fileState.type);
|
|
4654
4632
|
formData.append("lastModifiedDate", fileState.lastModifiedDate);
|
|
4655
4633
|
formData.append("size", fileState.size);
|
|
4656
|
-
formData.append("file",
|
|
4634
|
+
formData.append("file", __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__["default"].createReadStream(image));
|
|
4657
4635
|
const response = await http.api({
|
|
4658
4636
|
method: "post",
|
|
4659
4637
|
url: `https://mp.weixin.qq.com/cgi-bin/filetransfer?action=upload_material&f=json&writetype=doublewrite&token=${params.token}&lang=zh_CN`,
|
|
@@ -4701,7 +4679,7 @@ const weixinmpPublish_mock_mockAction = async (task, params)=>{
|
|
|
4701
4679
|
];
|
|
4702
4680
|
cropFormData.append("size_count", cropRatios.length);
|
|
4703
4681
|
const cropCoordinates = cropRatios.map((r, idx)=>{
|
|
4704
|
-
const cropCoordinate = (
|
|
4682
|
+
const cropCoordinate = calculateCropCoordinates(colorResponseData.width, colorResponseData.height, r);
|
|
4705
4683
|
cropFormData.append(`size${idx}_x1`, cropCoordinate.x1);
|
|
4706
4684
|
cropFormData.append(`size${idx}_y1`, cropCoordinate.y1);
|
|
4707
4685
|
cropFormData.append(`size${idx}_x2`, cropCoordinate.x2);
|
|
@@ -4754,7 +4732,7 @@ const weixinmpPublish_mock_mockAction = async (task, params)=>{
|
|
|
4754
4732
|
content0: params.content,
|
|
4755
4733
|
share_imageinfo0: JSON.stringify(shareImageInfos)
|
|
4756
4734
|
});
|
|
4757
|
-
return (0,
|
|
4735
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(res);
|
|
4758
4736
|
};
|
|
4759
4737
|
const sourceText = {
|
|
4760
4738
|
ai: "内容由AI生成",
|
|
@@ -4791,8 +4769,8 @@ const weixinmpPublish_rpa_rpaAction = async (task, params)=>{
|
|
|
4791
4769
|
const container = page.locator("#editor_pannel");
|
|
4792
4770
|
if (params.banners && params.banners.length > 0) {
|
|
4793
4771
|
const images = await Promise.all(params.banners.map((url)=>{
|
|
4794
|
-
const fileName = (0,
|
|
4795
|
-
return (0,
|
|
4772
|
+
const fileName = (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.getFilenameFromUrl)(url);
|
|
4773
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.downloadImage)(url, __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].join(tmpCachePath, fileName));
|
|
4796
4774
|
}));
|
|
4797
4775
|
const fileChooserPromise = page.waitForEvent("filechooser");
|
|
4798
4776
|
await container.locator(".image-selector__add").hover();
|
|
@@ -4817,12 +4795,12 @@ const weixinmpPublish_rpa_rpaAction = async (task, params)=>{
|
|
|
4817
4795
|
if (params.banners && params.banners.length > 0) await page.waitForSelector("#editor_pannel .image-selector .image-selector__preview");
|
|
4818
4796
|
if (params.draft) await container.locator("#bottom_main #js_submit button").click();
|
|
4819
4797
|
else await container.locator("#bottom_main #js_send button").click();
|
|
4820
|
-
return (0,
|
|
4798
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)("");
|
|
4821
4799
|
};
|
|
4822
4800
|
const weixinmpPublish = async (task, params)=>{
|
|
4823
4801
|
if ("rpa" === params.actionType) return weixinmpPublish_rpa_rpaAction(task, params);
|
|
4824
4802
|
if ("mockApi" === params.actionType) return weixinmpPublish_mock_mockAction(task, params);
|
|
4825
|
-
return (
|
|
4803
|
+
return executeAction(weixinmpPublish_mock_mockAction, weixinmpPublish_rpa_rpaAction)(task, params);
|
|
4826
4804
|
};
|
|
4827
4805
|
const xiaohongshuPublish_mock_errnoMap = {
|
|
4828
4806
|
915: "所属C端账号手机号被修改,请重新登录",
|
|
@@ -4839,7 +4817,7 @@ const xiaohongshuPublish_mock_mockAction = async (task, params)=>{
|
|
|
4839
4817
|
message: "账号数据异常,请重新绑定账号后重试。",
|
|
4840
4818
|
data: ""
|
|
4841
4819
|
};
|
|
4842
|
-
const http = new
|
|
4820
|
+
const http = new Http({
|
|
4843
4821
|
headers: {
|
|
4844
4822
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
4845
4823
|
origin: "https://creator.xiaohongshu.com",
|
|
@@ -4879,10 +4857,10 @@ const xiaohongshuPublish_mock_mockAction = async (task, params)=>{
|
|
|
4879
4857
|
data: ""
|
|
4880
4858
|
};
|
|
4881
4859
|
const uploadFile = async (url, index)=>{
|
|
4882
|
-
const fileName = (0,
|
|
4883
|
-
const localUrl = await (0,
|
|
4860
|
+
const fileName = (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.getFilenameFromUrl)(url);
|
|
4861
|
+
const localUrl = await (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.downloadImage)(url, __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].join(tmpCachePath, fileName));
|
|
4884
4862
|
const ossFileId = coverIds[index];
|
|
4885
|
-
const fileBuffer =
|
|
4863
|
+
const fileBuffer = __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__["default"].readFileSync(localUrl);
|
|
4886
4864
|
await http.api({
|
|
4887
4865
|
method: "put",
|
|
4888
4866
|
url: `https://ros-upload.xiaohongshu.com/${ossFileId}`,
|
|
@@ -5017,7 +4995,7 @@ const xiaohongshuPublish_mock_mockAction = async (task, params)=>{
|
|
|
5017
4995
|
},
|
|
5018
4996
|
defaultErrorMsg: "文章发布异常,请稍后重试。"
|
|
5019
4997
|
});
|
|
5020
|
-
return (0,
|
|
4998
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(publishResult.data?.id);
|
|
5021
4999
|
};
|
|
5022
5000
|
const rpa_xsEncrypt = new XsEncrypt();
|
|
5023
5001
|
const xiaohongshuPublish_rpa_rpaAction = async (task, params)=>{
|
|
@@ -5128,8 +5106,8 @@ const xiaohongshuPublish_rpa_rpaAction = async (task, params)=>{
|
|
|
5128
5106
|
hasText: /^上传图文$/
|
|
5129
5107
|
}).click();
|
|
5130
5108
|
const images = await Promise.all(params.banners.map((url)=>{
|
|
5131
|
-
const fileName = (0,
|
|
5132
|
-
return (0,
|
|
5109
|
+
const fileName = (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.getFilenameFromUrl)(url);
|
|
5110
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.downloadImage)(url, __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].join(tmpCachePath, fileName));
|
|
5133
5111
|
}));
|
|
5134
5112
|
const fileChooserPromise = page.waitForEvent("filechooser");
|
|
5135
5113
|
await page.getByRole("textbox").click();
|
|
@@ -5227,14 +5205,14 @@ const xiaohongshuPublish_rpa_rpaAction = async (task, params)=>{
|
|
|
5227
5205
|
page.locator(".submit .publishBtn").click();
|
|
5228
5206
|
});
|
|
5229
5207
|
await page.close();
|
|
5230
|
-
return (0,
|
|
5208
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__iflyrpa_share_f7afdc8c__.success)(response);
|
|
5231
5209
|
};
|
|
5232
5210
|
const xiaohongshuPublish = async (task, params)=>{
|
|
5233
5211
|
if ("rpa" === params.actionType) return xiaohongshuPublish_rpa_rpaAction(task, params);
|
|
5234
5212
|
if ("mockApi" === params.actionType) return xiaohongshuPublish_mock_mockAction(task, params);
|
|
5235
|
-
return (
|
|
5213
|
+
return executeAction(xiaohongshuPublish_mock_mockAction, xiaohongshuPublish_rpa_rpaAction)(task, params);
|
|
5236
5214
|
};
|
|
5237
|
-
var package_namespaceObject = JSON.parse('{"i8":"1.2.14-beta.
|
|
5215
|
+
var package_namespaceObject = JSON.parse('{"i8":"1.2.14-beta.4"}');
|
|
5238
5216
|
class Action {
|
|
5239
5217
|
constructor(task){
|
|
5240
5218
|
this.task = task;
|
|
@@ -5246,11 +5224,11 @@ class Action {
|
|
|
5246
5224
|
try {
|
|
5247
5225
|
responseData = await func(this.task, params);
|
|
5248
5226
|
} catch (error) {
|
|
5249
|
-
responseData =
|
|
5227
|
+
responseData = Http.handleApiError(error);
|
|
5250
5228
|
}
|
|
5251
5229
|
if (200 === responseData.code) this.task.logger.info(`${func.name} action params error`, responseData);
|
|
5252
5230
|
else if (0 !== responseData.code) {
|
|
5253
|
-
this.task.logger.error(responseData.message || `${func.name} 执行失败`, (
|
|
5231
|
+
this.task.logger.error(responseData.message || `${func.name} 执行失败`, stringifyError(responseData.data), responseData.extra);
|
|
5254
5232
|
this.task.logger.info(`${func.name} action failed`);
|
|
5255
5233
|
} else this.task.logger.info(`${func.name} action success`);
|
|
5256
5234
|
return responseData;
|