@iflyrpa/actions 1.2.13 → 1.2.14-beta.0
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/common/FansTool/index.d.ts +3 -9
- package/dist/actions/common/sessionCheck/index.d.ts +16 -0
- package/dist/actions/getBaijiaohaoConfig/index.d.ts +1 -0
- package/dist/actions/getWeixinConfig/index.d.ts +16 -0
- package/dist/actions/searchAccountInfo/index.d.ts +46 -0
- package/dist/actions/searchPublishInfo/index.d.ts +56 -0
- package/dist/bundle.js +13163 -12429
- package/dist/bundle.js.map +1 -1
- package/dist/index.d.ts +15 -6
- package/dist/index.js +1176 -453
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1185 -457
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,4 +1,519 @@
|
|
|
1
1
|
var __webpack_modules__ = {
|
|
2
|
+
"./src/actions/searchAccountInfo/index.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
3
|
+
"use strict";
|
|
4
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
5
|
+
A: ()=>SearchAccountInfo
|
|
6
|
+
});
|
|
7
|
+
var _iflyrpa_share__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("@iflyrpa/share");
|
|
8
|
+
var _iflyrpa_share__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(_iflyrpa_share__WEBPACK_IMPORTED_MODULE_0__);
|
|
9
|
+
var _utils_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/utils/index.ts");
|
|
10
|
+
var _utils_http__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/utils/http.ts");
|
|
11
|
+
var _utils_xhsXsEncrypt__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/utils/xhsXsEncrypt.ts");
|
|
12
|
+
const errorResponse = (message, code = 500)=>({
|
|
13
|
+
code,
|
|
14
|
+
message,
|
|
15
|
+
data: null
|
|
16
|
+
});
|
|
17
|
+
async function getToutiaoData(params) {
|
|
18
|
+
try {
|
|
19
|
+
const http = new _utils_http__WEBPACK_IMPORTED_MODULE_2__.e({
|
|
20
|
+
headers: {
|
|
21
|
+
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
22
|
+
referer: "https://mp.toutiao.com/profile_v4/graphic/publish"
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
const [totalData, fansDataYesterday, contentDataYesterday] = await Promise.all([
|
|
26
|
+
http.api({
|
|
27
|
+
method: "get",
|
|
28
|
+
url: "https://mp.toutiao.com/mp/fe_api/home/merge_v2",
|
|
29
|
+
params: {
|
|
30
|
+
app_id: 1231
|
|
31
|
+
}
|
|
32
|
+
}),
|
|
33
|
+
http.api({
|
|
34
|
+
method: "get",
|
|
35
|
+
url: "https://mp.toutiao.com/mp/agw/statistic/v2/fans/latest_stat",
|
|
36
|
+
params: {
|
|
37
|
+
app_id: 1231
|
|
38
|
+
}
|
|
39
|
+
}),
|
|
40
|
+
http.api({
|
|
41
|
+
method: "get",
|
|
42
|
+
url: "https://mp.toutiao.com/mp/agw/statistic/v2/content_stat",
|
|
43
|
+
params: {
|
|
44
|
+
type: 0,
|
|
45
|
+
app_id: 1231
|
|
46
|
+
}
|
|
47
|
+
})
|
|
48
|
+
]);
|
|
49
|
+
const ttData = {
|
|
50
|
+
fansNum: Number(totalData.data.statistic.data.total_subscribe_count),
|
|
51
|
+
fansNumYesterday: fansDataYesterday.fans_stat.change_count,
|
|
52
|
+
readNum: Number(totalData.data.statistic.data.total_read_play_count),
|
|
53
|
+
incomeNum: totalData.data.statistic.data.total_income,
|
|
54
|
+
incomeNumYesterday: totalData.data.statistic.data.yesterday_income,
|
|
55
|
+
showNumYesterday: contentDataYesterday.author_stat.consume_data.impression_count,
|
|
56
|
+
readNumYesterday: contentDataYesterday.author_stat.consume_data.go_detail_count,
|
|
57
|
+
likeNumYesterday: contentDataYesterday.author_stat.interaction_data.digg_count,
|
|
58
|
+
commentNumYesterday: contentDataYesterday.author_stat.interaction_data.comment_count
|
|
59
|
+
};
|
|
60
|
+
return (0, _iflyrpa_share__WEBPACK_IMPORTED_MODULE_0__.success)(ttData, "头条号粉丝数据获取成功!");
|
|
61
|
+
} catch (error) {
|
|
62
|
+
return errorResponse(error instanceof Error ? error.message : "头条号数据获取失败");
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
async function getXiaohongshuData(params) {
|
|
66
|
+
try {
|
|
67
|
+
const a1Cookie = params.cookies.find((it)=>"a1" === it.name)?.value;
|
|
68
|
+
if (!a1Cookie) return errorResponse("账号数据异常,请重新绑定账号后重试。", 200);
|
|
69
|
+
const http = new _utils_http__WEBPACK_IMPORTED_MODULE_2__.e({
|
|
70
|
+
headers: {
|
|
71
|
+
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
72
|
+
referer: "https://creator.xiaohongshu.com",
|
|
73
|
+
origin: "https://creator.xiaohongshu.com"
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
const xsEncrypt = new _utils_xhsXsEncrypt__WEBPACK_IMPORTED_MODULE_3__.H();
|
|
77
|
+
const xt = Date.now().toString();
|
|
78
|
+
const sevenDataUrl = "/api/galaxy/v2/creator/datacenter/account/base";
|
|
79
|
+
const xs = await xsEncrypt.encryptXs(sevenDataUrl, a1Cookie, xt);
|
|
80
|
+
const [overAllData, sevenData] = await Promise.all([
|
|
81
|
+
http.api({
|
|
82
|
+
method: "get",
|
|
83
|
+
url: "https://creator.xiaohongshu.com/api/galaxy/creator/home/personal_info"
|
|
84
|
+
}),
|
|
85
|
+
http.api({
|
|
86
|
+
method: "get",
|
|
87
|
+
baseURL: "https://creator.xiaohongshu.com",
|
|
88
|
+
url: sevenDataUrl,
|
|
89
|
+
headers: {
|
|
90
|
+
"x-s": xs,
|
|
91
|
+
"x-t": xt
|
|
92
|
+
}
|
|
93
|
+
})
|
|
94
|
+
]);
|
|
95
|
+
const xhsData = {
|
|
96
|
+
fansNum: overAllData.data.fans_count,
|
|
97
|
+
favedNum: overAllData.data.faved_count,
|
|
98
|
+
watchNumLastWeek: sevenData.data.seven.view_count,
|
|
99
|
+
likeNumLastWeek: sevenData.data.seven.like_count,
|
|
100
|
+
collectNumLastWeek: sevenData.data.seven.collect_count,
|
|
101
|
+
commentNumLastWeek: sevenData.data.seven.comment_count,
|
|
102
|
+
fansNumLastWeek: sevenData.data.seven.rise_fans_count,
|
|
103
|
+
fansNumYesterday: sevenData.data.seven.rise_fans_list[0].count
|
|
104
|
+
};
|
|
105
|
+
return (0, _iflyrpa_share__WEBPACK_IMPORTED_MODULE_0__.success)(xhsData, "小红书粉丝数据获取成功!");
|
|
106
|
+
} catch (error) {
|
|
107
|
+
return errorResponse(error instanceof Error ? error.message : "小红书数据获取失败");
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
async function getWeixinData(params) {
|
|
111
|
+
try {
|
|
112
|
+
const { token } = params;
|
|
113
|
+
if (!token) return errorResponse("缺少token", 200);
|
|
114
|
+
const http = new _utils_http__WEBPACK_IMPORTED_MODULE_2__.e({
|
|
115
|
+
headers: {
|
|
116
|
+
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";")
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
const massRandomIDHtml = await http.api({
|
|
120
|
+
method: "get",
|
|
121
|
+
url: "https://mp.weixin.qq.com/misc/appmsganalysis?action=report&token=1900237878&lang=zh_CN",
|
|
122
|
+
params: {
|
|
123
|
+
token,
|
|
124
|
+
lang: "zh_CN",
|
|
125
|
+
action: "report"
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
const massRandomIDReg = massRandomIDHtml.match(/mass_all\.([a-z0-9]+)\.js/);
|
|
129
|
+
const massRandomID = massRandomIDReg ? massRandomIDReg[1] : "";
|
|
130
|
+
const [readInfo, fansInfoHtml] = await Promise.all([
|
|
131
|
+
http.api({
|
|
132
|
+
method: "get",
|
|
133
|
+
url: `https://res.wx.qq.com/mpres/zh_CN/htmledition/pages/statistics/mass_all/mass_all.${massRandomID}.js`
|
|
134
|
+
}),
|
|
135
|
+
http.api({
|
|
136
|
+
method: "get",
|
|
137
|
+
url: "https://mp.weixin.qq.com/misc/useranalysis",
|
|
138
|
+
params: {
|
|
139
|
+
token,
|
|
140
|
+
lang: "zh_CN"
|
|
141
|
+
}
|
|
142
|
+
})
|
|
143
|
+
]);
|
|
144
|
+
const regex = /(readAllList|shareAllList|completeAllList):\s*(\[[^\]]+\])/g;
|
|
145
|
+
let match;
|
|
146
|
+
const arrays = {};
|
|
147
|
+
while(null !== (match = regex.exec(readInfo)))arrays[match[1]] = JSON.parse(match[2]);
|
|
148
|
+
const readAllList = arrays.readAllList || [];
|
|
149
|
+
const shareAllList = arrays.shareAllList || [];
|
|
150
|
+
const fansInfoReg = fansInfoHtml.match(/window\.CGI_DATA\['pages\/statistics\/user_statistics'\]\s*=\s*(\{[\s\S]*?\});/);
|
|
151
|
+
if (!fansInfoReg) return errorResponse("未找到粉丝信息", 200);
|
|
152
|
+
const fansInfo = eval("(" + fansInfoReg[1] + ")");
|
|
153
|
+
const yesterday = _utils_index__WEBPACK_IMPORTED_MODULE_1__.Tx.format(new Date().setDate(new Date().getDate() - 1), "yyyy-MM-dd");
|
|
154
|
+
const yesterdayFansInfo = fansInfo.list[0]?.list.find((item)=>item.date === yesterday);
|
|
155
|
+
if (!yesterdayFansInfo) return errorResponse("未找到粉丝数", 200);
|
|
156
|
+
const wxData = {
|
|
157
|
+
fansNum: yesterdayFansInfo.cumulate_user,
|
|
158
|
+
fansNumYesterday: yesterdayFansInfo.new_user - yesterdayFansInfo.cancel_user,
|
|
159
|
+
readNumYesterday: readAllList[0] || 0,
|
|
160
|
+
shareNumYesterday: shareAllList[0] || 0
|
|
161
|
+
};
|
|
162
|
+
return (0, _iflyrpa_share__WEBPACK_IMPORTED_MODULE_0__.success)(wxData, "微信粉丝数据获取成功!");
|
|
163
|
+
} catch (error) {
|
|
164
|
+
return errorResponse(error instanceof Error ? error.message : "微信数据获取失败");
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
async function getBaijiahaoData(params) {
|
|
168
|
+
try {
|
|
169
|
+
const { token } = params;
|
|
170
|
+
if (!token) return errorResponse("缺少token", 200);
|
|
171
|
+
const http = new _utils_http__WEBPACK_IMPORTED_MODULE_2__.e({
|
|
172
|
+
headers: {
|
|
173
|
+
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
174
|
+
token: String(token),
|
|
175
|
+
Referer: "https://baijiahao.baidu.com/builder/rc/home"
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
const yesterday = _utils_index__WEBPACK_IMPORTED_MODULE_1__.Tx.format(new Date().setDate(new Date().getDate() - 1), "yyyyMMdd");
|
|
179
|
+
const [fansData, readData, incomeData, yesterdayData] = await Promise.all([
|
|
180
|
+
http.api({
|
|
181
|
+
method: "get",
|
|
182
|
+
url: "https://baijiahao.baidu.com/pcui/home/index"
|
|
183
|
+
}),
|
|
184
|
+
http.api({
|
|
185
|
+
method: "get",
|
|
186
|
+
url: "https://baijiahao.baidu.com/author/eco/statistic/getauthorhistory"
|
|
187
|
+
}),
|
|
188
|
+
http.api({
|
|
189
|
+
method: "get",
|
|
190
|
+
url: "https://baijiahao.baidu.com/author/eco/income4/homepageincome"
|
|
191
|
+
}),
|
|
192
|
+
http.api({
|
|
193
|
+
method: "get",
|
|
194
|
+
url: `https://baijiahao.baidu.com/author/eco/statistics/appStatistic?type=all&is_yesterday=false&start_day=${yesterday}&end_day=${yesterday}&stat=0`
|
|
195
|
+
})
|
|
196
|
+
]);
|
|
197
|
+
const bjhData = {
|
|
198
|
+
fansNum: fansData.data.coreData.fansCount,
|
|
199
|
+
fansNumYesterday: yesterdayData.data.data.fans_increase,
|
|
200
|
+
readNum: readData.data.total.view_count,
|
|
201
|
+
incomeNum: incomeData.data.all_income.total_income,
|
|
202
|
+
incomeNumYesterday: incomeData.data.all_income.yesterday_income,
|
|
203
|
+
recommendNumYesterday: yesterdayData.data.data.recommend_count,
|
|
204
|
+
readNumYesterday: yesterdayData.data.data.view_count,
|
|
205
|
+
likeNumYesterday: yesterdayData.data.data.likes_count,
|
|
206
|
+
commentNumYesterday: yesterdayData.data.data.comment_count
|
|
207
|
+
};
|
|
208
|
+
return (0, _iflyrpa_share__WEBPACK_IMPORTED_MODULE_0__.success)(bjhData, "百家号粉丝数据获取成功!");
|
|
209
|
+
} catch (error) {
|
|
210
|
+
return errorResponse(error instanceof Error ? error.message : "百家号数据获取失败");
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
const SearchAccountInfo = async (_task, params)=>{
|
|
214
|
+
const { platform } = params;
|
|
215
|
+
switch(platform){
|
|
216
|
+
case "toutiao":
|
|
217
|
+
return getToutiaoData(params);
|
|
218
|
+
case "xiaohongshu":
|
|
219
|
+
return getXiaohongshuData(params);
|
|
220
|
+
case "weixin":
|
|
221
|
+
return getWeixinData(params);
|
|
222
|
+
case "baijiahao":
|
|
223
|
+
return getBaijiahaoData(params);
|
|
224
|
+
default:
|
|
225
|
+
return (0, _iflyrpa_share__WEBPACK_IMPORTED_MODULE_0__.success)(null, "暂不支持该平台");
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
},
|
|
229
|
+
"./src/utils/http.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
230
|
+
"use strict";
|
|
231
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
232
|
+
e: ()=>Http
|
|
233
|
+
});
|
|
234
|
+
var axios__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("axios");
|
|
235
|
+
var axios__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(axios__WEBPACK_IMPORTED_MODULE_0__);
|
|
236
|
+
class Http {
|
|
237
|
+
static handleApiError(error) {
|
|
238
|
+
if (error && "object" == typeof error && "code" in error && "message" in error) return error;
|
|
239
|
+
return {
|
|
240
|
+
code: 500,
|
|
241
|
+
message: "",
|
|
242
|
+
data: error
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
constructor(config){
|
|
246
|
+
this.apiClient = axios__WEBPACK_IMPORTED_MODULE_0___default().create(config);
|
|
247
|
+
}
|
|
248
|
+
addResponseInterceptor(findError) {
|
|
249
|
+
this.apiClient.interceptors.response.use((response)=>{
|
|
250
|
+
const error = findError(response);
|
|
251
|
+
if (error) return Promise.reject(Object.assign(error, {
|
|
252
|
+
extra: {
|
|
253
|
+
method: response.config.method,
|
|
254
|
+
url: response.config.url
|
|
255
|
+
}
|
|
256
|
+
}));
|
|
257
|
+
return response;
|
|
258
|
+
}, (error)=>{
|
|
259
|
+
const errorResponse = {
|
|
260
|
+
code: error.response?.status || 500,
|
|
261
|
+
message: error.message || "",
|
|
262
|
+
data: error.response?.data,
|
|
263
|
+
extra: {
|
|
264
|
+
method: error.config?.method,
|
|
265
|
+
url: error.config?.url
|
|
266
|
+
}
|
|
267
|
+
};
|
|
268
|
+
if (error.response?.data) {
|
|
269
|
+
if ("object" == typeof error.response.data) {
|
|
270
|
+
const serverError = error.response.data;
|
|
271
|
+
if (serverError.message) errorResponse.message = serverError.message;
|
|
272
|
+
errorResponse.data = serverError;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
return Promise.reject(errorResponse);
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
async api(config) {
|
|
279
|
+
try {
|
|
280
|
+
const response = await this.apiClient(config);
|
|
281
|
+
return response.data;
|
|
282
|
+
} catch (error) {
|
|
283
|
+
return Promise.reject(Http.handleApiError(error));
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
},
|
|
288
|
+
"./src/utils/index.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
289
|
+
"use strict";
|
|
290
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
291
|
+
hc: ()=>parseUrlQueryString,
|
|
292
|
+
I: ()=>replaceImgSrc,
|
|
293
|
+
E_: ()=>extractImgTag,
|
|
294
|
+
i9: ()=>getRandomInRange,
|
|
295
|
+
f8: ()=>PopupListener,
|
|
296
|
+
qN: ()=>copyHtmlToClipboard,
|
|
297
|
+
Tx: ()=>TimeFormatter,
|
|
298
|
+
Tb: ()=>defaultParams,
|
|
299
|
+
n: ()=>stringifyError,
|
|
300
|
+
H8: ()=>getFileState,
|
|
301
|
+
jo: ()=>executeAction,
|
|
302
|
+
e0: ()=>calculateCropCoordinates
|
|
303
|
+
});
|
|
304
|
+
var external_node_fs_ = __webpack_require__("node:fs");
|
|
305
|
+
var external_node_fs_default = /*#__PURE__*/ __webpack_require__.n(external_node_fs_);
|
|
306
|
+
var external_node_path_ = __webpack_require__("node:path");
|
|
307
|
+
var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_);
|
|
308
|
+
const external_dom_serializer_namespaceObject = require("dom-serializer");
|
|
309
|
+
var external_dom_serializer_default = /*#__PURE__*/ __webpack_require__.n(external_dom_serializer_namespaceObject);
|
|
310
|
+
const external_domhandler_namespaceObject = require("domhandler");
|
|
311
|
+
const external_htmlparser2_namespaceObject = require("htmlparser2");
|
|
312
|
+
const external_mime_types_namespaceObject = require("mime-types");
|
|
313
|
+
var external_mime_types_default = /*#__PURE__*/ __webpack_require__.n(external_mime_types_namespaceObject);
|
|
314
|
+
var http = __webpack_require__("./src/utils/http.ts");
|
|
315
|
+
function getRandomInRange(min, max) {
|
|
316
|
+
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
317
|
+
}
|
|
318
|
+
const getFileState = (filePath)=>{
|
|
319
|
+
const filename = external_node_path_default().basename(filePath);
|
|
320
|
+
const fileType = external_mime_types_default().lookup(filePath);
|
|
321
|
+
const stats = external_node_fs_default().statSync(filePath);
|
|
322
|
+
const fileSize = stats.size;
|
|
323
|
+
const lastModifiedDate = stats.mtime;
|
|
324
|
+
return {
|
|
325
|
+
name: filename,
|
|
326
|
+
type: fileType,
|
|
327
|
+
size: fileSize,
|
|
328
|
+
lastModifiedDate: lastModifiedDate.toString()
|
|
329
|
+
};
|
|
330
|
+
};
|
|
331
|
+
const calculateCropCoordinates = (width, height, aspectRatio)=>{
|
|
332
|
+
const targetRatio = aspectRatio[0] / aspectRatio[1];
|
|
333
|
+
let cropWidth;
|
|
334
|
+
let cropHeight;
|
|
335
|
+
if (width / height > targetRatio) {
|
|
336
|
+
cropHeight = height;
|
|
337
|
+
cropWidth = height * targetRatio;
|
|
338
|
+
} else {
|
|
339
|
+
cropWidth = width;
|
|
340
|
+
cropHeight = width / targetRatio;
|
|
341
|
+
}
|
|
342
|
+
const x1 = (width - cropWidth) / 2;
|
|
343
|
+
const y1 = (height - cropHeight) / 2;
|
|
344
|
+
const x2 = x1 + cropWidth;
|
|
345
|
+
const y2 = y1 + cropHeight;
|
|
346
|
+
return {
|
|
347
|
+
x1: x1 / width,
|
|
348
|
+
y1: y1 / height,
|
|
349
|
+
x2: x2 / width,
|
|
350
|
+
y2: y2 / height
|
|
351
|
+
};
|
|
352
|
+
};
|
|
353
|
+
const extractImgTag = (html)=>{
|
|
354
|
+
const srcList = [];
|
|
355
|
+
const parser = new external_htmlparser2_namespaceObject.Parser({
|
|
356
|
+
onopentag (name, attributes) {
|
|
357
|
+
if ("img" === name && (attributes.src.trim() || attributes.currentSrc.trim())) srcList.push(attributes.src.trim() || attributes.currentSrc.trim());
|
|
358
|
+
}
|
|
359
|
+
});
|
|
360
|
+
parser.write(html);
|
|
361
|
+
parser.end();
|
|
362
|
+
return srcList;
|
|
363
|
+
};
|
|
364
|
+
class TimeFormatter {
|
|
365
|
+
static format(timestamp, formatStr = 'yyyy-MM-dd hh:mm') {
|
|
366
|
+
if ('number' == typeof timestamp && 10 === timestamp.toString().length) timestamp *= 1000;
|
|
367
|
+
const date = new Date(timestamp);
|
|
368
|
+
const map = {
|
|
369
|
+
yyyy: String(date.getFullYear()),
|
|
370
|
+
yy: String(date.getFullYear()).slice(-2),
|
|
371
|
+
MM: String(date.getMonth() + 1).padStart(2, '0'),
|
|
372
|
+
dd: String(date.getDate()).padStart(2, '0'),
|
|
373
|
+
hh: String(date.getHours()).padStart(2, '0'),
|
|
374
|
+
mm: String(date.getMinutes()).padStart(2, '0'),
|
|
375
|
+
ss: String(date.getSeconds()).padStart(2, '0'),
|
|
376
|
+
M: String(date.getMonth() + 1),
|
|
377
|
+
d: String(date.getDate()),
|
|
378
|
+
h: String(date.getHours()),
|
|
379
|
+
m: String(date.getMinutes()),
|
|
380
|
+
s: String(date.getSeconds())
|
|
381
|
+
};
|
|
382
|
+
return formatStr.replace(/yyyy|yy|MM|dd|hh|mm|ss|M|d|h|m|s/g, (key)=>map[key]);
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
const replaceImgSrc = (html, callback)=>{
|
|
386
|
+
let lastedHtml = html;
|
|
387
|
+
const isImageTag = (node)=>"tag" === node.type && "img" === node.name;
|
|
388
|
+
const traverseDom = (node)=>{
|
|
389
|
+
if (external_htmlparser2_namespaceObject.DomUtils.hasChildren(node)) for (const child of node.children){
|
|
390
|
+
if (isImageTag(child)) callback(child);
|
|
391
|
+
traverseDom(child);
|
|
392
|
+
}
|
|
393
|
+
};
|
|
394
|
+
const handler = new external_domhandler_namespaceObject.DomHandler((error, dom)=>{
|
|
395
|
+
if (error) console.log(error);
|
|
396
|
+
else dom.forEach(traverseDom);
|
|
397
|
+
lastedHtml = external_dom_serializer_default()(dom, {
|
|
398
|
+
decodeEntities: false
|
|
399
|
+
});
|
|
400
|
+
});
|
|
401
|
+
const parser = new external_htmlparser2_namespaceObject.Parser(handler, {
|
|
402
|
+
decodeEntities: false
|
|
403
|
+
});
|
|
404
|
+
parser.write(html);
|
|
405
|
+
parser.end();
|
|
406
|
+
return lastedHtml;
|
|
407
|
+
};
|
|
408
|
+
const stringifyError = (error)=>{
|
|
409
|
+
if (error instanceof Error) return error.toString();
|
|
410
|
+
if ("object" == typeof error) return JSON.stringify(error);
|
|
411
|
+
return error;
|
|
412
|
+
};
|
|
413
|
+
const executeAction = (...actions)=>async (task, params)=>{
|
|
414
|
+
let result = {
|
|
415
|
+
code: 500,
|
|
416
|
+
message: "",
|
|
417
|
+
data: null
|
|
418
|
+
};
|
|
419
|
+
for(let index = 0; index < actions.length; index++){
|
|
420
|
+
const action = actions[index];
|
|
421
|
+
try {
|
|
422
|
+
result = await action(task, params);
|
|
423
|
+
} catch (error) {
|
|
424
|
+
result = http.e.handleApiError(error);
|
|
425
|
+
}
|
|
426
|
+
if (0 === result.code || 200 === result.code) break;
|
|
427
|
+
if (index !== actions.length - 1) task.logger.error(result.message, stringifyError(result.data), result.extra);
|
|
428
|
+
}
|
|
429
|
+
return result;
|
|
430
|
+
};
|
|
431
|
+
async function copyHtmlToClipboard(page, html, options = {
|
|
432
|
+
format: "text/html",
|
|
433
|
+
fallback: true
|
|
434
|
+
}) {
|
|
435
|
+
try {
|
|
436
|
+
await page.evaluate(async ({ htmlContent, format })=>{
|
|
437
|
+
const blob = new Blob([
|
|
438
|
+
htmlContent
|
|
439
|
+
], {
|
|
440
|
+
type: format
|
|
441
|
+
});
|
|
442
|
+
await navigator.clipboard.write([
|
|
443
|
+
new ClipboardItem({
|
|
444
|
+
[format]: blob
|
|
445
|
+
})
|
|
446
|
+
]);
|
|
447
|
+
}, {
|
|
448
|
+
htmlContent: html,
|
|
449
|
+
format: options.format
|
|
450
|
+
});
|
|
451
|
+
} catch (error) {
|
|
452
|
+
if (options.fallback) await page.evaluate((htmlContent)=>{
|
|
453
|
+
const div = document.createElement("div");
|
|
454
|
+
div.contentEditable = "true";
|
|
455
|
+
div.style.cssText = `
|
|
456
|
+
position: fixed;
|
|
457
|
+
left: -9999px;
|
|
458
|
+
opacity: 0;
|
|
459
|
+
pointer-events: none;
|
|
460
|
+
`;
|
|
461
|
+
div.innerHTML = htmlContent;
|
|
462
|
+
document.body.appendChild(div);
|
|
463
|
+
const range = document.createRange();
|
|
464
|
+
range.selectNodeContents(div);
|
|
465
|
+
const selection = window.getSelection();
|
|
466
|
+
selection.removeAllRanges();
|
|
467
|
+
selection.addRange(range);
|
|
468
|
+
document.execCommand("copy");
|
|
469
|
+
document.body.removeChild(div);
|
|
470
|
+
selection.removeAllRanges();
|
|
471
|
+
}, html);
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
function PopupListener(page, popupSelector, popKey, buttonSelector, options = {}) {
|
|
475
|
+
const { checkInterval = 1000, stopAfterClick = false } = options;
|
|
476
|
+
const popup = page.locator(popupSelector);
|
|
477
|
+
const button = page.locator(buttonSelector);
|
|
478
|
+
const intervalId = setInterval(async ()=>{
|
|
479
|
+
try {
|
|
480
|
+
if (await popup.count() > 0 && await popup.isVisible() && (await popup.textContent() || "").includes(popKey)) {
|
|
481
|
+
await button.click({
|
|
482
|
+
force: true
|
|
483
|
+
});
|
|
484
|
+
if (stopAfterClick) clearInterval(intervalId);
|
|
485
|
+
}
|
|
486
|
+
} catch (err) {}
|
|
487
|
+
}, checkInterval);
|
|
488
|
+
return ()=>{
|
|
489
|
+
clearInterval(intervalId);
|
|
490
|
+
};
|
|
491
|
+
}
|
|
492
|
+
const parseUrlQueryString = (url)=>{
|
|
493
|
+
const queryStringObject = {};
|
|
494
|
+
if (!url || !url.includes("?")) return queryStringObject;
|
|
495
|
+
const queryString = url.split("?")[1];
|
|
496
|
+
if (!queryString) return queryStringObject;
|
|
497
|
+
const queryWithoutHash = queryString.split("#")[0];
|
|
498
|
+
const queryStringArray = queryWithoutHash.split("&");
|
|
499
|
+
for (const item of queryStringArray){
|
|
500
|
+
if (!item) continue;
|
|
501
|
+
const equalIndex = item.indexOf("=");
|
|
502
|
+
if (-1 === equalIndex) queryStringObject[item] = "";
|
|
503
|
+
else {
|
|
504
|
+
const key = item.slice(0, equalIndex);
|
|
505
|
+
const value = item.slice(equalIndex + 1);
|
|
506
|
+
try {
|
|
507
|
+
queryStringObject[key] = decodeURIComponent(value);
|
|
508
|
+
} catch (e) {
|
|
509
|
+
queryStringObject[key] = value;
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
return queryStringObject;
|
|
514
|
+
};
|
|
515
|
+
const defaultParams = (params, defaults)=>Object.assign({}, defaults, params);
|
|
516
|
+
},
|
|
2
517
|
"./src/utils/ttABEncrypt.js": function(module, __unused_webpack_exports, __webpack_require__) {
|
|
3
518
|
module = __webpack_require__.nmd(module);
|
|
4
519
|
const a0_0x45db08 = a0_0x4b0d;
|
|
@@ -1080,6 +1595,81 @@ var __webpack_modules__ = {
|
|
|
1080
1595
|
return Data2A_B(Base2Data(EnvData2CharCode(_0x315138, _0x1c32b3, _0x56536b)));
|
|
1081
1596
|
}
|
|
1082
1597
|
module[a0_0x45db08(0xae)] = GenAB;
|
|
1598
|
+
},
|
|
1599
|
+
"./src/utils/xhsXsEncrypt.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
1600
|
+
"use strict";
|
|
1601
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
1602
|
+
H: ()=>XsEncrypt
|
|
1603
|
+
});
|
|
1604
|
+
const external_node_buffer_namespaceObject = require("node:buffer");
|
|
1605
|
+
const external_node_crypto_namespaceObject = require("node:crypto");
|
|
1606
|
+
var external_node_crypto_default = /*#__PURE__*/ __webpack_require__.n(external_node_crypto_namespaceObject);
|
|
1607
|
+
class XsEncrypt {
|
|
1608
|
+
async encryptMD5(url) {
|
|
1609
|
+
return external_node_crypto_default().createHash("md5").update(url, "utf8").digest("hex");
|
|
1610
|
+
}
|
|
1611
|
+
async encryptText(text) {
|
|
1612
|
+
const textEncoded = external_node_buffer_namespaceObject.Buffer.from(text).toString("base64");
|
|
1613
|
+
const cipher = external_node_crypto_default().createCipheriv("aes-128-cbc", new Uint8Array(this.keyBytes), new Uint8Array(this.iv));
|
|
1614
|
+
const ciphertext = cipher.update(textEncoded, "utf8", "base64");
|
|
1615
|
+
return ciphertext + cipher.final("base64");
|
|
1616
|
+
}
|
|
1617
|
+
async base64ToHex(encodedData) {
|
|
1618
|
+
const decodedData = external_node_buffer_namespaceObject.Buffer.from(encodedData, "base64");
|
|
1619
|
+
return decodedData.toString("hex");
|
|
1620
|
+
}
|
|
1621
|
+
async encryptPayload(payload, platform) {
|
|
1622
|
+
const hexPayload = await this.base64ToHex(payload);
|
|
1623
|
+
const obj = {
|
|
1624
|
+
signSvn: "56",
|
|
1625
|
+
signType: "x2",
|
|
1626
|
+
appID: platform,
|
|
1627
|
+
signVersion: "1",
|
|
1628
|
+
payload: hexPayload
|
|
1629
|
+
};
|
|
1630
|
+
const jsonString = JSON.stringify(obj, null, 0);
|
|
1631
|
+
return external_node_buffer_namespaceObject.Buffer.from(jsonString).toString("base64");
|
|
1632
|
+
}
|
|
1633
|
+
async encryptXs(url, a1, ts, platform = "xhs-pc-web") {
|
|
1634
|
+
const text = `x1=${await this.encryptMD5(`url=${url}`)};x2=0|0|0|1|0|0|1|0|0|0|1|0|0|0|0|1|0|0|0;x3=${a1};x4=${ts};`;
|
|
1635
|
+
return `XYW_${await this.encryptPayload(await this.encryptText(text), platform)}`;
|
|
1636
|
+
}
|
|
1637
|
+
dumps(...rest) {
|
|
1638
|
+
const [data, replacer = null, space = 0] = rest;
|
|
1639
|
+
return JSON.stringify(data, replacer, space).replace(/\n/g, "").replace(/":\s+"/g, '":"');
|
|
1640
|
+
}
|
|
1641
|
+
constructor(){
|
|
1642
|
+
this.words = [
|
|
1643
|
+
929260340,
|
|
1644
|
+
1633971297,
|
|
1645
|
+
895580464,
|
|
1646
|
+
925905270
|
|
1647
|
+
];
|
|
1648
|
+
this.keyBytes = external_node_buffer_namespaceObject.Buffer.concat(this.words.map((word)=>new Uint8Array(external_node_buffer_namespaceObject.Buffer.from([
|
|
1649
|
+
word >> 24 & 0xff,
|
|
1650
|
+
word >> 16 & 0xff,
|
|
1651
|
+
word >> 8 & 0xff,
|
|
1652
|
+
0xff & word
|
|
1653
|
+
]))));
|
|
1654
|
+
this.iv = external_node_buffer_namespaceObject.Buffer.from("4uzjr7mbsibcaldp", "utf8");
|
|
1655
|
+
}
|
|
1656
|
+
}
|
|
1657
|
+
},
|
|
1658
|
+
"@iflyrpa/share": function(module) {
|
|
1659
|
+
"use strict";
|
|
1660
|
+
module.exports = require("@iflyrpa/share");
|
|
1661
|
+
},
|
|
1662
|
+
axios: function(module) {
|
|
1663
|
+
"use strict";
|
|
1664
|
+
module.exports = require("axios");
|
|
1665
|
+
},
|
|
1666
|
+
"node:fs": function(module) {
|
|
1667
|
+
"use strict";
|
|
1668
|
+
module.exports = require("node:fs");
|
|
1669
|
+
},
|
|
1670
|
+
"node:path": function(module) {
|
|
1671
|
+
"use strict";
|
|
1672
|
+
module.exports = require("node:path");
|
|
1083
1673
|
}
|
|
1084
1674
|
};
|
|
1085
1675
|
var __webpack_module_cache__ = {};
|
|
@@ -1146,273 +1736,15 @@ var __webpack_exports__ = {};
|
|
|
1146
1736
|
version: ()=>package_namespaceObject.i8,
|
|
1147
1737
|
Action: ()=>Action
|
|
1148
1738
|
});
|
|
1149
|
-
|
|
1150
|
-
var
|
|
1151
|
-
|
|
1152
|
-
var
|
|
1153
|
-
|
|
1154
|
-
var
|
|
1155
|
-
const external_domhandler_namespaceObject = require("domhandler");
|
|
1156
|
-
const external_htmlparser2_namespaceObject = require("htmlparser2");
|
|
1157
|
-
const external_mime_types_namespaceObject = require("mime-types");
|
|
1158
|
-
var external_mime_types_default = /*#__PURE__*/ __webpack_require__.n(external_mime_types_namespaceObject);
|
|
1159
|
-
const external_axios_namespaceObject = require("axios");
|
|
1160
|
-
var external_axios_default = /*#__PURE__*/ __webpack_require__.n(external_axios_namespaceObject);
|
|
1161
|
-
class Http {
|
|
1162
|
-
static handleApiError(error) {
|
|
1163
|
-
if (error && "object" == typeof error && "code" in error && "message" in error) return error;
|
|
1164
|
-
return {
|
|
1165
|
-
code: 500,
|
|
1166
|
-
message: "",
|
|
1167
|
-
data: error
|
|
1168
|
-
};
|
|
1169
|
-
}
|
|
1170
|
-
constructor(config){
|
|
1171
|
-
this.apiClient = external_axios_default().create(config);
|
|
1172
|
-
}
|
|
1173
|
-
addResponseInterceptor(findError) {
|
|
1174
|
-
this.apiClient.interceptors.response.use((response)=>{
|
|
1175
|
-
const error = findError(response);
|
|
1176
|
-
if (error) return Promise.reject(Object.assign(error, {
|
|
1177
|
-
extra: {
|
|
1178
|
-
method: response.config.method,
|
|
1179
|
-
url: response.config.url
|
|
1180
|
-
}
|
|
1181
|
-
}));
|
|
1182
|
-
return response;
|
|
1183
|
-
}, (error)=>{
|
|
1184
|
-
const errorResponse = {
|
|
1185
|
-
code: error.response?.status || 500,
|
|
1186
|
-
message: error.message || "",
|
|
1187
|
-
data: error.response?.data,
|
|
1188
|
-
extra: {
|
|
1189
|
-
method: error.config?.method,
|
|
1190
|
-
url: error.config?.url
|
|
1191
|
-
}
|
|
1192
|
-
};
|
|
1193
|
-
if (error.response?.data) {
|
|
1194
|
-
if ("object" == typeof error.response.data) {
|
|
1195
|
-
const serverError = error.response.data;
|
|
1196
|
-
if (serverError.message) errorResponse.message = serverError.message;
|
|
1197
|
-
errorResponse.data = serverError;
|
|
1198
|
-
}
|
|
1199
|
-
}
|
|
1200
|
-
return Promise.reject(errorResponse);
|
|
1201
|
-
});
|
|
1202
|
-
}
|
|
1203
|
-
async api(config) {
|
|
1204
|
-
try {
|
|
1205
|
-
const response = await this.apiClient(config);
|
|
1206
|
-
return response.data;
|
|
1207
|
-
} catch (error) {
|
|
1208
|
-
return Promise.reject(Http.handleApiError(error));
|
|
1209
|
-
}
|
|
1210
|
-
}
|
|
1211
|
-
}
|
|
1212
|
-
function getRandomInRange(min, max) {
|
|
1213
|
-
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
1214
|
-
}
|
|
1215
|
-
const getFileState = (filePath)=>{
|
|
1216
|
-
const filename = external_node_path_default().basename(filePath);
|
|
1217
|
-
const fileType = external_mime_types_default().lookup(filePath);
|
|
1218
|
-
const stats = external_node_fs_default().statSync(filePath);
|
|
1219
|
-
const fileSize = stats.size;
|
|
1220
|
-
const lastModifiedDate = stats.mtime;
|
|
1221
|
-
return {
|
|
1222
|
-
name: filename,
|
|
1223
|
-
type: fileType,
|
|
1224
|
-
size: fileSize,
|
|
1225
|
-
lastModifiedDate: lastModifiedDate.toString()
|
|
1226
|
-
};
|
|
1227
|
-
};
|
|
1228
|
-
const calculateCropCoordinates = (width, height, aspectRatio)=>{
|
|
1229
|
-
const targetRatio = aspectRatio[0] / aspectRatio[1];
|
|
1230
|
-
let cropWidth;
|
|
1231
|
-
let cropHeight;
|
|
1232
|
-
if (width / height > targetRatio) {
|
|
1233
|
-
cropHeight = height;
|
|
1234
|
-
cropWidth = height * targetRatio;
|
|
1235
|
-
} else {
|
|
1236
|
-
cropWidth = width;
|
|
1237
|
-
cropHeight = width / targetRatio;
|
|
1238
|
-
}
|
|
1239
|
-
const x1 = (width - cropWidth) / 2;
|
|
1240
|
-
const y1 = (height - cropHeight) / 2;
|
|
1241
|
-
const x2 = x1 + cropWidth;
|
|
1242
|
-
const y2 = y1 + cropHeight;
|
|
1243
|
-
return {
|
|
1244
|
-
x1: x1 / width,
|
|
1245
|
-
y1: y1 / height,
|
|
1246
|
-
x2: x2 / width,
|
|
1247
|
-
y2: y2 / height
|
|
1248
|
-
};
|
|
1249
|
-
};
|
|
1250
|
-
const extractImgTag = (html)=>{
|
|
1251
|
-
const srcList = [];
|
|
1252
|
-
const parser = new external_htmlparser2_namespaceObject.Parser({
|
|
1253
|
-
onopentag (name, attributes) {
|
|
1254
|
-
if ("img" === name && (attributes.src.trim() || attributes.currentSrc.trim())) srcList.push(attributes.src.trim() || attributes.currentSrc.trim());
|
|
1255
|
-
}
|
|
1256
|
-
});
|
|
1257
|
-
parser.write(html);
|
|
1258
|
-
parser.end();
|
|
1259
|
-
return srcList;
|
|
1260
|
-
};
|
|
1261
|
-
class TimeFormatter {
|
|
1262
|
-
static format(timestamp, formatStr = 'yyyy-MM-dd hh:mm') {
|
|
1263
|
-
if ('number' == typeof timestamp && 10 === timestamp.toString().length) timestamp *= 1000;
|
|
1264
|
-
const date = new Date(timestamp);
|
|
1265
|
-
const map = {
|
|
1266
|
-
yyyy: String(date.getFullYear()),
|
|
1267
|
-
yy: String(date.getFullYear()).slice(-2),
|
|
1268
|
-
MM: String(date.getMonth() + 1).padStart(2, '0'),
|
|
1269
|
-
dd: String(date.getDate()).padStart(2, '0'),
|
|
1270
|
-
hh: String(date.getHours()).padStart(2, '0'),
|
|
1271
|
-
mm: String(date.getMinutes()).padStart(2, '0'),
|
|
1272
|
-
ss: String(date.getSeconds()).padStart(2, '0'),
|
|
1273
|
-
M: String(date.getMonth() + 1),
|
|
1274
|
-
d: String(date.getDate()),
|
|
1275
|
-
h: String(date.getHours()),
|
|
1276
|
-
m: String(date.getMinutes()),
|
|
1277
|
-
s: String(date.getSeconds())
|
|
1278
|
-
};
|
|
1279
|
-
return formatStr.replace(/yyyy|yy|MM|dd|hh|mm|ss|M|d|h|m|s/g, (key)=>map[key]);
|
|
1280
|
-
}
|
|
1281
|
-
}
|
|
1282
|
-
const replaceImgSrc = (html, callback)=>{
|
|
1283
|
-
let lastedHtml = html;
|
|
1284
|
-
const isImageTag = (node)=>"tag" === node.type && "img" === node.name;
|
|
1285
|
-
const traverseDom = (node)=>{
|
|
1286
|
-
if (external_htmlparser2_namespaceObject.DomUtils.hasChildren(node)) for (const child of node.children){
|
|
1287
|
-
if (isImageTag(child)) callback(child);
|
|
1288
|
-
traverseDom(child);
|
|
1289
|
-
}
|
|
1290
|
-
};
|
|
1291
|
-
const handler = new external_domhandler_namespaceObject.DomHandler((error, dom)=>{
|
|
1292
|
-
if (error) console.log(error);
|
|
1293
|
-
else dom.forEach(traverseDom);
|
|
1294
|
-
lastedHtml = external_dom_serializer_default()(dom, {
|
|
1295
|
-
decodeEntities: false
|
|
1296
|
-
});
|
|
1297
|
-
});
|
|
1298
|
-
const parser = new external_htmlparser2_namespaceObject.Parser(handler, {
|
|
1299
|
-
decodeEntities: false
|
|
1300
|
-
});
|
|
1301
|
-
parser.write(html);
|
|
1302
|
-
parser.end();
|
|
1303
|
-
return lastedHtml;
|
|
1304
|
-
};
|
|
1305
|
-
const stringifyError = (error)=>{
|
|
1306
|
-
if (error instanceof Error) return error.toString();
|
|
1307
|
-
if ("object" == typeof error) return JSON.stringify(error);
|
|
1308
|
-
return error;
|
|
1309
|
-
};
|
|
1310
|
-
const executeAction = (...actions)=>async (task, params)=>{
|
|
1311
|
-
let result = {
|
|
1312
|
-
code: 500,
|
|
1313
|
-
message: "",
|
|
1314
|
-
data: null
|
|
1315
|
-
};
|
|
1316
|
-
for(let index = 0; index < actions.length; index++){
|
|
1317
|
-
const action = actions[index];
|
|
1318
|
-
try {
|
|
1319
|
-
result = await action(task, params);
|
|
1320
|
-
} catch (error) {
|
|
1321
|
-
result = Http.handleApiError(error);
|
|
1322
|
-
}
|
|
1323
|
-
if (0 === result.code || 200 === result.code) break;
|
|
1324
|
-
if (index !== actions.length - 1) task.logger.error(result.message, stringifyError(result.data), result.extra);
|
|
1325
|
-
}
|
|
1326
|
-
return result;
|
|
1327
|
-
};
|
|
1328
|
-
async function copyHtmlToClipboard(page, html, options = {
|
|
1329
|
-
format: "text/html",
|
|
1330
|
-
fallback: true
|
|
1331
|
-
}) {
|
|
1332
|
-
try {
|
|
1333
|
-
await page.evaluate(async ({ htmlContent, format })=>{
|
|
1334
|
-
const blob = new Blob([
|
|
1335
|
-
htmlContent
|
|
1336
|
-
], {
|
|
1337
|
-
type: format
|
|
1338
|
-
});
|
|
1339
|
-
await navigator.clipboard.write([
|
|
1340
|
-
new ClipboardItem({
|
|
1341
|
-
[format]: blob
|
|
1342
|
-
})
|
|
1343
|
-
]);
|
|
1344
|
-
}, {
|
|
1345
|
-
htmlContent: html,
|
|
1346
|
-
format: options.format
|
|
1347
|
-
});
|
|
1348
|
-
} catch (error) {
|
|
1349
|
-
if (options.fallback) await page.evaluate((htmlContent)=>{
|
|
1350
|
-
const div = document.createElement("div");
|
|
1351
|
-
div.contentEditable = "true";
|
|
1352
|
-
div.style.cssText = `
|
|
1353
|
-
position: fixed;
|
|
1354
|
-
left: -9999px;
|
|
1355
|
-
opacity: 0;
|
|
1356
|
-
pointer-events: none;
|
|
1357
|
-
`;
|
|
1358
|
-
div.innerHTML = htmlContent;
|
|
1359
|
-
document.body.appendChild(div);
|
|
1360
|
-
const range = document.createRange();
|
|
1361
|
-
range.selectNodeContents(div);
|
|
1362
|
-
const selection = window.getSelection();
|
|
1363
|
-
selection.removeAllRanges();
|
|
1364
|
-
selection.addRange(range);
|
|
1365
|
-
document.execCommand("copy");
|
|
1366
|
-
document.body.removeChild(div);
|
|
1367
|
-
selection.removeAllRanges();
|
|
1368
|
-
}, html);
|
|
1369
|
-
}
|
|
1370
|
-
}
|
|
1371
|
-
function PopupListener(page, popupSelector, popKey, buttonSelector, options = {}) {
|
|
1372
|
-
const { checkInterval = 1000, stopAfterClick = false } = options;
|
|
1373
|
-
const popup = page.locator(popupSelector);
|
|
1374
|
-
const button = page.locator(buttonSelector);
|
|
1375
|
-
const intervalId = setInterval(async ()=>{
|
|
1376
|
-
try {
|
|
1377
|
-
if (await popup.count() > 0 && await popup.isVisible() && (await popup.textContent() || "").includes(popKey)) {
|
|
1378
|
-
await button.click({
|
|
1379
|
-
force: true
|
|
1380
|
-
});
|
|
1381
|
-
if (stopAfterClick) clearInterval(intervalId);
|
|
1382
|
-
}
|
|
1383
|
-
} catch (err) {}
|
|
1384
|
-
}, checkInterval);
|
|
1385
|
-
return ()=>{
|
|
1386
|
-
clearInterval(intervalId);
|
|
1387
|
-
};
|
|
1388
|
-
}
|
|
1389
|
-
const parseUrlQueryString = (url)=>{
|
|
1390
|
-
const queryStringObject = {};
|
|
1391
|
-
if (!url || !url.includes("?")) return queryStringObject;
|
|
1392
|
-
const queryString = url.split("?")[1];
|
|
1393
|
-
if (!queryString) return queryStringObject;
|
|
1394
|
-
const queryWithoutHash = queryString.split("#")[0];
|
|
1395
|
-
const queryStringArray = queryWithoutHash.split("&");
|
|
1396
|
-
for (const item of queryStringArray){
|
|
1397
|
-
if (!item) continue;
|
|
1398
|
-
const equalIndex = item.indexOf("=");
|
|
1399
|
-
if (-1 === equalIndex) queryStringObject[item] = "";
|
|
1400
|
-
else {
|
|
1401
|
-
const key = item.slice(0, equalIndex);
|
|
1402
|
-
const value = item.slice(equalIndex + 1);
|
|
1403
|
-
try {
|
|
1404
|
-
queryStringObject[key] = decodeURIComponent(value);
|
|
1405
|
-
} catch (e) {
|
|
1406
|
-
queryStringObject[key] = value;
|
|
1407
|
-
}
|
|
1408
|
-
}
|
|
1409
|
-
}
|
|
1410
|
-
return queryStringObject;
|
|
1411
|
-
};
|
|
1412
|
-
const defaultParams = (params, defaults)=>Object.assign({}, defaults, params);
|
|
1413
|
-
const share_namespaceObject = require("@iflyrpa/share");
|
|
1739
|
+
var utils = __webpack_require__("./src/utils/index.ts");
|
|
1740
|
+
var external_node_fs_ = __webpack_require__("node:fs");
|
|
1741
|
+
var external_node_fs_default = /*#__PURE__*/ __webpack_require__.n(external_node_fs_);
|
|
1742
|
+
var external_node_path_ = __webpack_require__("node:path");
|
|
1743
|
+
var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_);
|
|
1744
|
+
var share_ = __webpack_require__("@iflyrpa/share");
|
|
1414
1745
|
const external_form_data_namespaceObject = require("form-data");
|
|
1415
1746
|
var external_form_data_default = /*#__PURE__*/ __webpack_require__.n(external_form_data_namespaceObject);
|
|
1747
|
+
var utils_http = __webpack_require__("./src/utils/http.ts");
|
|
1416
1748
|
const errnoMap = {
|
|
1417
1749
|
20040706: "正文图片和封面图片推荐jpg、png格式。",
|
|
1418
1750
|
20040084: "正文图片和封面图片推荐jpg、png格式。",
|
|
@@ -1425,12 +1757,13 @@ var __webpack_exports__ = {};
|
|
|
1425
1757
|
2004005714: "网络环境异常,请检查网络后重试发布。",
|
|
1426
1758
|
401100032: "异常,请检查图片(如:格式、版权、合规性等)。",
|
|
1427
1759
|
20040034: "封面图片推荐jpg、png格式,不支持gif格式。",
|
|
1428
|
-
20040124: "服务器异常,请稍后重试!"
|
|
1760
|
+
20040124: "服务器异常,请稍后重试!",
|
|
1761
|
+
20040001: "当前用户未登录,请登陆后重试!"
|
|
1429
1762
|
};
|
|
1430
1763
|
const mockAction = async (task, params)=>{
|
|
1431
1764
|
const { baijiahaoSingleCover, baijiahaoMultCover, baijiahaoCoverType } = params.settingInfo;
|
|
1432
1765
|
const tmpCachePath = task.getTmpPath();
|
|
1433
|
-
const http = new
|
|
1766
|
+
const http = new utils_http.e({
|
|
1434
1767
|
headers: {
|
|
1435
1768
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
1436
1769
|
token: params.token
|
|
@@ -1464,8 +1797,8 @@ var __webpack_exports__ = {};
|
|
|
1464
1797
|
const uploadImages = async (_images)=>{
|
|
1465
1798
|
const images = _images.filter((url)=>!!url && "" !== url.trim());
|
|
1466
1799
|
return await Promise.all(images.map(async (url)=>{
|
|
1467
|
-
const fileName = (0,
|
|
1468
|
-
const image = await (0,
|
|
1800
|
+
const fileName = (0, share_.getFilenameFromUrl)(url);
|
|
1801
|
+
const image = await (0, share_.downloadImage)(url, external_node_path_default().join(tmpCachePath, fileName));
|
|
1469
1802
|
const formData = new (external_form_data_default())();
|
|
1470
1803
|
formData.append("org_file_name", fileName);
|
|
1471
1804
|
formData.append("type", "image");
|
|
@@ -1484,9 +1817,9 @@ var __webpack_exports__ = {};
|
|
|
1484
1817
|
return res.ret;
|
|
1485
1818
|
}));
|
|
1486
1819
|
};
|
|
1487
|
-
const originContentImages =
|
|
1820
|
+
const originContentImages = (0, utils.E_)(params.content);
|
|
1488
1821
|
const targetContentImages = await uploadImages(originContentImages);
|
|
1489
|
-
const content =
|
|
1822
|
+
const content = (0, utils.I)(params.content, (dom)=>{
|
|
1490
1823
|
if (dom.attribs.src) {
|
|
1491
1824
|
const idx = originContentImages.findIndex((it)=>it === dom.attribs.src);
|
|
1492
1825
|
dom.attribs.src = targetContentImages[idx].bos_url;
|
|
@@ -1561,7 +1894,7 @@ var __webpack_exports__ = {};
|
|
|
1561
1894
|
},
|
|
1562
1895
|
defaultErrorMsg: isDraft ? "文章同步出现异常,请稍后重试。" : "文章发布出现异常,请稍后重试。"
|
|
1563
1896
|
});
|
|
1564
|
-
return (0,
|
|
1897
|
+
return (0, share_.success)(res.ret.article_id, "百家号发布完成。");
|
|
1565
1898
|
};
|
|
1566
1899
|
const rpaAction = async (task, params)=>{
|
|
1567
1900
|
const tmpCachePath = task.getTmpPath();
|
|
@@ -1599,7 +1932,7 @@ var __webpack_exports__ = {};
|
|
|
1599
1932
|
const titleInstance = page.locator("#ueditor #bjhNewsTitle .input-box textarea");
|
|
1600
1933
|
await titleInstance.click();
|
|
1601
1934
|
await titleInstance.fill(params.title);
|
|
1602
|
-
await
|
|
1935
|
+
await (0, utils.qN)(page, params.content);
|
|
1603
1936
|
await page.click("#ueditor .edui-editor-iframeholder iframe");
|
|
1604
1937
|
await page.keyboard.press("Control+A");
|
|
1605
1938
|
await page.keyboard.press("Control+V");
|
|
@@ -1615,8 +1948,8 @@ var __webpack_exports__ = {};
|
|
|
1615
1948
|
const images = await Promise.all((isSingleCover ? [
|
|
1616
1949
|
params.settingInfo.baijiahaoSingleCover
|
|
1617
1950
|
] : params.settingInfo.baijiahaoMultCover).map((url)=>{
|
|
1618
|
-
const fileName = (0,
|
|
1619
|
-
return (0,
|
|
1951
|
+
const fileName = (0, share_.getFilenameFromUrl)(url);
|
|
1952
|
+
return (0, share_.downloadImage)(url, external_node_path_default().join(tmpCachePath, fileName));
|
|
1620
1953
|
}));
|
|
1621
1954
|
const coverSelector = page.locator(".cheetah-form-item-control .edit-cover-container .cover-list .DraggableTags-tag-drag .coverUploaderView");
|
|
1622
1955
|
const coverCount = await coverSelector.count();
|
|
@@ -1699,7 +2032,7 @@ var __webpack_exports__ = {};
|
|
|
1699
2032
|
hasText: "日"
|
|
1700
2033
|
}).click();
|
|
1701
2034
|
await page.locator('#select-date_list + * .cheetah-select-item-option', {
|
|
1702
|
-
hasText:
|
|
2035
|
+
hasText: utils.Tx.format(params.settingInfo.timer, "M月dd日")
|
|
1703
2036
|
}).click();
|
|
1704
2037
|
await page.waitForTimeout(200);
|
|
1705
2038
|
await page.locator(".timepublish-wrap-select .select-wrap", {
|
|
@@ -1720,7 +2053,7 @@ var __webpack_exports__ = {};
|
|
|
1720
2053
|
let fistHourElemH = Number(fistHourElem?.split("点")[0]);
|
|
1721
2054
|
const lastHourElem = scrollHourInfo.elementItem[scrollHourInfo.elementItem.length - 1];
|
|
1722
2055
|
let lastHourElemH = Number(lastHourElem?.split("点")[0]);
|
|
1723
|
-
let targetTimeH = Number(
|
|
2056
|
+
let targetTimeH = Number(utils.Tx.format(params.settingInfo.timer, 'h'));
|
|
1724
2057
|
await page.mouse.wheel(0, targetTimeH > lastHourElemH ? (targetTimeH - lastHourElemH) * scrollHourInfo.elementHeight : targetTimeH < fistHourElemH ? -(fistHourElemH - targetTimeH) * scrollHourInfo.elementHeight : 0);
|
|
1725
2058
|
await page.locator("#select-hour_list + * .cheetah-select-item-option ", {
|
|
1726
2059
|
hasText: targetTimeH + "点"
|
|
@@ -1744,7 +2077,7 @@ var __webpack_exports__ = {};
|
|
|
1744
2077
|
let fistMinuteElemH = Number(fistMinuteElem?.split("分")[0]);
|
|
1745
2078
|
const lastMinuteElem = scrollMinuteInfo.elementItem[scrollMinuteInfo.elementItem.length - 1];
|
|
1746
2079
|
let lastMinuteElemH = Number(lastMinuteElem?.split("分")[0]);
|
|
1747
|
-
let targetTimeM = Number(
|
|
2080
|
+
let targetTimeM = Number(utils.Tx.format(params.settingInfo.timer, 'm'));
|
|
1748
2081
|
await page.mouse.wheel(0, targetTimeM > lastMinuteElemH ? (targetTimeM - lastMinuteElemH) * scrollMinuteInfo.elementHeight : targetTimeM < fistMinuteElemH ? -(fistMinuteElemH - targetTimeM) * scrollMinuteInfo.elementHeight : 0);
|
|
1749
2082
|
await page.locator("#select-minute_list + * .cheetah-select-item-option ", {
|
|
1750
2083
|
hasText: targetTimeM + "分"
|
|
@@ -1758,16 +2091,16 @@ var __webpack_exports__ = {};
|
|
|
1758
2091
|
}).locator("button").click();
|
|
1759
2092
|
});
|
|
1760
2093
|
await page.close();
|
|
1761
|
-
return (0,
|
|
2094
|
+
return (0, share_.success)(articleId, articleId ? "发布成功" : message);
|
|
1762
2095
|
};
|
|
1763
2096
|
const baijiahaoPublish = async (task, params)=>{
|
|
1764
2097
|
if ("rpa" === params.actionType) return rpaAction(task, params);
|
|
1765
2098
|
if ("mockApi" === params.actionType) return mockAction(task, params);
|
|
1766
|
-
return
|
|
2099
|
+
return (0, utils.jo)(mockAction, rpaAction)(task, params);
|
|
1767
2100
|
};
|
|
1768
2101
|
const getBaijiahaoActivity = async (_task, params)=>{
|
|
1769
2102
|
const cookies = params.cookies ?? [];
|
|
1770
|
-
const http = new
|
|
2103
|
+
const http = new utils_http.e({
|
|
1771
2104
|
headers: {
|
|
1772
2105
|
cookie: cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
1773
2106
|
token: params.token
|
|
@@ -1785,11 +2118,11 @@ var __webpack_exports__ = {};
|
|
|
1785
2118
|
task_type: -1
|
|
1786
2119
|
}
|
|
1787
2120
|
});
|
|
1788
|
-
return (0,
|
|
2121
|
+
return (0, share_.success)(res?.data?.list ?? []);
|
|
1789
2122
|
};
|
|
1790
2123
|
const getToutiaoConfig = async (_task, params)=>{
|
|
1791
2124
|
const cookies = params.cookies ?? [];
|
|
1792
|
-
const http = new
|
|
2125
|
+
const http = new utils_http.e({
|
|
1793
2126
|
headers: {
|
|
1794
2127
|
cookie: cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
1795
2128
|
referer: "https://mp.toutiao.com/profile_v4/graphic/publish"
|
|
@@ -1837,7 +2170,7 @@ var __webpack_exports__ = {};
|
|
|
1837
2170
|
getCityDistrict(),
|
|
1838
2171
|
getUserRights()
|
|
1839
2172
|
]);
|
|
1840
|
-
return (0,
|
|
2173
|
+
return (0, share_.success)({
|
|
1841
2174
|
suggestWords,
|
|
1842
2175
|
cityDistrict,
|
|
1843
2176
|
userRights
|
|
@@ -1845,7 +2178,7 @@ var __webpack_exports__ = {};
|
|
|
1845
2178
|
};
|
|
1846
2179
|
const getBaijiahaoConfig = async (_task, params)=>{
|
|
1847
2180
|
const cookies = params.cookies ?? [];
|
|
1848
|
-
const http = new
|
|
2181
|
+
const http = new utils_http.e({
|
|
1849
2182
|
headers: {
|
|
1850
2183
|
cookie: cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
1851
2184
|
token: params.token
|
|
@@ -1858,15 +2191,23 @@ var __webpack_exports__ = {};
|
|
|
1858
2191
|
type: "news"
|
|
1859
2192
|
}
|
|
1860
2193
|
});
|
|
1861
|
-
|
|
2194
|
+
const data = res?.data?.article.activity_list.map((_item)=>({
|
|
1862
2195
|
id: _item.id,
|
|
1863
2196
|
name: _item.name,
|
|
1864
2197
|
detail: _item.detail,
|
|
1865
2198
|
is_enable: _item.is_enable
|
|
1866
|
-
})) ?? []
|
|
2199
|
+
})) ?? [];
|
|
2200
|
+
data.push({
|
|
2201
|
+
id: "bjh_publish_num_left",
|
|
2202
|
+
name: "账号剩余发文数",
|
|
2203
|
+
detail: "",
|
|
2204
|
+
is_enable: 1,
|
|
2205
|
+
publish_num_left: res.data.ability.publish_num_left
|
|
2206
|
+
});
|
|
2207
|
+
return (0, share_.success)(data, "获取百家号配置项成功!");
|
|
1867
2208
|
};
|
|
1868
2209
|
const searchToutiaoTopicList = async (_task, params)=>{
|
|
1869
|
-
const http = new
|
|
2210
|
+
const http = new utils_http.e({
|
|
1870
2211
|
headers: {
|
|
1871
2212
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
1872
2213
|
referer: "https://mp.toutiao.com/profile_v4/graphic/publish"
|
|
@@ -1881,14 +2222,14 @@ var __webpack_exports__ = {};
|
|
|
1881
2222
|
words: params.searchValue
|
|
1882
2223
|
}
|
|
1883
2224
|
});
|
|
1884
|
-
if (0 === res.code) return (0,
|
|
1885
|
-
return (0,
|
|
2225
|
+
if (0 === res.code) return (0, share_.success)(params.searchValue ? res.recents : res.hots);
|
|
2226
|
+
return (0, share_.success)([]);
|
|
1886
2227
|
} catch (error) {
|
|
1887
|
-
return (0,
|
|
2228
|
+
return (0, share_.success)([]);
|
|
1888
2229
|
}
|
|
1889
2230
|
};
|
|
1890
2231
|
const searchToutiaoLocation = async (_task, params)=>{
|
|
1891
|
-
const http = new
|
|
2232
|
+
const http = new utils_http.e({
|
|
1892
2233
|
headers: {
|
|
1893
2234
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
1894
2235
|
referer: "https://mp.toutiao.com/profile_v4/graphic/publish",
|
|
@@ -1912,7 +2253,7 @@ var __webpack_exports__ = {};
|
|
|
1912
2253
|
timestamp: Math.floor(Date.now() / 1000)
|
|
1913
2254
|
}
|
|
1914
2255
|
});
|
|
1915
|
-
if (200 === res.code) return (0,
|
|
2256
|
+
if (200 === res.code) return (0, share_.success)(res.data.poi.map((item)=>({
|
|
1916
2257
|
position: item.name,
|
|
1917
2258
|
city: item.city,
|
|
1918
2259
|
longitude: item.longitude,
|
|
@@ -1920,13 +2261,13 @@ var __webpack_exports__ = {};
|
|
|
1920
2261
|
type_code: item.type_code,
|
|
1921
2262
|
poi_id: item.id
|
|
1922
2263
|
})));
|
|
1923
|
-
return (0,
|
|
2264
|
+
return (0, share_.success)([]);
|
|
1924
2265
|
} catch (error) {
|
|
1925
|
-
return (0,
|
|
2266
|
+
return (0, share_.success)([]);
|
|
1926
2267
|
}
|
|
1927
2268
|
};
|
|
1928
2269
|
const searchToutiaoUserInfo = async (_task, params)=>{
|
|
1929
|
-
const http = new
|
|
2270
|
+
const http = new utils_http.e({
|
|
1930
2271
|
headers: {
|
|
1931
2272
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
1932
2273
|
referer: "https://mp.toutiao.com/profile_v4/graphic/publish"
|
|
@@ -1942,19 +2283,19 @@ var __webpack_exports__ = {};
|
|
|
1942
2283
|
app_name: "toutiao_mp"
|
|
1943
2284
|
}
|
|
1944
2285
|
});
|
|
1945
|
-
if (0 === res.err_no) return (0,
|
|
2286
|
+
if (0 === res.err_no) return (0, share_.success)(res.data.suggest.map((item)=>({
|
|
1946
2287
|
user_id: item.user.info.user_id,
|
|
1947
2288
|
name: item.user.info.name,
|
|
1948
2289
|
avatar_url: item.user.info.avatar_url,
|
|
1949
2290
|
followers_count: item.user.relation_count.followers_count
|
|
1950
2291
|
})), '搜索成功');
|
|
1951
|
-
return (0,
|
|
2292
|
+
return (0, share_.success)([]);
|
|
1952
2293
|
} catch (error) {
|
|
1953
|
-
return (0,
|
|
2294
|
+
return (0, share_.success)([]);
|
|
1954
2295
|
}
|
|
1955
2296
|
};
|
|
1956
2297
|
const searchXiaohongshuLocation = async (_task, params)=>{
|
|
1957
|
-
const http = new
|
|
2298
|
+
const http = new utils_http.e({
|
|
1958
2299
|
headers: {
|
|
1959
2300
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
1960
2301
|
referer: "https://creator.xiaohongshu.com",
|
|
@@ -1975,13 +2316,13 @@ var __webpack_exports__ = {};
|
|
|
1975
2316
|
type: 3
|
|
1976
2317
|
}
|
|
1977
2318
|
});
|
|
1978
|
-
return (0,
|
|
2319
|
+
return (0, share_.success)(0 === result.code ? result.data.poi_list : []);
|
|
1979
2320
|
} catch (error) {
|
|
1980
|
-
return (0,
|
|
2321
|
+
return (0, share_.success)([]);
|
|
1981
2322
|
}
|
|
1982
2323
|
};
|
|
1983
2324
|
const searchXiaohongshuTopicList = async (_task, params)=>{
|
|
1984
|
-
const http = new
|
|
2325
|
+
const http = new utils_http.e({
|
|
1985
2326
|
headers: {
|
|
1986
2327
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
1987
2328
|
referer: "https://creator.xiaohongshu.com",
|
|
@@ -2005,9 +2346,9 @@ var __webpack_exports__ = {};
|
|
|
2005
2346
|
},
|
|
2006
2347
|
defaultErrorMsg: "话题搜索异常,请稍后重试。"
|
|
2007
2348
|
});
|
|
2008
|
-
return (0,
|
|
2349
|
+
return (0, share_.success)(0 === result.code ? result.data.topic_info_dtos : [], '获取话题成功');
|
|
2009
2350
|
} catch (error) {
|
|
2010
|
-
return (0,
|
|
2351
|
+
return (0, share_.success)([]);
|
|
2011
2352
|
}
|
|
2012
2353
|
};
|
|
2013
2354
|
const GenAB = __webpack_require__("./src/utils/ttABEncrypt.js");
|
|
@@ -2024,6 +2365,7 @@ var __webpack_exports__ = {};
|
|
|
2024
2365
|
2010: "无头条广告权限,请修改后重试。",
|
|
2025
2366
|
3103: "今日头条号发布次数已达上限,请明天再试。",
|
|
2026
2367
|
1053: "正文图片和封面图片推荐jpg、png格式。",
|
|
2368
|
+
1050: "图片上传失败,请重试上传。",
|
|
2027
2369
|
2005: "账号无【申明原创】权限,请关闭申明后重试。",
|
|
2028
2370
|
100004: "用户未登录或登陆已过期,请重新登陆后重试。"
|
|
2029
2371
|
};
|
|
@@ -2042,7 +2384,7 @@ var __webpack_exports__ = {};
|
|
|
2042
2384
|
const mock_mockAction = async (task, params)=>{
|
|
2043
2385
|
const { toutiaoSingleCover, toutiaoMultCover, toutiaoCoverType, toutiaoOriginal, toutiaoExclusive, toutiaoClaim } = params.settingInfo;
|
|
2044
2386
|
const tmpCachePath = task.getTmpPath();
|
|
2045
|
-
const http = new
|
|
2387
|
+
const http = new utils_http.e({
|
|
2046
2388
|
headers: {
|
|
2047
2389
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
2048
2390
|
origin: "https://mp.toutiao.com",
|
|
@@ -2066,8 +2408,8 @@ var __webpack_exports__ = {};
|
|
|
2066
2408
|
defaultErrorMsg: `头条号登录状态失效,请重新绑定账号后${"draft" === params.saveType ? "同步" : "发布"}。`
|
|
2067
2409
|
});
|
|
2068
2410
|
const uploadImages = async (images)=>await Promise.all(images.map(async (url)=>{
|
|
2069
|
-
const fileName = (0,
|
|
2070
|
-
const image = await (0,
|
|
2411
|
+
const fileName = (0, share_.getFilenameFromUrl)(url);
|
|
2412
|
+
const image = await (0, share_.downloadImage)(url, external_node_path_default().join(tmpCachePath, fileName));
|
|
2071
2413
|
const formData = new (external_form_data_default())();
|
|
2072
2414
|
formData.append("image", external_node_fs_default().createReadStream(image));
|
|
2073
2415
|
const response = await http.api({
|
|
@@ -2078,9 +2420,9 @@ var __webpack_exports__ = {};
|
|
|
2078
2420
|
});
|
|
2079
2421
|
return response.data;
|
|
2080
2422
|
}));
|
|
2081
|
-
const originContentImages =
|
|
2423
|
+
const originContentImages = (0, utils.E_)(params.content);
|
|
2082
2424
|
const targetContentImages = await uploadImages(originContentImages);
|
|
2083
|
-
const content =
|
|
2425
|
+
const content = (0, utils.I)(params.content, (dom)=>{
|
|
2084
2426
|
if (dom.attribs.src) {
|
|
2085
2427
|
const idx = originContentImages.findIndex((it)=>it === dom.attribs.src);
|
|
2086
2428
|
dom.attribs.src = targetContentImages[idx].image_url;
|
|
@@ -2151,7 +2493,7 @@ var __webpack_exports__ = {};
|
|
|
2151
2493
|
is_refute_rumor: 0,
|
|
2152
2494
|
save: "publish" === params.saveType ? 1 : 0,
|
|
2153
2495
|
timer_status: params.settingInfo.timer ? 1 : 0,
|
|
2154
|
-
timer_time: params.settingInfo.timer ?
|
|
2496
|
+
timer_time: params.settingInfo.timer ? utils.Tx.format(params.settingInfo.timer) : "",
|
|
2155
2497
|
title: params.title,
|
|
2156
2498
|
content: content + topicContent,
|
|
2157
2499
|
extra: JSON.stringify(extraData),
|
|
@@ -2206,7 +2548,7 @@ var __webpack_exports__ = {};
|
|
|
2206
2548
|
defaultErrorMsg: "draft" === params.saveType ? "文章同步异常,请稍后重试。" : "文章发布异常,请稍后重试。"
|
|
2207
2549
|
};
|
|
2208
2550
|
const publishResult = await http.api(publishOption);
|
|
2209
|
-
return (0,
|
|
2551
|
+
return (0, share_.success)(publishResult.data.pgc_id);
|
|
2210
2552
|
};
|
|
2211
2553
|
const rpa_GenAB = __webpack_require__("./src/utils/ttABEncrypt.js");
|
|
2212
2554
|
const rpa_rpaAction = async (task, params)=>{
|
|
@@ -2270,14 +2612,14 @@ var __webpack_exports__ = {};
|
|
|
2270
2612
|
});
|
|
2271
2613
|
} else await route.continue();
|
|
2272
2614
|
});
|
|
2273
|
-
|
|
2615
|
+
(0, utils.f8)(page, '.byte-modal.publish-exclusive-modal .title', "激励", '.byte-modal-close-icon', {
|
|
2274
2616
|
checkInterval: 1000,
|
|
2275
2617
|
stopAfterClick: false
|
|
2276
2618
|
});
|
|
2277
2619
|
const titleInstance = page.locator(".publish-editor-title-wrapper .publish-editor-title textarea");
|
|
2278
2620
|
await titleInstance.click();
|
|
2279
2621
|
await titleInstance.fill(params.title);
|
|
2280
|
-
await
|
|
2622
|
+
await (0, utils.qN)(page, params.content);
|
|
2281
2623
|
await page.click(".publish-editor .syl-editor-wrap .ProseMirror");
|
|
2282
2624
|
await page.keyboard.press("Control+V");
|
|
2283
2625
|
const coverTypeValue = COVER_TYPE[params.settingInfo.toutiaoCoverType];
|
|
@@ -2292,8 +2634,8 @@ var __webpack_exports__ = {};
|
|
|
2292
2634
|
];
|
|
2293
2635
|
else if ("multiple" === params.settingInfo.toutiaoCoverType) coverUrls = params.settingInfo.toutiaoMultCover;
|
|
2294
2636
|
const images = await Promise.all(coverUrls.map((url)=>{
|
|
2295
|
-
const fileName = (0,
|
|
2296
|
-
return (0,
|
|
2637
|
+
const fileName = (0, share_.getFilenameFromUrl)(url);
|
|
2638
|
+
return (0, share_.downloadImage)(url, external_node_path_default().join(tmpCachePath, fileName));
|
|
2297
2639
|
}));
|
|
2298
2640
|
const coverUploadEle = coverContainer.locator(".article-cover .article-cover-images").locator(".article-cover-img-wrap, .article-cover-add");
|
|
2299
2641
|
const coverUploadCount = await coverUploadEle.count();
|
|
@@ -2324,7 +2666,7 @@ var __webpack_exports__ = {};
|
|
|
2324
2666
|
state: "visible"
|
|
2325
2667
|
});
|
|
2326
2668
|
await confirmBtn.click();
|
|
2327
|
-
await page.waitForTimeout(
|
|
2669
|
+
await page.waitForTimeout((0, utils.i9)(500, 1000));
|
|
2328
2670
|
}
|
|
2329
2671
|
if (params.settingInfo.toutiaoLocation) {
|
|
2330
2672
|
const locationContainer = page.locator(".form-container .edit-cell").filter({
|
|
@@ -2393,17 +2735,17 @@ var __webpack_exports__ = {};
|
|
|
2393
2735
|
});
|
|
2394
2736
|
await page.locator(".byte-modal-content .day-select .byte-select-view-value").click();
|
|
2395
2737
|
await page.locator('li.byte-select-option', {
|
|
2396
|
-
hasText:
|
|
2738
|
+
hasText: utils.Tx.format(params.settingInfo.timer, "MM月dd日")
|
|
2397
2739
|
}).click();
|
|
2398
2740
|
await page.waitForTimeout(200);
|
|
2399
2741
|
await page.locator(".byte-modal-content .hour-select .byte-select-view-value").click();
|
|
2400
2742
|
await page.locator('li.byte-select-option', {
|
|
2401
|
-
hasText:
|
|
2743
|
+
hasText: utils.Tx.format(params.settingInfo.timer, "h")
|
|
2402
2744
|
}).click();
|
|
2403
2745
|
await page.waitForTimeout(200);
|
|
2404
2746
|
await page.locator(".byte-modal-content .minute-select .byte-select-view-value").click();
|
|
2405
2747
|
await page.locator('li.byte-select-option', {
|
|
2406
|
-
hasText:
|
|
2748
|
+
hasText: utils.Tx.format(params.settingInfo.timer, "m")
|
|
2407
2749
|
}).click();
|
|
2408
2750
|
await page.waitForTimeout(200);
|
|
2409
2751
|
await page.locator(".byte-modal-footer button").filter({
|
|
@@ -2430,7 +2772,7 @@ var __webpack_exports__ = {};
|
|
|
2430
2772
|
}).click();
|
|
2431
2773
|
}
|
|
2432
2774
|
await page.close();
|
|
2433
|
-
return (0,
|
|
2775
|
+
return (0, share_.success)(articleId, "publish" === params.saveType ? "发布成功" : "保存草稿成功");
|
|
2434
2776
|
};
|
|
2435
2777
|
const COVER_TYPE = {
|
|
2436
2778
|
no: 1,
|
|
@@ -2441,10 +2783,10 @@ var __webpack_exports__ = {};
|
|
|
2441
2783
|
const toutiaoPublish = async (task, params)=>{
|
|
2442
2784
|
if ("rpa" === params.actionType) return rpa_rpaAction(task, params);
|
|
2443
2785
|
if ("mockApi" === params.actionType) return mock_mockAction(task, params);
|
|
2444
|
-
return
|
|
2786
|
+
return (0, utils.jo)(mock_mockAction, rpa_rpaAction)(task, params);
|
|
2445
2787
|
};
|
|
2446
2788
|
const TTFansExport = async (_task, params)=>{
|
|
2447
|
-
const http = new
|
|
2789
|
+
const http = new utils_http.e({
|
|
2448
2790
|
headers: {
|
|
2449
2791
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
2450
2792
|
referer: "https://mp.toutiao.com/profile_v4/graphic/publish"
|
|
@@ -2458,19 +2800,19 @@ var __webpack_exports__ = {};
|
|
|
2458
2800
|
app_id: 1231
|
|
2459
2801
|
}
|
|
2460
2802
|
});
|
|
2461
|
-
return (0,
|
|
2803
|
+
return (0, share_.success)(0 === res.code ? {
|
|
2462
2804
|
fans_count: res.total_fans_count
|
|
2463
2805
|
} : {
|
|
2464
2806
|
fans_count: null
|
|
2465
2807
|
}, "获取粉丝数成功!");
|
|
2466
2808
|
} catch (error) {
|
|
2467
|
-
return (0,
|
|
2809
|
+
return (0, share_.success)({
|
|
2468
2810
|
fans_count: null
|
|
2469
2811
|
}, "获取粉丝数失败,请检查登陆有效性!");
|
|
2470
2812
|
}
|
|
2471
2813
|
};
|
|
2472
2814
|
const XhsFansExport = async (_task, params)=>{
|
|
2473
|
-
const http = new
|
|
2815
|
+
const http = new utils_http.e({
|
|
2474
2816
|
headers: {
|
|
2475
2817
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
2476
2818
|
referer: "https://creator.xiaohongshu.com/new/home?source=official"
|
|
@@ -2481,19 +2823,19 @@ var __webpack_exports__ = {};
|
|
|
2481
2823
|
method: "get",
|
|
2482
2824
|
url: "https://creator.xiaohongshu.com/api/galaxy/creator/home/personal_info"
|
|
2483
2825
|
});
|
|
2484
|
-
return (0,
|
|
2826
|
+
return (0, share_.success)(0 === res.result ? {
|
|
2485
2827
|
fans_count: res.data.fans_count
|
|
2486
2828
|
} : {
|
|
2487
2829
|
fans_count: null
|
|
2488
2830
|
}, "获取粉丝数成功!");
|
|
2489
2831
|
} catch (error) {
|
|
2490
|
-
return (0,
|
|
2832
|
+
return (0, share_.success)({
|
|
2491
2833
|
fans_count: null
|
|
2492
2834
|
}, "获取粉丝数失败,请检查登陆有效性!");
|
|
2493
2835
|
}
|
|
2494
2836
|
};
|
|
2495
2837
|
const WxFansExport = async (_task, params)=>{
|
|
2496
|
-
const http = new
|
|
2838
|
+
const http = new utils_http.e({
|
|
2497
2839
|
headers: {
|
|
2498
2840
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";")
|
|
2499
2841
|
}
|
|
@@ -2509,19 +2851,19 @@ var __webpack_exports__ = {};
|
|
|
2509
2851
|
}
|
|
2510
2852
|
});
|
|
2511
2853
|
const match = htmlStr.match(/总用户数[\s\S]*?<mp-thousandth>(\d+)<\/mp-thousandth>/);
|
|
2512
|
-
return (0,
|
|
2854
|
+
return (0, share_.success)(match ? {
|
|
2513
2855
|
fans_count: Number(match[1])
|
|
2514
2856
|
} : {
|
|
2515
2857
|
fans_count: null
|
|
2516
2858
|
}, "获取粉丝数成功!");
|
|
2517
2859
|
} catch (error) {
|
|
2518
|
-
return (0,
|
|
2860
|
+
return (0, share_.success)({
|
|
2519
2861
|
fans_count: null
|
|
2520
2862
|
}, "获取粉丝数失败,请检查登陆有效性!");
|
|
2521
2863
|
}
|
|
2522
2864
|
};
|
|
2523
2865
|
const BjhFansExport = async (_task, params)=>{
|
|
2524
|
-
const http = new
|
|
2866
|
+
const http = new utils_http.e({
|
|
2525
2867
|
headers: {
|
|
2526
2868
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
2527
2869
|
referer: "https://baijiahao.baidu.com/builder/rc/home"
|
|
@@ -2532,20 +2874,430 @@ var __webpack_exports__ = {};
|
|
|
2532
2874
|
method: "get",
|
|
2533
2875
|
url: "https://baijiahao.baidu.com/cms-ui/rights/growth/get_info"
|
|
2534
2876
|
});
|
|
2535
|
-
return (0,
|
|
2877
|
+
return (0, share_.success)(0 === res.errno ? {
|
|
2536
2878
|
fans_count: res.data.total_fans
|
|
2537
2879
|
} : {
|
|
2538
2880
|
fans_count: null
|
|
2539
2881
|
}, "获取粉丝数成功!");
|
|
2540
2882
|
} catch (error) {
|
|
2541
|
-
return (0,
|
|
2883
|
+
return (0, share_.success)({
|
|
2542
2884
|
fans_count: null
|
|
2543
2885
|
}, "获取粉丝数失败,请检查登陆有效性!");
|
|
2544
2886
|
}
|
|
2545
2887
|
};
|
|
2888
|
+
const TTSessionCheck = async (_task, params)=>{
|
|
2889
|
+
const http = new utils_http.e({
|
|
2890
|
+
headers: {
|
|
2891
|
+
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
2892
|
+
referer: "https://mp.toutiao.com/profile_v4/graphic/publish"
|
|
2893
|
+
}
|
|
2894
|
+
});
|
|
2895
|
+
try {
|
|
2896
|
+
const res = await http.api({
|
|
2897
|
+
method: "get",
|
|
2898
|
+
url: "https://mp.toutiao.com/mp/agw/creator_center/user_info",
|
|
2899
|
+
defaultErrorMsg: `头条号登录状态失效。`
|
|
2900
|
+
});
|
|
2901
|
+
return (0, share_.success)(0 === res.code ? {
|
|
2902
|
+
isValidSession: true
|
|
2903
|
+
} : {
|
|
2904
|
+
isValidSession: false
|
|
2905
|
+
}, "头条账号有效性检测完成!");
|
|
2906
|
+
} catch (error) {
|
|
2907
|
+
return (0, share_.success)({
|
|
2908
|
+
isValidSession: false
|
|
2909
|
+
}, "头条账号有效性检测失败!");
|
|
2910
|
+
}
|
|
2911
|
+
};
|
|
2912
|
+
const WxSessionCheck = async (_task, params)=>{
|
|
2913
|
+
const http = new utils_http.e({
|
|
2914
|
+
headers: {
|
|
2915
|
+
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";")
|
|
2916
|
+
}
|
|
2917
|
+
});
|
|
2918
|
+
const fingerprint = "4695500bc93ab4ce8fb2692da6564e04";
|
|
2919
|
+
try {
|
|
2920
|
+
const res = await http.api({
|
|
2921
|
+
method: "get",
|
|
2922
|
+
url: "https://mp.weixin.qq.com/cgi-bin/appmsgpublish",
|
|
2923
|
+
params: {
|
|
2924
|
+
fingerprint,
|
|
2925
|
+
sub: "list",
|
|
2926
|
+
begin: 0,
|
|
2927
|
+
count: 10,
|
|
2928
|
+
query: "",
|
|
2929
|
+
type: 1011102103,
|
|
2930
|
+
show_type: "",
|
|
2931
|
+
free_publish_type: 1102103,
|
|
2932
|
+
sub_action: "list_ex",
|
|
2933
|
+
search_card: 0,
|
|
2934
|
+
token: params.token,
|
|
2935
|
+
lang: "zh_CN",
|
|
2936
|
+
f: "json",
|
|
2937
|
+
ajax: 1
|
|
2938
|
+
}
|
|
2939
|
+
});
|
|
2940
|
+
return (0, share_.success)(0 === res.base_resp.ret ? {
|
|
2941
|
+
isValidSession: true
|
|
2942
|
+
} : {
|
|
2943
|
+
isValidSession: false
|
|
2944
|
+
}, "微信账号有效性检测完成!");
|
|
2945
|
+
} catch (error) {
|
|
2946
|
+
return (0, share_.success)({
|
|
2947
|
+
isValidSession: false
|
|
2948
|
+
}, "微信账号有效性检测失败!");
|
|
2949
|
+
}
|
|
2950
|
+
};
|
|
2951
|
+
const XhsSessionCheck = async (_task, params)=>{
|
|
2952
|
+
const http = new utils_http.e({
|
|
2953
|
+
headers: {
|
|
2954
|
+
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
2955
|
+
referer: "https://creator.xiaohongshu.com/new/home?source=official"
|
|
2956
|
+
}
|
|
2957
|
+
});
|
|
2958
|
+
try {
|
|
2959
|
+
const res = await http.api({
|
|
2960
|
+
method: "get",
|
|
2961
|
+
url: "https://creator.xiaohongshu.com/api/galaxy/user/info"
|
|
2962
|
+
});
|
|
2963
|
+
return (0, share_.success)(0 === res.result ? {
|
|
2964
|
+
isValidSession: true
|
|
2965
|
+
} : {
|
|
2966
|
+
isValidSession: false
|
|
2967
|
+
}, "小红书账号有效性检测完成!");
|
|
2968
|
+
} catch (error) {
|
|
2969
|
+
return (0, share_.success)({
|
|
2970
|
+
isValidSession: false
|
|
2971
|
+
}, "小红书账号有效性检测完成!");
|
|
2972
|
+
}
|
|
2973
|
+
};
|
|
2974
|
+
const BjhSessionCheck = async (_task, params)=>{
|
|
2975
|
+
const http = new utils_http.e({
|
|
2976
|
+
headers: {
|
|
2977
|
+
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
2978
|
+
referer: "https://baijiahao.baidu.com/builder/rc/home"
|
|
2979
|
+
}
|
|
2980
|
+
});
|
|
2981
|
+
try {
|
|
2982
|
+
const res = await http.api({
|
|
2983
|
+
method: "get",
|
|
2984
|
+
url: "https://baijiahao.baidu.com/pcui/home/index",
|
|
2985
|
+
defaultErrorMsg: `百家号登录状态失效。`
|
|
2986
|
+
});
|
|
2987
|
+
return (0, share_.success)(0 === res.errno ? {
|
|
2988
|
+
isValidSession: true
|
|
2989
|
+
} : {
|
|
2990
|
+
isValidSession: false
|
|
2991
|
+
}, "百家号账号有效性检测完成!");
|
|
2992
|
+
} catch (error) {
|
|
2993
|
+
return (0, share_.success)({
|
|
2994
|
+
isValidSession: false
|
|
2995
|
+
}, "百家号账号有效性检测失败!");
|
|
2996
|
+
}
|
|
2997
|
+
};
|
|
2998
|
+
var searchAccountInfo = __webpack_require__("./src/actions/searchAccountInfo/index.ts");
|
|
2999
|
+
var xhsXsEncrypt = __webpack_require__("./src/utils/xhsXsEncrypt.ts");
|
|
3000
|
+
const FetchArticles = async (_task, params)=>{
|
|
3001
|
+
const { platform, cookies, token, pageNum = 1, pageSize = 10, onlySuccess = false, showOriginalData = false } = params;
|
|
3002
|
+
try {
|
|
3003
|
+
switch(platform){
|
|
3004
|
+
case "toutiao":
|
|
3005
|
+
{
|
|
3006
|
+
const http = new utils_http.e({
|
|
3007
|
+
headers: {
|
|
3008
|
+
cookie: cookies.map((it)=>`${it.name}=${it.value}`).join(";")
|
|
3009
|
+
}
|
|
3010
|
+
});
|
|
3011
|
+
const visitedUid = await http.api({
|
|
3012
|
+
url: "https://mp.toutiao.com/mp/agw/creator_center/user_info?",
|
|
3013
|
+
method: "get",
|
|
3014
|
+
params: {
|
|
3015
|
+
app_id: 1231
|
|
3016
|
+
}
|
|
3017
|
+
});
|
|
3018
|
+
const articleInfo = await http.api({
|
|
3019
|
+
method: "get",
|
|
3020
|
+
url: "https://mp.toutiao.com/api/feed/mp_provider/v1/",
|
|
3021
|
+
params: {
|
|
3022
|
+
provider_type: "mp_provider",
|
|
3023
|
+
aid: "13",
|
|
3024
|
+
app_name: "news_article",
|
|
3025
|
+
category: "mp_all",
|
|
3026
|
+
channel: "",
|
|
3027
|
+
stream_api_version: "88",
|
|
3028
|
+
genre_type_switch: '{"repost":1,"small_video":1,"toutiao_graphic":1,"weitoutiao":1,"xigua_video":1}',
|
|
3029
|
+
device_platform: "pc",
|
|
3030
|
+
platform_id: "0",
|
|
3031
|
+
visited_uid: visitedUid.user_id_str,
|
|
3032
|
+
offset: (pageNum - 1) * pageSize,
|
|
3033
|
+
count: pageSize,
|
|
3034
|
+
keyword: "",
|
|
3035
|
+
client_extra_params: `{"category":"mp_all","real_app_id":"1231","need_forward":"true","offset_mode":"1","page_index":"1","status":${onlySuccess ? "2" : "8"},"source":"0"}`,
|
|
3036
|
+
app_id: "1231"
|
|
3037
|
+
}
|
|
3038
|
+
});
|
|
3039
|
+
const articleCell = articleInfo.data.map((item)=>({
|
|
3040
|
+
title: item.assembleCell.itemCell.articleBase.title,
|
|
3041
|
+
imageUrl: item.assembleCell.itemCell.imageList.staggerFeedCover[0].url,
|
|
3042
|
+
createTime: item.assembleCell.itemCell.articleBase.publishTime,
|
|
3043
|
+
redirectUrl: item.assembleCell.itemCell.articleBase.articleURL,
|
|
3044
|
+
showNum: item.assembleCell.itemCell.itemCounter.showCount,
|
|
3045
|
+
readNum: item.assembleCell.itemCell.itemCounter.readCount,
|
|
3046
|
+
likeNum: item.assembleCell.itemCell.itemCounter.diggCount,
|
|
3047
|
+
commentNum: item.assembleCell.itemCell.itemCounter.commentCount,
|
|
3048
|
+
...showOriginalData ? {
|
|
3049
|
+
originalData: item
|
|
3050
|
+
} : {}
|
|
3051
|
+
}));
|
|
3052
|
+
const api_base_info_json = JSON.parse(articleInfo.api_base_info.app_extra_params);
|
|
3053
|
+
return (0, share_.success)({
|
|
3054
|
+
articleCell,
|
|
3055
|
+
pagination: {
|
|
3056
|
+
total: api_base_info_json.total_count,
|
|
3057
|
+
pageNum,
|
|
3058
|
+
pageSize
|
|
3059
|
+
}
|
|
3060
|
+
}, "头条号文章获取成功");
|
|
3061
|
+
}
|
|
3062
|
+
case "weixin":
|
|
3063
|
+
{
|
|
3064
|
+
if (!token) return {
|
|
3065
|
+
code: 200,
|
|
3066
|
+
message: "缺少token",
|
|
3067
|
+
data: null
|
|
3068
|
+
};
|
|
3069
|
+
const http = new utils_http.e({
|
|
3070
|
+
headers: {
|
|
3071
|
+
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";")
|
|
3072
|
+
}
|
|
3073
|
+
});
|
|
3074
|
+
const ParsePublishPage = (body)=>{
|
|
3075
|
+
const decodeHtml = (str)=>str.replace(/"/g, '"').replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/'/g, "'").replace(/ /g, ' ');
|
|
3076
|
+
const match = body.match(/publish_page\s*=\s*(\{[\s\S]*?\})\s*;/);
|
|
3077
|
+
if (!match) throw new Error('无法提取 publish_page 字段');
|
|
3078
|
+
const rawPublishPageStr = match[1];
|
|
3079
|
+
const parsedData = JSON.parse(rawPublishPageStr);
|
|
3080
|
+
const finalData = {
|
|
3081
|
+
...parsedData,
|
|
3082
|
+
publish_list: parsedData.publish_list.map((item)=>{
|
|
3083
|
+
const decoded = decodeHtml(item.publish_info);
|
|
3084
|
+
const parsedInfo = JSON.parse(decoded);
|
|
3085
|
+
return {
|
|
3086
|
+
publish_type: item.publish_type,
|
|
3087
|
+
publish_info: parsedInfo
|
|
3088
|
+
};
|
|
3089
|
+
})
|
|
3090
|
+
};
|
|
3091
|
+
return finalData;
|
|
3092
|
+
};
|
|
3093
|
+
const rawArticlesInfo = await http.api({
|
|
3094
|
+
method: "get",
|
|
3095
|
+
url: 'https://mp.weixin.qq.com/cgi-bin/appmsgpublish?sub=list&begin=0&count=10&token=1453947575&lang=zh_CN',
|
|
3096
|
+
params: {
|
|
3097
|
+
sub: "list",
|
|
3098
|
+
begin: (pageNum - 1) * pageSize,
|
|
3099
|
+
count: pageSize,
|
|
3100
|
+
token: token,
|
|
3101
|
+
lang: "zh_CN"
|
|
3102
|
+
}
|
|
3103
|
+
});
|
|
3104
|
+
const articlesInfo = ParsePublishPage(rawArticlesInfo);
|
|
3105
|
+
const articleCell = articlesInfo?.publish_list.map((item)=>({
|
|
3106
|
+
title: item.publish_info.appmsg_info[0].title,
|
|
3107
|
+
imageUrl: item.publish_info.appmsg_info[0].cover,
|
|
3108
|
+
createTime: item.publish_info.appmsg_info[0].line_info.send_time,
|
|
3109
|
+
redirectUrl: item.publish_info.appmsg_info[0].content_url,
|
|
3110
|
+
readNum: item.publish_info.appmsg_info[0].read_num,
|
|
3111
|
+
likeNum: item.publish_info.appmsg_info[0].old_like_num,
|
|
3112
|
+
shareNum: item.publish_info.appmsg_info[0].share_num,
|
|
3113
|
+
recommendNum: item.publish_info.appmsg_info[0].like_num,
|
|
3114
|
+
...showOriginalData ? {
|
|
3115
|
+
originalData: item
|
|
3116
|
+
} : {}
|
|
3117
|
+
}));
|
|
3118
|
+
return (0, share_.success)({
|
|
3119
|
+
articleCell,
|
|
3120
|
+
...onlySuccess ? {
|
|
3121
|
+
pagination: {
|
|
3122
|
+
total: articlesInfo?.total_count,
|
|
3123
|
+
pageNum,
|
|
3124
|
+
pageSize
|
|
3125
|
+
}
|
|
3126
|
+
} : null
|
|
3127
|
+
}, "微信文章获取成功");
|
|
3128
|
+
}
|
|
3129
|
+
case "baijiahao":
|
|
3130
|
+
{
|
|
3131
|
+
if (!token) return {
|
|
3132
|
+
code: 200,
|
|
3133
|
+
message: "缺少token",
|
|
3134
|
+
data: null
|
|
3135
|
+
};
|
|
3136
|
+
const http = new utils_http.e({
|
|
3137
|
+
headers: {
|
|
3138
|
+
cookie: cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
3139
|
+
token: token
|
|
3140
|
+
}
|
|
3141
|
+
});
|
|
3142
|
+
async function fetchArticles(pageNum, pageSize, onlySuccess = false) {
|
|
3143
|
+
return await http.api({
|
|
3144
|
+
method: "get",
|
|
3145
|
+
url: "https://baijiahao.baidu.com/pcui/article/lists",
|
|
3146
|
+
params: {
|
|
3147
|
+
currentPage: pageNum,
|
|
3148
|
+
pageSize: pageSize,
|
|
3149
|
+
search: "",
|
|
3150
|
+
type: "",
|
|
3151
|
+
collection: onlySuccess ? "publish" : "",
|
|
3152
|
+
clearBeforeFetch: false,
|
|
3153
|
+
dynamic: 1
|
|
3154
|
+
}
|
|
3155
|
+
});
|
|
3156
|
+
}
|
|
3157
|
+
const articleInfo = await fetchArticles(pageNum, pageSize, onlySuccess);
|
|
3158
|
+
let filtered = articleInfo.data.list.filter((item)=>"draft" !== item.status);
|
|
3159
|
+
const totalPage = articleInfo.data.page?.totalPage || 1;
|
|
3160
|
+
let currentPage = pageNum + 1;
|
|
3161
|
+
const usedPages = new Set();
|
|
3162
|
+
while(filtered.length < pageSize && currentPage <= totalPage){
|
|
3163
|
+
if (usedPages.has(currentPage)) {
|
|
3164
|
+
currentPage++;
|
|
3165
|
+
continue;
|
|
3166
|
+
}
|
|
3167
|
+
const res = await fetchArticles(currentPage, pageSize, onlySuccess);
|
|
3168
|
+
usedPages.add(currentPage);
|
|
3169
|
+
const validItems = res.data.list.filter((item)=>"draft" !== item.status);
|
|
3170
|
+
filtered.push(...validItems);
|
|
3171
|
+
currentPage++;
|
|
3172
|
+
}
|
|
3173
|
+
const final = filtered.slice(0, pageSize);
|
|
3174
|
+
const articleCell = final.map((item)=>({
|
|
3175
|
+
title: item.title,
|
|
3176
|
+
imageUrl: JSON.parse(item.cover_images)[0].src,
|
|
3177
|
+
createTime: Math.floor(new Date(item.publish_at.replace(/-/g, "/")).getTime() / 1000),
|
|
3178
|
+
redirectUrl: item.url,
|
|
3179
|
+
recommendNum: item.rec_amount,
|
|
3180
|
+
collectNum: item.collection_amount,
|
|
3181
|
+
readNum: item.read_amount,
|
|
3182
|
+
likeNum: item.like_amount,
|
|
3183
|
+
commentNum: item.comment_amount,
|
|
3184
|
+
shareNum: item.share_amount,
|
|
3185
|
+
...showOriginalData ? {
|
|
3186
|
+
originalData: item
|
|
3187
|
+
} : {}
|
|
3188
|
+
}));
|
|
3189
|
+
return (0, share_.success)({
|
|
3190
|
+
articleCell,
|
|
3191
|
+
...onlySuccess ? {
|
|
3192
|
+
pagination: {
|
|
3193
|
+
total: articleInfo.data.page?.totalCount,
|
|
3194
|
+
pageNum,
|
|
3195
|
+
pageSize
|
|
3196
|
+
}
|
|
3197
|
+
} : null
|
|
3198
|
+
}, "百家号文章获取成功");
|
|
3199
|
+
}
|
|
3200
|
+
case "xiaohongshu":
|
|
3201
|
+
{
|
|
3202
|
+
const xsEncrypt = new xhsXsEncrypt.H();
|
|
3203
|
+
const a1Cookie = cookies.find((it)=>"a1" === it.name)?.value;
|
|
3204
|
+
if (!a1Cookie) return {
|
|
3205
|
+
code: 200,
|
|
3206
|
+
message: "账号数据异常",
|
|
3207
|
+
data: null
|
|
3208
|
+
};
|
|
3209
|
+
if (10 != pageSize) return {
|
|
3210
|
+
code: 200,
|
|
3211
|
+
message: "小红书pageSize不可修改",
|
|
3212
|
+
data: null
|
|
3213
|
+
};
|
|
3214
|
+
const http = new utils_http.e({
|
|
3215
|
+
headers: {
|
|
3216
|
+
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
3217
|
+
referer: "https://creator.xiaohongshu.com",
|
|
3218
|
+
origin: "https://creator.xiaohongshu.com"
|
|
3219
|
+
}
|
|
3220
|
+
});
|
|
3221
|
+
const xt = Date.now().toString();
|
|
3222
|
+
const serveUrl = `/web_api/sns/v5/creator/note/user/posted?tab=${onlySuccess ? 1 : 0}&page=${pageNum - 1}`;
|
|
3223
|
+
const xs = await xsEncrypt.encryptXs(serveUrl, a1Cookie, xt);
|
|
3224
|
+
const articleInfo = await http.api({
|
|
3225
|
+
method: "get",
|
|
3226
|
+
baseURL: "https://edith.xiaohongshu.com",
|
|
3227
|
+
url: serveUrl,
|
|
3228
|
+
headers: {
|
|
3229
|
+
"x-s": xs,
|
|
3230
|
+
"x-t": xt
|
|
3231
|
+
}
|
|
3232
|
+
});
|
|
3233
|
+
const articleCell = articleInfo.data.notes.map((item)=>({
|
|
3234
|
+
title: item.display_title,
|
|
3235
|
+
imageUrl: item.images_list[0].url,
|
|
3236
|
+
createTime: Math.floor(new Date(item.time.replace(/-/g, "/")).getTime() / 1000),
|
|
3237
|
+
redirectUrl: `https://www.xiaohongshu.com/explore/${item.id}?xsec_token=${item.xsec_token}&xsec_source=pc_creatormng`,
|
|
3238
|
+
readNum: item.view_count,
|
|
3239
|
+
likeNum: item.likes,
|
|
3240
|
+
commentNum: item.comments_count,
|
|
3241
|
+
collectNum: item.collected_count,
|
|
3242
|
+
shareNum: item.shared_count,
|
|
3243
|
+
...showOriginalData ? {
|
|
3244
|
+
originalData: item
|
|
3245
|
+
} : {}
|
|
3246
|
+
}));
|
|
3247
|
+
return (0, share_.success)({
|
|
3248
|
+
articleCell,
|
|
3249
|
+
...onlySuccess ? {
|
|
3250
|
+
pagination: {
|
|
3251
|
+
total: articleInfo.data.tags[0].notes_count,
|
|
3252
|
+
pageNum,
|
|
3253
|
+
pageSize
|
|
3254
|
+
}
|
|
3255
|
+
} : null
|
|
3256
|
+
}, "小红书文章获取成功");
|
|
3257
|
+
}
|
|
3258
|
+
default:
|
|
3259
|
+
return {
|
|
3260
|
+
code: 200,
|
|
3261
|
+
message: "暂不支持该平台",
|
|
3262
|
+
data: null
|
|
3263
|
+
};
|
|
3264
|
+
}
|
|
3265
|
+
} catch (error) {
|
|
3266
|
+
console.error("获取文章数据失败:", error);
|
|
3267
|
+
return {
|
|
3268
|
+
code: 500,
|
|
3269
|
+
message: "获取文章数据失败",
|
|
3270
|
+
data: null
|
|
3271
|
+
};
|
|
3272
|
+
}
|
|
3273
|
+
};
|
|
3274
|
+
const getWeixinConfig = async (_task, params)=>{
|
|
3275
|
+
const http = new utils_http.e({
|
|
3276
|
+
headers: {
|
|
3277
|
+
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";")
|
|
3278
|
+
}
|
|
3279
|
+
});
|
|
3280
|
+
const fingerprint = "4695500bc93ab4ce8fb2692da6564e04";
|
|
3281
|
+
const res = await http.api({
|
|
3282
|
+
method: "get",
|
|
3283
|
+
url: "https://mp.weixin.qq.com/cgi-bin/masssendpage",
|
|
3284
|
+
params: {
|
|
3285
|
+
f: 'json',
|
|
3286
|
+
token: params.token,
|
|
3287
|
+
lang: 'zh_CN',
|
|
3288
|
+
ajax: 1,
|
|
3289
|
+
fingerprint: fingerprint,
|
|
3290
|
+
random: Math.random().toString()
|
|
3291
|
+
}
|
|
3292
|
+
});
|
|
3293
|
+
const filtered = {
|
|
3294
|
+
publishQuota: 0 === res.base_resp.ret ? res.quota_detail_list.filter((item)=>"kQuotaTypeMassSendNormal" === item.quota_type).map((item)=>item.quota_item_list) : []
|
|
3295
|
+
};
|
|
3296
|
+
return (0, share_.success)(filtered, 0 === res.base_resp.ret ? "微信配置信息获取成功!" : "微信配置信息获取失败!");
|
|
3297
|
+
};
|
|
2546
3298
|
const weitoutiaoPublish_mock_mockAction = async (task, params)=>{
|
|
2547
3299
|
const tmpCachePath = task.getTmpPath();
|
|
2548
|
-
const http = new
|
|
3300
|
+
const http = new utils_http.e({
|
|
2549
3301
|
headers: {
|
|
2550
3302
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
2551
3303
|
origin: "https://mp.toutiao.com",
|
|
@@ -2564,8 +3316,8 @@ var __webpack_exports__ = {};
|
|
|
2564
3316
|
const imageList = [];
|
|
2565
3317
|
if (params.banners && params.banners.length > 0) {
|
|
2566
3318
|
const images = await Promise.all(params.banners.map((url)=>{
|
|
2567
|
-
const fileName = (0,
|
|
2568
|
-
return (0,
|
|
3319
|
+
const fileName = (0, share_.getFilenameFromUrl)(url);
|
|
3320
|
+
return (0, share_.downloadImage)(url, external_node_path_default().join(tmpCachePath, fileName));
|
|
2569
3321
|
}));
|
|
2570
3322
|
const res = await Promise.all(images.map(async (it)=>{
|
|
2571
3323
|
const formData = new (external_form_data_default())();
|
|
@@ -2612,7 +3364,7 @@ var __webpack_exports__ = {};
|
|
|
2612
3364
|
url: "https://mp.toutiao.com/mp/agw/article/wtt",
|
|
2613
3365
|
data: syncData
|
|
2614
3366
|
});
|
|
2615
|
-
return (0,
|
|
3367
|
+
return (0, share_.success)(res.data);
|
|
2616
3368
|
};
|
|
2617
3369
|
const weitoutiaoPublish_rpa_rpaAction = async (task, params)=>{
|
|
2618
3370
|
const commonCookies = {
|
|
@@ -2645,8 +3397,8 @@ var __webpack_exports__ = {};
|
|
|
2645
3397
|
await descInstance.fill(params.content);
|
|
2646
3398
|
if (params.banners && params.banners?.length > 0) {
|
|
2647
3399
|
const images = await Promise.all(params.banners.map((url)=>{
|
|
2648
|
-
const fileName = (0,
|
|
2649
|
-
return (0,
|
|
3400
|
+
const fileName = (0, share_.getFilenameFromUrl)(url);
|
|
3401
|
+
return (0, share_.downloadImage)(url, external_node_path_default().join(tmpCachePath, fileName));
|
|
2650
3402
|
}));
|
|
2651
3403
|
const fileChooserPromise = page.waitForEvent("filechooser");
|
|
2652
3404
|
await page.locator(".toolbar .syl-toolbar-tool.weitoutiao-image-plugin").click();
|
|
@@ -2677,12 +3429,12 @@ var __webpack_exports__ = {};
|
|
|
2677
3429
|
await declarationFormItem.locator(`.byte-checkbox:has(input[value="${params.declaration}"])`).click();
|
|
2678
3430
|
}
|
|
2679
3431
|
await page.locator(".footer-wrap button.publish-content").click();
|
|
2680
|
-
return (0,
|
|
3432
|
+
return (0, share_.success)("");
|
|
2681
3433
|
};
|
|
2682
3434
|
const weitoutiaoPublish = async (task, params)=>{
|
|
2683
3435
|
if ("rpa" === params.actionType) return weitoutiaoPublish_rpa_rpaAction(task, params);
|
|
2684
3436
|
if ("mockApi" === params.actionType) return weitoutiaoPublish_mock_mockAction(task, params);
|
|
2685
|
-
return
|
|
3437
|
+
return (0, utils.jo)(weitoutiaoPublish_mock_mockAction, weitoutiaoPublish_rpa_rpaAction)(task, params);
|
|
2686
3438
|
};
|
|
2687
3439
|
const scanRetryMaxCount = 30;
|
|
2688
3440
|
const QuotaType = {
|
|
@@ -2739,7 +3491,7 @@ var __webpack_exports__ = {};
|
|
|
2739
3491
|
const fingerprint = "4695500bc93ab4ce8fb2692da6564e04";
|
|
2740
3492
|
const client_time_diff = +Number("1743488763") - Math.floor(new Date().getTime() / 1000);
|
|
2741
3493
|
const tmpCachePath = task.getTmpPath();
|
|
2742
|
-
const http = new
|
|
3494
|
+
const http = new utils_http.e({
|
|
2743
3495
|
headers: {
|
|
2744
3496
|
"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",
|
|
2745
3497
|
Cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
@@ -2782,12 +3534,12 @@ var __webpack_exports__ = {};
|
|
|
2782
3534
|
const uploadImages = async (images)=>{
|
|
2783
3535
|
const cloudImages = [];
|
|
2784
3536
|
const localImages = await Promise.all(images.map((url)=>{
|
|
2785
|
-
const fileName = (0,
|
|
2786
|
-
return (0,
|
|
3537
|
+
const fileName = (0, share_.getFilenameFromUrl)(url);
|
|
3538
|
+
return (0, share_.downloadImage)(url, external_node_path_default().join(tmpCachePath, fileName));
|
|
2787
3539
|
}));
|
|
2788
3540
|
for(let index = 0; index < images.length; index++){
|
|
2789
3541
|
const image = localImages[index];
|
|
2790
|
-
const fileState =
|
|
3542
|
+
const fileState = (0, utils.H8)(image);
|
|
2791
3543
|
const formData = new (external_form_data_default())();
|
|
2792
3544
|
formData.append("id", `WU_FILE_${index + 1}`);
|
|
2793
3545
|
formData.append("name", fileState.name);
|
|
@@ -2805,9 +3557,9 @@ var __webpack_exports__ = {};
|
|
|
2805
3557
|
}
|
|
2806
3558
|
return cloudImages;
|
|
2807
3559
|
};
|
|
2808
|
-
const originContentImages =
|
|
3560
|
+
const originContentImages = (0, utils.E_)(params.content);
|
|
2809
3561
|
const targetContentImages = await uploadImages(originContentImages);
|
|
2810
|
-
const content =
|
|
3562
|
+
const content = (0, utils.I)(params.content, (dom)=>{
|
|
2811
3563
|
if (dom.attribs.src) {
|
|
2812
3564
|
const idx = originContentImages.findIndex((it)=>it === dom.attribs.src);
|
|
2813
3565
|
dom.attribs.src = targetContentImages[idx].cdn_url;
|
|
@@ -2930,7 +3682,7 @@ var __webpack_exports__ = {};
|
|
|
2930
3682
|
const task_id = rewardbind.task_id;
|
|
2931
3683
|
let code = null;
|
|
2932
3684
|
for(let i = 0; i < scanRetryMaxCount; i++){
|
|
2933
|
-
await (0,
|
|
3685
|
+
await (0, share_.sleep)(2000);
|
|
2934
3686
|
const checkScanResult = await http.api({
|
|
2935
3687
|
method: "get",
|
|
2936
3688
|
url: "https://mp.weixin.qq.com/acct/writermgr",
|
|
@@ -3191,7 +3943,7 @@ var __webpack_exports__ = {};
|
|
|
3191
3943
|
appmsgid: appMsgId
|
|
3192
3944
|
};
|
|
3193
3945
|
for(let i = 0; i < 10; i++){
|
|
3194
|
-
await (0,
|
|
3946
|
+
await (0, share_.sleep)(1000);
|
|
3195
3947
|
const lastData = {
|
|
3196
3948
|
...copyrightStatData,
|
|
3197
3949
|
first_check: 0 === i ? 1 : 0
|
|
@@ -3199,7 +3951,7 @@ var __webpack_exports__ = {};
|
|
|
3199
3951
|
const checkCopyrightStatRes = await checkCopyrightStat(http, params, lastData);
|
|
3200
3952
|
if (checkCopyrightStatRes.open_ad_reprint_status) break;
|
|
3201
3953
|
}
|
|
3202
|
-
await (0,
|
|
3954
|
+
await (0, share_.sleep)(300);
|
|
3203
3955
|
await http.api({
|
|
3204
3956
|
method: "post",
|
|
3205
3957
|
url: "https://mp.weixin.qq.com/cgi-bin/masssend",
|
|
@@ -3220,7 +3972,7 @@ var __webpack_exports__ = {};
|
|
|
3220
3972
|
random: Math.random().toString()
|
|
3221
3973
|
})
|
|
3222
3974
|
});
|
|
3223
|
-
await (0,
|
|
3975
|
+
await (0, share_.sleep)(300);
|
|
3224
3976
|
await http.api({
|
|
3225
3977
|
method: "post",
|
|
3226
3978
|
url: "https://mp.weixin.qq.com/cgi-bin/masssend",
|
|
@@ -3238,7 +3990,7 @@ var __webpack_exports__ = {};
|
|
|
3238
3990
|
random: Math.random().toString()
|
|
3239
3991
|
})
|
|
3240
3992
|
});
|
|
3241
|
-
await (0,
|
|
3993
|
+
await (0, share_.sleep)(300);
|
|
3242
3994
|
const getTicketResult = await http.api({
|
|
3243
3995
|
method: "post",
|
|
3244
3996
|
url: "https://mp.weixin.qq.com/misc/safeassistant",
|
|
@@ -3258,7 +4010,7 @@ var __webpack_exports__ = {};
|
|
|
3258
4010
|
}),
|
|
3259
4011
|
defaultErrorMsg: GET_QRCODE_DEFAULT_ERROR
|
|
3260
4012
|
});
|
|
3261
|
-
await (0,
|
|
4013
|
+
await (0, share_.sleep)(300);
|
|
3262
4014
|
const getUuidResult = await http.api({
|
|
3263
4015
|
method: "post",
|
|
3264
4016
|
url: "https://mp.weixin.qq.com/safe/safeqrconnect",
|
|
@@ -3281,14 +4033,14 @@ var __webpack_exports__ = {};
|
|
|
3281
4033
|
}),
|
|
3282
4034
|
defaultErrorMsg: GET_QRCODE_DEFAULT_ERROR
|
|
3283
4035
|
});
|
|
3284
|
-
await (0,
|
|
4036
|
+
await (0, share_.sleep)(1000);
|
|
3285
4037
|
if (0 !== getUuidResult.genuuid_res) return {
|
|
3286
4038
|
code: 200,
|
|
3287
4039
|
message: GET_QRCODE_DEFAULT_ERROR,
|
|
3288
4040
|
data: ""
|
|
3289
4041
|
};
|
|
3290
4042
|
const uuid = getUuidResult.uuid;
|
|
3291
|
-
await (0,
|
|
4043
|
+
await (0, share_.sleep)(1000);
|
|
3292
4044
|
const qrcodeResult = await http.api({
|
|
3293
4045
|
method: "get",
|
|
3294
4046
|
url: "https://mp.weixin.qq.com/safe/safeqrcode",
|
|
@@ -3313,7 +4065,7 @@ var __webpack_exports__ = {};
|
|
|
3313
4065
|
params.safeQrcodeCallback?.(qrcodeFilePath);
|
|
3314
4066
|
let code = "";
|
|
3315
4067
|
for(let i = 0; i < scanRetryMaxCount; i++){
|
|
3316
|
-
await (0,
|
|
4068
|
+
await (0, share_.sleep)(2000);
|
|
3317
4069
|
const checkScanResult = await http.api({
|
|
3318
4070
|
method: "post",
|
|
3319
4071
|
url: "https://mp.weixin.qq.com/safe/safeuuid",
|
|
@@ -3400,7 +4152,7 @@ var __webpack_exports__ = {};
|
|
|
3400
4152
|
share_page: "1",
|
|
3401
4153
|
synctxweibo: "0",
|
|
3402
4154
|
operation_seq,
|
|
3403
|
-
req_id: (0,
|
|
4155
|
+
req_id: (0, share_.randomString)(32),
|
|
3404
4156
|
req_time: new Date().getTime() + 1e3 * client_time_diff,
|
|
3405
4157
|
sync_version: "1",
|
|
3406
4158
|
isFreePublish: params.masssend ? "false" : "true",
|
|
@@ -3412,8 +4164,10 @@ var __webpack_exports__ = {};
|
|
|
3412
4164
|
}),
|
|
3413
4165
|
defaultErrorMsg: params.masssend ? "文章群发异常,请尝试关闭群发或稍后重试。" : "文章发布异常,请稍后重试。"
|
|
3414
4166
|
});
|
|
3415
|
-
return (0,
|
|
4167
|
+
return (0, share_.success)(appMsgId, params.settingInfo.timer ? "微信公众号文章定时发布成功。" : "微信公众号发布完成。");
|
|
3416
4168
|
};
|
|
4169
|
+
var external_axios_ = __webpack_require__("axios");
|
|
4170
|
+
var external_axios_default = /*#__PURE__*/ __webpack_require__.n(external_axios_);
|
|
3417
4171
|
const waitQrcodeResultMaxTime = 2000 * scanRetryMaxCount;
|
|
3418
4172
|
const weixinPublish_rpa_rpaAction = async (task, params)=>{
|
|
3419
4173
|
const tmpCachePath = task.getTmpPath();
|
|
@@ -3529,11 +4283,11 @@ var __webpack_exports__ = {};
|
|
|
3529
4283
|
await page.waitForSelector("#editor_pannel", {
|
|
3530
4284
|
state: "visible"
|
|
3531
4285
|
});
|
|
3532
|
-
|
|
4286
|
+
(0, utils.f8)(page, '[v-transfer-dom="#vue_app"] .weui-desktop-dialog', "更新", '[v-transfer-dom="#vue_app"] .weui-desktop-icon-btn.weui-desktop-dialog__close-btn', {
|
|
3533
4287
|
checkInterval: 1000,
|
|
3534
4288
|
stopAfterClick: false
|
|
3535
4289
|
});
|
|
3536
|
-
|
|
4290
|
+
(0, utils.f8)(page, '[extclass="weui-desktop-dialog_simple"] .weui-desktop-dialog', "小店", '[extclass="weui-desktop-dialog_simple"] .weui-desktop-icon-btn.weui-desktop-dialog__close-btn', {
|
|
3537
4291
|
checkInterval: 1000,
|
|
3538
4292
|
stopAfterClick: true
|
|
3539
4293
|
});
|
|
@@ -3545,7 +4299,7 @@ var __webpack_exports__ = {};
|
|
|
3545
4299
|
await titleInstance.click();
|
|
3546
4300
|
await titleInstance.fill(params.settingInfo.wxAuthor);
|
|
3547
4301
|
}
|
|
3548
|
-
await
|
|
4302
|
+
await (0, utils.qN)(page, params.content);
|
|
3549
4303
|
await page.click(".js_editor_area .ProseMirror");
|
|
3550
4304
|
await page.keyboard.press("Control+V");
|
|
3551
4305
|
await page.locator("#article_setting_area").evaluate((node)=>node.scrollIntoView());
|
|
@@ -3555,8 +4309,8 @@ var __webpack_exports__ = {};
|
|
|
3555
4309
|
await titleInstance.fill(params.settingInfo.wxAbstract);
|
|
3556
4310
|
}
|
|
3557
4311
|
if (params.settingInfo.wxCover) {
|
|
3558
|
-
const fileName = (0,
|
|
3559
|
-
const cover = await (0,
|
|
4312
|
+
const fileName = (0, share_.getFilenameFromUrl)(params.settingInfo.wxCover);
|
|
4313
|
+
const cover = await (0, share_.downloadImage)(params.settingInfo.wxCover, external_node_path_default().join(tmpCachePath, fileName));
|
|
3560
4314
|
await page.locator("#article_setting_area #js_cover_area .select-cover__btn").hover();
|
|
3561
4315
|
await page.locator("#article_setting_area #js_cover_area .pop-opr__group-select-cover .pop-opr__list .pop-opr__item").filter({
|
|
3562
4316
|
hasText: "从图片库选择"
|
|
@@ -3742,7 +4496,7 @@ var __webpack_exports__ = {};
|
|
|
3742
4496
|
const articleId = await new Promise(async (resolve)=>{
|
|
3743
4497
|
const handleResponse = async (response)=>{
|
|
3744
4498
|
const url = response.url();
|
|
3745
|
-
const query =
|
|
4499
|
+
const query = (0, utils.hc)(url);
|
|
3746
4500
|
if (url.includes("/cgi-bin/operate_appmsg") && query?.t === "ajax-response") {
|
|
3747
4501
|
const jsonResponse = await response.json();
|
|
3748
4502
|
page.off("response", handleResponse);
|
|
@@ -3756,15 +4510,15 @@ var __webpack_exports__ = {};
|
|
|
3756
4510
|
await page.locator(".mass-send .mass-send__td-setting", {
|
|
3757
4511
|
hasText: "定时发表"
|
|
3758
4512
|
}).locator(".weui-desktop-switch__box").check();
|
|
3759
|
-
let dateD = Number(
|
|
3760
|
-
let nowD = Number(
|
|
4513
|
+
let dateD = Number(utils.Tx.format(params.settingInfo.timer, "d"));
|
|
4514
|
+
let nowD = Number(utils.Tx.format(Date.now(), "d"));
|
|
3761
4515
|
await page.locator(".mass-send__timer .weui-desktop-form__dropdown__dt").click();
|
|
3762
4516
|
const dropMenu = page.locator(".mass-send__timer .weui-desktop-dropdown-menu").locator(".weui-desktop-dropdown__list-ele");
|
|
3763
4517
|
await dropMenu.filter({
|
|
3764
|
-
hasText: dateD == nowD ? "今天" : dateD == nowD + 1 ? "明天" :
|
|
4518
|
+
hasText: dateD == nowD ? "今天" : dateD == nowD + 1 ? "明天" : utils.Tx.format(params.settingInfo.timer, "M月d日")
|
|
3765
4519
|
}).click();
|
|
3766
4520
|
const timeDropMenu = page.locator(".mass-send__timer .weui-desktop-picker__time:visible");
|
|
3767
|
-
await timeDropMenu.locator(".weui-desktop-form__input").fill(
|
|
4521
|
+
await timeDropMenu.locator(".weui-desktop-form__input").fill(utils.Tx.format(params.settingInfo.timer, "hh:mm"));
|
|
3768
4522
|
await timeDropMenu.locator("i.weui-desktop-icon__time").click();
|
|
3769
4523
|
}
|
|
3770
4524
|
});
|
|
@@ -3842,15 +4596,15 @@ var __webpack_exports__ = {};
|
|
|
3842
4596
|
}
|
|
3843
4597
|
await page.waitForTimeout(3000);
|
|
3844
4598
|
await page.close();
|
|
3845
|
-
return (0,
|
|
4599
|
+
return (0, share_.success)(articleId);
|
|
3846
4600
|
};
|
|
3847
4601
|
const weixinPublish = async (task, _params)=>{
|
|
3848
|
-
const params =
|
|
4602
|
+
const params = (0, utils.Tb)(_params, {
|
|
3849
4603
|
masssend: true
|
|
3850
4604
|
});
|
|
3851
4605
|
if ("rpa" === params.actionType) return weixinPublish_rpa_rpaAction(task, params);
|
|
3852
4606
|
if ("mockApi" === params.actionType) return weixinPublish_mock_mockAction(task, params);
|
|
3853
|
-
return
|
|
4607
|
+
return (0, utils.jo)(weixinPublish_mock_mockAction, weixinPublish_rpa_rpaAction)(task, params);
|
|
3854
4608
|
};
|
|
3855
4609
|
const saveDraft = (http, params, data)=>{
|
|
3856
4610
|
const formData = new (external_form_data_default())();
|
|
@@ -3870,7 +4624,7 @@ var __webpack_exports__ = {};
|
|
|
3870
4624
|
};
|
|
3871
4625
|
const weixinmpPublish_mock_mockAction = async (task, params)=>{
|
|
3872
4626
|
const tmpCachePath = task.getTmpPath();
|
|
3873
|
-
const http = new
|
|
4627
|
+
const http = new utils_http.e({
|
|
3874
4628
|
headers: {
|
|
3875
4629
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
3876
4630
|
origin: "https://mp.weixin.qq.com",
|
|
@@ -3881,12 +4635,12 @@ var __webpack_exports__ = {};
|
|
|
3881
4635
|
const cropResult = {};
|
|
3882
4636
|
if (params.banners && params.banners.length > 0) {
|
|
3883
4637
|
const images = await Promise.all(params.banners.map((url)=>{
|
|
3884
|
-
const fileName = (0,
|
|
3885
|
-
return (0,
|
|
4638
|
+
const fileName = (0, share_.getFilenameFromUrl)(url);
|
|
4639
|
+
return (0, share_.downloadImage)(url, external_node_path_default().join(tmpCachePath, fileName));
|
|
3886
4640
|
}));
|
|
3887
4641
|
for(let index = 0; index < images.length; index++){
|
|
3888
4642
|
const image = images[index];
|
|
3889
|
-
const fileState =
|
|
4643
|
+
const fileState = (0, utils.H8)(image);
|
|
3890
4644
|
const formData = new (external_form_data_default())();
|
|
3891
4645
|
formData.append("id", `WU_FILE_${index + 1}`);
|
|
3892
4646
|
formData.append("name", fileState.name);
|
|
@@ -3941,7 +4695,7 @@ var __webpack_exports__ = {};
|
|
|
3941
4695
|
];
|
|
3942
4696
|
cropFormData.append("size_count", cropRatios.length);
|
|
3943
4697
|
const cropCoordinates = cropRatios.map((r, idx)=>{
|
|
3944
|
-
const cropCoordinate =
|
|
4698
|
+
const cropCoordinate = (0, utils.e0)(colorResponseData.width, colorResponseData.height, r);
|
|
3945
4699
|
cropFormData.append(`size${idx}_x1`, cropCoordinate.x1);
|
|
3946
4700
|
cropFormData.append(`size${idx}_y1`, cropCoordinate.y1);
|
|
3947
4701
|
cropFormData.append(`size${idx}_x2`, cropCoordinate.x2);
|
|
@@ -3994,7 +4748,7 @@ var __webpack_exports__ = {};
|
|
|
3994
4748
|
content0: params.content,
|
|
3995
4749
|
share_imageinfo0: JSON.stringify(shareImageInfos)
|
|
3996
4750
|
});
|
|
3997
|
-
return (0,
|
|
4751
|
+
return (0, share_.success)(res);
|
|
3998
4752
|
};
|
|
3999
4753
|
const sourceText = {
|
|
4000
4754
|
ai: "内容由AI生成",
|
|
@@ -4031,8 +4785,8 @@ var __webpack_exports__ = {};
|
|
|
4031
4785
|
const container = page.locator("#editor_pannel");
|
|
4032
4786
|
if (params.banners && params.banners.length > 0) {
|
|
4033
4787
|
const images = await Promise.all(params.banners.map((url)=>{
|
|
4034
|
-
const fileName = (0,
|
|
4035
|
-
return (0,
|
|
4788
|
+
const fileName = (0, share_.getFilenameFromUrl)(url);
|
|
4789
|
+
return (0, share_.downloadImage)(url, external_node_path_default().join(tmpCachePath, fileName));
|
|
4036
4790
|
}));
|
|
4037
4791
|
const fileChooserPromise = page.waitForEvent("filechooser");
|
|
4038
4792
|
await container.locator(".image-selector__add").hover();
|
|
@@ -4057,72 +4811,20 @@ var __webpack_exports__ = {};
|
|
|
4057
4811
|
if (params.banners && params.banners.length > 0) await page.waitForSelector("#editor_pannel .image-selector .image-selector__preview");
|
|
4058
4812
|
if (params.draft) await container.locator("#bottom_main #js_submit button").click();
|
|
4059
4813
|
else await container.locator("#bottom_main #js_send button").click();
|
|
4060
|
-
return (0,
|
|
4814
|
+
return (0, share_.success)("");
|
|
4061
4815
|
};
|
|
4062
4816
|
const weixinmpPublish = async (task, params)=>{
|
|
4063
4817
|
if ("rpa" === params.actionType) return weixinmpPublish_rpa_rpaAction(task, params);
|
|
4064
4818
|
if ("mockApi" === params.actionType) return weixinmpPublish_mock_mockAction(task, params);
|
|
4065
|
-
return
|
|
4819
|
+
return (0, utils.jo)(weixinmpPublish_mock_mockAction, weixinmpPublish_rpa_rpaAction)(task, params);
|
|
4066
4820
|
};
|
|
4067
|
-
const external_node_buffer_namespaceObject = require("node:buffer");
|
|
4068
|
-
const external_node_crypto_namespaceObject = require("node:crypto");
|
|
4069
|
-
var external_node_crypto_default = /*#__PURE__*/ __webpack_require__.n(external_node_crypto_namespaceObject);
|
|
4070
|
-
class XsEncrypt {
|
|
4071
|
-
async encryptMD5(url) {
|
|
4072
|
-
return external_node_crypto_default().createHash("md5").update(url, "utf8").digest("hex");
|
|
4073
|
-
}
|
|
4074
|
-
async encryptText(text) {
|
|
4075
|
-
const textEncoded = external_node_buffer_namespaceObject.Buffer.from(text).toString("base64");
|
|
4076
|
-
const cipher = external_node_crypto_default().createCipheriv("aes-128-cbc", new Uint8Array(this.keyBytes), new Uint8Array(this.iv));
|
|
4077
|
-
const ciphertext = cipher.update(textEncoded, "utf8", "base64");
|
|
4078
|
-
return ciphertext + cipher.final("base64");
|
|
4079
|
-
}
|
|
4080
|
-
async base64ToHex(encodedData) {
|
|
4081
|
-
const decodedData = external_node_buffer_namespaceObject.Buffer.from(encodedData, "base64");
|
|
4082
|
-
return decodedData.toString("hex");
|
|
4083
|
-
}
|
|
4084
|
-
async encryptPayload(payload, platform) {
|
|
4085
|
-
const hexPayload = await this.base64ToHex(payload);
|
|
4086
|
-
const obj = {
|
|
4087
|
-
signSvn: "56",
|
|
4088
|
-
signType: "x2",
|
|
4089
|
-
appID: platform,
|
|
4090
|
-
signVersion: "1",
|
|
4091
|
-
payload: hexPayload
|
|
4092
|
-
};
|
|
4093
|
-
const jsonString = JSON.stringify(obj, null, 0);
|
|
4094
|
-
return external_node_buffer_namespaceObject.Buffer.from(jsonString).toString("base64");
|
|
4095
|
-
}
|
|
4096
|
-
async encryptXs(url, a1, ts, platform = "xhs-pc-web") {
|
|
4097
|
-
const text = `x1=${await this.encryptMD5(`url=${url}`)};x2=0|0|0|1|0|0|1|0|0|0|1|0|0|0|0|1|0|0|0;x3=${a1};x4=${ts};`;
|
|
4098
|
-
return `XYW_${await this.encryptPayload(await this.encryptText(text), platform)}`;
|
|
4099
|
-
}
|
|
4100
|
-
dumps(...rest) {
|
|
4101
|
-
const [data, replacer = null, space = 0] = rest;
|
|
4102
|
-
return JSON.stringify(data, replacer, space).replace(/\n/g, "").replace(/":\s+"/g, '":"');
|
|
4103
|
-
}
|
|
4104
|
-
constructor(){
|
|
4105
|
-
this.words = [
|
|
4106
|
-
929260340,
|
|
4107
|
-
1633971297,
|
|
4108
|
-
895580464,
|
|
4109
|
-
925905270
|
|
4110
|
-
];
|
|
4111
|
-
this.keyBytes = external_node_buffer_namespaceObject.Buffer.concat(this.words.map((word)=>new Uint8Array(external_node_buffer_namespaceObject.Buffer.from([
|
|
4112
|
-
word >> 24 & 0xff,
|
|
4113
|
-
word >> 16 & 0xff,
|
|
4114
|
-
word >> 8 & 0xff,
|
|
4115
|
-
0xff & word
|
|
4116
|
-
]))));
|
|
4117
|
-
this.iv = external_node_buffer_namespaceObject.Buffer.from("4uzjr7mbsibcaldp", "utf8");
|
|
4118
|
-
}
|
|
4119
|
-
}
|
|
4120
4821
|
const xiaohongshuPublish_mock_errnoMap = {
|
|
4121
4822
|
915: "所属C端账号手机号被修改,请重新登录",
|
|
4823
|
+
914: "所属C端账号密码被修改,请重新登录",
|
|
4122
4824
|
903: "账户已登出,需重新登陆重试!",
|
|
4123
4825
|
902: "登录已过期,请重新登录!"
|
|
4124
4826
|
};
|
|
4125
|
-
const
|
|
4827
|
+
const mock_xsEncrypt = new xhsXsEncrypt.H();
|
|
4126
4828
|
const xiaohongshuPublish_mock_mockAction = async (task, params)=>{
|
|
4127
4829
|
const tmpCachePath = task.getTmpPath();
|
|
4128
4830
|
const a1Cookie = params.cookies.find((it)=>"a1" === it.name)?.value;
|
|
@@ -4131,7 +4833,7 @@ var __webpack_exports__ = {};
|
|
|
4131
4833
|
message: "账号数据异常,请重新绑定账号后重试。",
|
|
4132
4834
|
data: ""
|
|
4133
4835
|
};
|
|
4134
|
-
const http = new
|
|
4836
|
+
const http = new utils_http.e({
|
|
4135
4837
|
headers: {
|
|
4136
4838
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
4137
4839
|
origin: "https://creator.xiaohongshu.com",
|
|
@@ -4152,7 +4854,7 @@ var __webpack_exports__ = {};
|
|
|
4152
4854
|
});
|
|
4153
4855
|
const fetchCoverUrl = `/api/media/v1/upload/creator/permit?biz_name=spectrum&scene=image&file_count=${params.banners.length}&version=1&source=web`;
|
|
4154
4856
|
const xt = Date.now().toString();
|
|
4155
|
-
const xs = await
|
|
4857
|
+
const xs = await mock_xsEncrypt.encryptXs(fetchCoverUrl, a1Cookie, xt);
|
|
4156
4858
|
const coverIdInfo = await http.api({
|
|
4157
4859
|
method: "get",
|
|
4158
4860
|
baseURL: "https://creator.xiaohongshu.com",
|
|
@@ -4171,8 +4873,8 @@ var __webpack_exports__ = {};
|
|
|
4171
4873
|
data: ""
|
|
4172
4874
|
};
|
|
4173
4875
|
const uploadFile = async (url, index)=>{
|
|
4174
|
-
const fileName = (0,
|
|
4175
|
-
const localUrl = await (0,
|
|
4876
|
+
const fileName = (0, share_.getFilenameFromUrl)(url);
|
|
4877
|
+
const localUrl = await (0, share_.downloadImage)(url, external_node_path_default().join(tmpCachePath, fileName));
|
|
4176
4878
|
const ossFileId = coverIds[index];
|
|
4177
4879
|
const fileBuffer = external_node_fs_default().readFileSync(localUrl);
|
|
4178
4880
|
await http.api({
|
|
@@ -4195,9 +4897,9 @@ var __webpack_exports__ = {};
|
|
|
4195
4897
|
const topicData = {
|
|
4196
4898
|
topic_names: topic["name"]
|
|
4197
4899
|
};
|
|
4198
|
-
const topicDataStr =
|
|
4900
|
+
const topicDataStr = mock_xsEncrypt.dumps(topicData);
|
|
4199
4901
|
const publishXt = Date.now().toString();
|
|
4200
|
-
const publishXs = await
|
|
4902
|
+
const publishXs = await mock_xsEncrypt.encryptXs(`/web_api/sns/capa/postgw/topic/batch_customized${topicDataStr}`, a1Cookie, publishXt);
|
|
4201
4903
|
let createTopic = await http.api({
|
|
4202
4904
|
method: "POST",
|
|
4203
4905
|
url: "https://edith.xiaohongshu.com/web_api/sns/capa/postgw/topic/batch_customized",
|
|
@@ -4296,9 +4998,9 @@ var __webpack_exports__ = {};
|
|
|
4296
4998
|
} : {}
|
|
4297
4999
|
};
|
|
4298
5000
|
publishData.common.business_binds = JSON.stringify(business_binds);
|
|
4299
|
-
const publishDataStr =
|
|
5001
|
+
const publishDataStr = mock_xsEncrypt.dumps(publishData);
|
|
4300
5002
|
const publishXt = Date.now().toString();
|
|
4301
|
-
const publishXs = await
|
|
5003
|
+
const publishXs = await mock_xsEncrypt.encryptXs(`/web_api/sns/v2/note${publishDataStr}`, a1Cookie, publishXt);
|
|
4302
5004
|
const publishResult = await http.api({
|
|
4303
5005
|
method: "post",
|
|
4304
5006
|
url: "https://edith.xiaohongshu.com/web_api/sns/v2/note",
|
|
@@ -4309,9 +5011,9 @@ var __webpack_exports__ = {};
|
|
|
4309
5011
|
},
|
|
4310
5012
|
defaultErrorMsg: "文章发布异常,请稍后重试。"
|
|
4311
5013
|
});
|
|
4312
|
-
return (0,
|
|
5014
|
+
return (0, share_.success)(publishResult.data?.id);
|
|
4313
5015
|
};
|
|
4314
|
-
const rpa_xsEncrypt = new
|
|
5016
|
+
const rpa_xsEncrypt = new xhsXsEncrypt.H();
|
|
4315
5017
|
const xiaohongshuPublish_rpa_rpaAction = async (task, params)=>{
|
|
4316
5018
|
const commonCookies = {
|
|
4317
5019
|
path: "/",
|
|
@@ -4420,8 +5122,8 @@ var __webpack_exports__ = {};
|
|
|
4420
5122
|
hasText: /^上传图文$/
|
|
4421
5123
|
}).click();
|
|
4422
5124
|
const images = await Promise.all(params.banners.map((url)=>{
|
|
4423
|
-
const fileName = (0,
|
|
4424
|
-
return (0,
|
|
5125
|
+
const fileName = (0, share_.getFilenameFromUrl)(url);
|
|
5126
|
+
return (0, share_.downloadImage)(url, external_node_path_default().join(tmpCachePath, fileName));
|
|
4425
5127
|
}));
|
|
4426
5128
|
const fileChooserPromise = page.waitForEvent("filechooser");
|
|
4427
5129
|
await page.getByRole("textbox").click();
|
|
@@ -4519,15 +5221,15 @@ var __webpack_exports__ = {};
|
|
|
4519
5221
|
page.locator(".submit .publishBtn").click();
|
|
4520
5222
|
});
|
|
4521
5223
|
await page.close();
|
|
4522
|
-
return (0,
|
|
5224
|
+
return (0, share_.success)(response);
|
|
4523
5225
|
};
|
|
4524
5226
|
const xiaohongshuPublish = async (task, params)=>{
|
|
4525
5227
|
if ("rpa" === params.actionType) return xiaohongshuPublish_rpa_rpaAction(task, params);
|
|
4526
5228
|
if ("mockApi" === params.actionType) return xiaohongshuPublish_mock_mockAction(task, params);
|
|
4527
|
-
return
|
|
5229
|
+
return (0, utils.jo)(xiaohongshuPublish_mock_mockAction, xiaohongshuPublish_rpa_rpaAction)(task, params);
|
|
4528
5230
|
};
|
|
4529
5231
|
var package_namespaceObject = {
|
|
4530
|
-
i8: "1.2.
|
|
5232
|
+
i8: "1.2.13"
|
|
4531
5233
|
};
|
|
4532
5234
|
class Action {
|
|
4533
5235
|
constructor(task){
|
|
@@ -4540,15 +5242,33 @@ var __webpack_exports__ = {};
|
|
|
4540
5242
|
try {
|
|
4541
5243
|
responseData = await func(this.task, params);
|
|
4542
5244
|
} catch (error) {
|
|
4543
|
-
responseData =
|
|
5245
|
+
responseData = utils_http.e.handleApiError(error);
|
|
4544
5246
|
}
|
|
4545
5247
|
if (200 === responseData.code) this.task.logger.info(`${func.name} action params error`, responseData);
|
|
4546
5248
|
else if (0 !== responseData.code) {
|
|
4547
|
-
this.task.logger.error(responseData.message || `${func.name} 执行失败`,
|
|
5249
|
+
this.task.logger.error(responseData.message || `${func.name} 执行失败`, (0, utils.n)(responseData.data), responseData.extra);
|
|
4548
5250
|
this.task.logger.info(`${func.name} action failed`);
|
|
4549
5251
|
} else this.task.logger.info(`${func.name} action success`);
|
|
4550
5252
|
return responseData;
|
|
4551
5253
|
}
|
|
5254
|
+
FetchArticles(params) {
|
|
5255
|
+
return this.bindTask(FetchArticles, params);
|
|
5256
|
+
}
|
|
5257
|
+
SearchAccountInfo(params) {
|
|
5258
|
+
return this.bindTask(searchAccountInfo.A, params);
|
|
5259
|
+
}
|
|
5260
|
+
TTSessionCheck(params) {
|
|
5261
|
+
return this.bindTask(TTSessionCheck, params);
|
|
5262
|
+
}
|
|
5263
|
+
WxSessionCheck(params) {
|
|
5264
|
+
return this.bindTask(WxSessionCheck, params);
|
|
5265
|
+
}
|
|
5266
|
+
XhsSessionCheck(params) {
|
|
5267
|
+
return this.bindTask(XhsSessionCheck, params);
|
|
5268
|
+
}
|
|
5269
|
+
BjhSessionCheck(params) {
|
|
5270
|
+
return this.bindTask(BjhSessionCheck, params);
|
|
5271
|
+
}
|
|
4552
5272
|
searchToutiaoTopicList(params) {
|
|
4553
5273
|
return this.bindTask(searchToutiaoTopicList, params);
|
|
4554
5274
|
}
|
|
@@ -4573,6 +5293,9 @@ var __webpack_exports__ = {};
|
|
|
4573
5293
|
getToutiaoConfig(params) {
|
|
4574
5294
|
return this.bindTask(getToutiaoConfig, params);
|
|
4575
5295
|
}
|
|
5296
|
+
getWeixinConfig(params) {
|
|
5297
|
+
return this.bindTask(getWeixinConfig, params);
|
|
5298
|
+
}
|
|
4576
5299
|
getBaijiahaoConfig(params) {
|
|
4577
5300
|
return this.bindTask(getBaijiahaoConfig, params);
|
|
4578
5301
|
}
|