@iflyrpa/actions 4.0.0-beta.2 → 4.0.0-beta.4
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/bundle.js +122 -44
- package/dist/bundle.js.map +1 -1
- package/dist/index.js +122 -44
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +122 -44
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/bundle.js
CHANGED
|
@@ -8736,7 +8736,7 @@ var __webpack_exports__ = {};
|
|
|
8736
8736
|
var package_namespaceObject = {
|
|
8737
8737
|
i8: "0.1.0"
|
|
8738
8738
|
};
|
|
8739
|
-
var package_namespaceObject_0 = JSON.parse('{"i8":"
|
|
8739
|
+
var package_namespaceObject_0 = JSON.parse('{"i8":"3.0.7-beta.3"}');
|
|
8740
8740
|
const external_node_fs_namespaceObject = require("node:fs");
|
|
8741
8741
|
var external_node_fs_default = /*#__PURE__*/ __webpack_require__.n(external_node_fs_namespaceObject);
|
|
8742
8742
|
const external_node_http_namespaceObject = require("node:http");
|
|
@@ -23353,6 +23353,13 @@ var __webpack_exports__ = {};
|
|
|
23353
23353
|
}
|
|
23354
23354
|
};
|
|
23355
23355
|
if (foundError) Object.assign(errorResponse, foundError);
|
|
23356
|
+
if (error.response?.status === 403) {
|
|
23357
|
+
this.logger?.warn(`[403 详细信息] URL: ${error.config?.url}`);
|
|
23358
|
+
this.logger?.warn(`[403 响应头] ${JSON.stringify(error.response?.headers || {})}`);
|
|
23359
|
+
this.logger?.warn(`[403 响应体] ${JSON.stringify(error.response?.data || null)}`);
|
|
23360
|
+
const verifyDecision = error.response?.headers?.["x-tt-verify-passport-decision"];
|
|
23361
|
+
if (verifyDecision) this.logger?.warn(`[403 验证决策] x-tt-verify-passport-decision: ${verifyDecision}`);
|
|
23362
|
+
}
|
|
23356
23363
|
if (error.response?.data) {
|
|
23357
23364
|
if ("object" == typeof error.response.data) {
|
|
23358
23365
|
const serverError = error.response.data;
|
|
@@ -34692,21 +34699,13 @@ var __webpack_exports__ = {};
|
|
|
34692
34699
|
console.log("拦截器收到响应:", JSON.stringify(response.data));
|
|
34693
34700
|
task.logger.info(`拦截器收到响应response.headers: ${JSON.stringify(response.headers)} `);
|
|
34694
34701
|
task.logger.info(`拦截器收到响应response.data: ${JSON.stringify(response.data)} `);
|
|
34695
|
-
task.logger.info(`拦截器收到响应response.data类型: ${typeof response.data}, 值: ${JSON.stringify(response.data)}`);
|
|
34696
34702
|
decision = parseVerifyPassportDecision(response.headers["x-tt-verify-passport-decision"]);
|
|
34697
|
-
task.logger.info(`解析后的decision: ${JSON.stringify(decision)}`);
|
|
34698
34703
|
if (needsVerification(decision)) {
|
|
34699
|
-
task.logger.info(
|
|
34700
|
-
task.logger.info("拦截器即将return,不抛错");
|
|
34701
|
-
return;
|
|
34702
|
-
}
|
|
34703
|
-
task.logger.info("不需要验证,继续检查response.data");
|
|
34704
|
-
if (!response || !response.data) {
|
|
34705
|
-
task.logger.info("response或response.data为空,拦截器return");
|
|
34704
|
+
task.logger.info(`需要验证: ${JSON.stringify(decision)}`);
|
|
34706
34705
|
return;
|
|
34707
34706
|
}
|
|
34707
|
+
if (!response || !response.data) return;
|
|
34708
34708
|
const responseData = response.data;
|
|
34709
|
-
task.logger.info(`responseData.status_code: ${responseData?.status_code}`);
|
|
34710
34709
|
if (response && responseData?.status_code && 0 !== responseData.status_code) {
|
|
34711
34710
|
const errorCode = 4 === responseData.status_code ? 500 : responseData.status_code;
|
|
34712
34711
|
if (4 === responseData.status_code) task.logger.warn(`抖音服务器错误 status_code: 4,映射为 500 触发重试。原始响应: ${JSON.stringify(responseData)}`);
|
|
@@ -34803,9 +34802,30 @@ var __webpack_exports__ = {};
|
|
|
34803
34802
|
retryDelay: 2000
|
|
34804
34803
|
});
|
|
34805
34804
|
task.logger.info("========== api调用完成 ==========");
|
|
34806
|
-
task.logger.info(`
|
|
34807
|
-
|
|
34808
|
-
|
|
34805
|
+
task.logger.info(`decision值: ${JSON.stringify(decision)}, needsVerification(decision): ${needsVerification(decision)}`);
|
|
34806
|
+
if (needsVerification(decision)) {
|
|
34807
|
+
const details = [
|
|
34808
|
+
publishResult.status_msg,
|
|
34809
|
+
decision?.verify_title,
|
|
34810
|
+
decision?.verify_desc
|
|
34811
|
+
].filter(Boolean).join(" ");
|
|
34812
|
+
const message = `图文发布失败,原因:${details}${task.debug ? ` ${http.proxyInfo}` : ""}`;
|
|
34813
|
+
task.logger.warn(`TaskId:${task.taskId},检测到需要验证,准备返回验证信息`);
|
|
34814
|
+
const mockData = {
|
|
34815
|
+
state: types_TaskState.FAILED,
|
|
34816
|
+
error: message,
|
|
34817
|
+
result: {
|
|
34818
|
+
data: decision,
|
|
34819
|
+
uploadedImgList: JSON.stringify(publishData.item.common.images)
|
|
34820
|
+
}
|
|
34821
|
+
};
|
|
34822
|
+
await updateTaskState?.(mockData);
|
|
34823
|
+
return {
|
|
34824
|
+
code: 0,
|
|
34825
|
+
data: mockData,
|
|
34826
|
+
message: "操作成功"
|
|
34827
|
+
};
|
|
34828
|
+
}
|
|
34809
34829
|
task.logger.info("不需要验证,继续正常流程");
|
|
34810
34830
|
reportLogger({
|
|
34811
34831
|
token: params.huiwenToken || "",
|
|
@@ -35502,15 +35522,41 @@ var __webpack_exports__ = {};
|
|
|
35502
35522
|
}
|
|
35503
35523
|
task.logger?.info("准备发布...");
|
|
35504
35524
|
await page.waitForTimeout(1000);
|
|
35505
|
-
const
|
|
35525
|
+
const result = await new Promise((resolve, reject)=>{
|
|
35506
35526
|
const handleResponse = async (res)=>{
|
|
35507
35527
|
if (res.url().includes("/web/api/media/aweme/create_v2")) {
|
|
35508
35528
|
task.logger?.info("匹配到发布接口响应");
|
|
35529
|
+
let decision = null;
|
|
35530
|
+
try {
|
|
35531
|
+
const headers = await res.allHeaders();
|
|
35532
|
+
decision = parseVerifyPassportDecision(headers["x-tt-verify-passport-decision"]);
|
|
35533
|
+
} catch (error) {
|
|
35534
|
+
task.logger?.warn(`解析验证决策头失败: ${error}`);
|
|
35535
|
+
}
|
|
35509
35536
|
const jsonResponse = await res.json();
|
|
35510
35537
|
task.logger?.info(`发布接口响应数据: ${JSON.stringify(jsonResponse)}`);
|
|
35511
35538
|
page.off("response", handleResponse);
|
|
35512
|
-
if (
|
|
35513
|
-
|
|
35539
|
+
if (needsVerification(decision)) {
|
|
35540
|
+
task.logger?.warn("检测到需要二次验证,文章未真正发布");
|
|
35541
|
+
resolve({
|
|
35542
|
+
itemId: "",
|
|
35543
|
+
decision
|
|
35544
|
+
});
|
|
35545
|
+
return;
|
|
35546
|
+
}
|
|
35547
|
+
if (jsonResponse?.status_code !== 0) {
|
|
35548
|
+
reject(new Error(jsonResponse?.status_msg || "发布失败"));
|
|
35549
|
+
return;
|
|
35550
|
+
}
|
|
35551
|
+
const itemId = jsonResponse?.data?.item_id || jsonResponse?.item_id || "";
|
|
35552
|
+
if (!itemId) {
|
|
35553
|
+
reject(new Error(jsonResponse?.status_msg || "发布异常:未返回作品ID,文章可能未真正发布"));
|
|
35554
|
+
return;
|
|
35555
|
+
}
|
|
35556
|
+
resolve({
|
|
35557
|
+
itemId,
|
|
35558
|
+
decision: null
|
|
35559
|
+
});
|
|
35514
35560
|
}
|
|
35515
35561
|
};
|
|
35516
35562
|
page.on("response", handleResponse);
|
|
@@ -35532,20 +35578,42 @@ var __webpack_exports__ = {};
|
|
|
35532
35578
|
await page.close();
|
|
35533
35579
|
return null;
|
|
35534
35580
|
});
|
|
35535
|
-
if (!
|
|
35581
|
+
if (!result) return {
|
|
35536
35582
|
code: 414,
|
|
35537
35583
|
message: "发布失败",
|
|
35538
35584
|
data: ""
|
|
35539
35585
|
};
|
|
35540
|
-
|
|
35586
|
+
if (needsVerification(result.decision)) {
|
|
35587
|
+
const decision = result.decision;
|
|
35588
|
+
const details = [
|
|
35589
|
+
decision?.verify_title,
|
|
35590
|
+
decision?.verify_desc
|
|
35591
|
+
].filter(Boolean).join(" ");
|
|
35592
|
+
const message = `发布失败,需要二次验证${details ? `:${details}` : ""}`;
|
|
35593
|
+
task.logger?.warn(message);
|
|
35594
|
+
await updateTaskState?.({
|
|
35595
|
+
state: types_TaskState.FAILED,
|
|
35596
|
+
error: message,
|
|
35597
|
+
result: {
|
|
35598
|
+
data: decision
|
|
35599
|
+
}
|
|
35600
|
+
});
|
|
35601
|
+
await page.close();
|
|
35602
|
+
return {
|
|
35603
|
+
code: 414,
|
|
35604
|
+
message,
|
|
35605
|
+
data: ""
|
|
35606
|
+
};
|
|
35607
|
+
}
|
|
35608
|
+
task.logger?.info(`✓ 发布成功,item_id: ${result.itemId}`);
|
|
35541
35609
|
await updateTaskState?.({
|
|
35542
35610
|
state: types_TaskState.SUCCESS,
|
|
35543
35611
|
result: {
|
|
35544
|
-
response
|
|
35612
|
+
response: result.itemId
|
|
35545
35613
|
}
|
|
35546
35614
|
});
|
|
35547
35615
|
await page.close();
|
|
35548
|
-
return success(
|
|
35616
|
+
return success(result.itemId);
|
|
35549
35617
|
};
|
|
35550
35618
|
const DouyinPublishParamsSchema = ActionCommonParamsSchema.extend({
|
|
35551
35619
|
title: classic_schemas_string(),
|
|
@@ -36325,26 +36393,26 @@ var __webpack_exports__ = {};
|
|
|
36325
36393
|
const http = new Http({
|
|
36326
36394
|
headers: {
|
|
36327
36395
|
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
36328
|
-
referer: "https://mp.toutiao.com/profile_v4/graphic/publish"
|
|
36396
|
+
referer: "https://mp.toutiao.com/profile_v4/graphic/publish",
|
|
36397
|
+
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
|
|
36398
|
+
}
|
|
36399
|
+
});
|
|
36400
|
+
const totalData = await http.api({
|
|
36401
|
+
method: "get",
|
|
36402
|
+
url: "https://mp.toutiao.com/mp/fe_api/home/merge_v2",
|
|
36403
|
+
params: {
|
|
36404
|
+
app_id: 1231
|
|
36405
|
+
}
|
|
36406
|
+
});
|
|
36407
|
+
await new Promise((r)=>setTimeout(r, 1000));
|
|
36408
|
+
const contentDataYesterday = await http.api({
|
|
36409
|
+
method: "get",
|
|
36410
|
+
url: "https://mp.toutiao.com/mp/agw/statistic/v2/content_stat",
|
|
36411
|
+
params: {
|
|
36412
|
+
type: 0,
|
|
36413
|
+
app_id: 1231
|
|
36329
36414
|
}
|
|
36330
36415
|
});
|
|
36331
|
-
const [totalData, contentDataYesterday] = await Promise.all([
|
|
36332
|
-
http.api({
|
|
36333
|
-
method: "get",
|
|
36334
|
-
url: "https://mp.toutiao.com/mp/fe_api/home/merge_v2",
|
|
36335
|
-
params: {
|
|
36336
|
-
app_id: 1231
|
|
36337
|
-
}
|
|
36338
|
-
}),
|
|
36339
|
-
http.api({
|
|
36340
|
-
method: "get",
|
|
36341
|
-
url: "https://mp.toutiao.com/mp/agw/statistic/v2/content_stat",
|
|
36342
|
-
params: {
|
|
36343
|
-
type: 0,
|
|
36344
|
-
app_id: 1231
|
|
36345
|
-
}
|
|
36346
|
-
})
|
|
36347
|
-
]);
|
|
36348
36416
|
const isSuccess = !!(totalData?.data?.statistic && contentDataYesterday?.author_stat);
|
|
36349
36417
|
if (!isSuccess || !totalData?.data || !contentDataYesterday?.author_stat) return types_errorResponse(totalData?.message || contentDataYesterday?.message || "头条号数据获取失败,请检查Cookie是否有效", 414);
|
|
36350
36418
|
const ttData = {
|
|
@@ -40521,8 +40589,10 @@ var __webpack_exports__ = {};
|
|
|
40521
40589
|
tuwen_wtt_trans_flag: params.settingInfo?.toutiaoTransWtt ? "2" : "0",
|
|
40522
40590
|
info_source: sourceData,
|
|
40523
40591
|
...location ? {
|
|
40524
|
-
|
|
40525
|
-
|
|
40592
|
+
manual_selected_city: JSON.stringify({
|
|
40593
|
+
city: location.label,
|
|
40594
|
+
city_code: location.value
|
|
40595
|
+
})
|
|
40526
40596
|
} : null,
|
|
40527
40597
|
...params.settingInfo?.toutiaoCollectionId ? {
|
|
40528
40598
|
want_join_collection_id: params.settingInfo.toutiaoCollectionId
|
|
@@ -40572,6 +40642,12 @@ var __webpack_exports__ = {};
|
|
|
40572
40642
|
claim_exclusive: toutiaoExclusive ? toutiaoExclusive : toutiaoOriginal?.includes("exclusive") ? 1 : 0
|
|
40573
40643
|
};
|
|
40574
40644
|
task._timerRecord.PrePublish = Date.now();
|
|
40645
|
+
task.logger.info(`[toutiaoPublish] ${"draft" === params.saveType ? "同步草稿" : "发布文章"}参数`, {
|
|
40646
|
+
saveType: params.saveType,
|
|
40647
|
+
title: params.title,
|
|
40648
|
+
extra: extraData,
|
|
40649
|
+
publishData
|
|
40650
|
+
});
|
|
40575
40651
|
const msToken = params.cookies.find((it)=>"msToken" === it.name)?.value;
|
|
40576
40652
|
let publishOption = {};
|
|
40577
40653
|
if (msToken) {
|
|
@@ -41767,8 +41843,8 @@ var __webpack_exports__ = {};
|
|
|
41767
41843
|
headers
|
|
41768
41844
|
});
|
|
41769
41845
|
const proxyHttp = new Http(...args);
|
|
41770
|
-
|
|
41771
|
-
const responseData = response
|
|
41846
|
+
const baseRespFinder = (response)=>{
|
|
41847
|
+
const responseData = response?.data;
|
|
41772
41848
|
const msgType = "draft" === params.saveType ? "同步" : "发布";
|
|
41773
41849
|
if (response && responseData?.base_resp && 0 !== responseData.base_resp.ret && !ignoreErrno.includes(responseData.base_resp.ret)) {
|
|
41774
41850
|
const errmsg = weixinPublish_mock_errnoMap[responseData.base_resp.ret] || response.config.defaultErrorMsg || responseData.base_resp.err_msg || `文章${msgType}异常,请稍后重试。`;
|
|
@@ -41778,7 +41854,9 @@ var __webpack_exports__ = {};
|
|
|
41778
41854
|
data: responseData
|
|
41779
41855
|
};
|
|
41780
41856
|
}
|
|
41781
|
-
}
|
|
41857
|
+
};
|
|
41858
|
+
http.addResponseInterceptor(baseRespFinder);
|
|
41859
|
+
proxyHttp.addResponseInterceptor(baseRespFinder);
|
|
41782
41860
|
await http.api({
|
|
41783
41861
|
method: "get",
|
|
41784
41862
|
url: "https://mp.weixin.qq.com/cgi-bin/appmsgpublish",
|