@iflyrpa/actions 4.0.0-beta.15 → 4.0.0-beta.17
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 +80 -23
- package/dist/bundle.js.map +1 -1
- package/dist/index.js +80 -23
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +80 -23
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -5489,7 +5489,7 @@ var __webpack_exports__ = {};
|
|
|
5489
5489
|
});
|
|
5490
5490
|
const package_json_namespaceObject = require("@iflyrpa/share/package.json");
|
|
5491
5491
|
var package_json_default = /*#__PURE__*/ __webpack_require__.n(package_json_namespaceObject);
|
|
5492
|
-
var package_namespaceObject = JSON.parse('{"i8":"4.0.0-beta.
|
|
5492
|
+
var package_namespaceObject = JSON.parse('{"i8":"4.0.0-beta.16"}');
|
|
5493
5493
|
const share_namespaceObject = require("@iflyrpa/share");
|
|
5494
5494
|
const external_node_fs_namespaceObject = require("node:fs");
|
|
5495
5495
|
var external_node_fs_default = /*#__PURE__*/ __webpack_require__.n(external_node_fs_namespaceObject);
|
|
@@ -5590,7 +5590,8 @@ var __webpack_exports__ = {};
|
|
|
5590
5590
|
url: error.config?.url,
|
|
5591
5591
|
isProxyRequest: !!(error.config && (error.config.httpAgent || error.config.httpsAgent)),
|
|
5592
5592
|
params: error.config?.params,
|
|
5593
|
-
data: error.config?.data
|
|
5593
|
+
data: error.config?.data,
|
|
5594
|
+
serverDate: error.response?.headers?.date
|
|
5594
5595
|
}
|
|
5595
5596
|
};
|
|
5596
5597
|
if (foundError) Object.assign(errorResponse, foundError);
|
|
@@ -5668,7 +5669,7 @@ var __webpack_exports__ = {};
|
|
|
5668
5669
|
try {
|
|
5669
5670
|
this.proxyInfo = agent ? `${agent.ip}:${agent.port}` : void 0;
|
|
5670
5671
|
const controller = new AbortController();
|
|
5671
|
-
const timeoutId = setTimeout(()=>controller.abort(), reqTimeout);
|
|
5672
|
+
const timeoutId = setTimeout(()=>controller.abort(), reqTimeout + 500);
|
|
5672
5673
|
const response = await this.apiClient({
|
|
5673
5674
|
...config,
|
|
5674
5675
|
timeout: reqTimeout,
|
|
@@ -11933,6 +11934,7 @@ var __webpack_exports__ = {};
|
|
|
11933
11934
|
return acc;
|
|
11934
11935
|
}, {});
|
|
11935
11936
|
const loginBaseXsHeader = sessionCheck_xsEncrypt.signHeadersGet(loginBasePath, recordCookie, "xhs-pc-web", null);
|
|
11937
|
+
const baseInfoStart = Date.now();
|
|
11936
11938
|
const _baseInfo = http.api({
|
|
11937
11939
|
method: "get",
|
|
11938
11940
|
baseURL: "https://creator.xiaohongshu.com",
|
|
@@ -11941,23 +11943,43 @@ var __webpack_exports__ = {};
|
|
|
11941
11943
|
}, {
|
|
11942
11944
|
retries: 3,
|
|
11943
11945
|
retryDelay: 20,
|
|
11944
|
-
timeout:
|
|
11945
|
-
}).catch((e)=>
|
|
11946
|
+
timeout: 5000
|
|
11947
|
+
}).catch((e)=>{
|
|
11948
|
+
const clientTimestamp = Date.now();
|
|
11949
|
+
const serverDate = e?.extra?.serverDate;
|
|
11950
|
+
const serverTimestamp = serverDate ? new Date(serverDate).getTime() : null;
|
|
11951
|
+
const timeDriftMs = serverTimestamp ? clientTimestamp - serverTimestamp : null;
|
|
11952
|
+
_task.logger?.warn("[XhsSessionCheck] creator base 接口请求失败", {
|
|
11953
|
+
accountId: params.accountId,
|
|
11954
|
+
duration: Date.now() - baseInfoStart,
|
|
11955
|
+
code: e?.code,
|
|
11956
|
+
message: e?.message,
|
|
11957
|
+
data: e?.data,
|
|
11958
|
+
extra: e?.extra,
|
|
11959
|
+
proxyInfo: http.proxyInfo,
|
|
11960
|
+
clientTimestamp,
|
|
11961
|
+
serverDate,
|
|
11962
|
+
serverTimestamp,
|
|
11963
|
+
timeDriftMs,
|
|
11964
|
+
isLikelyClockDrift: null !== timeDriftMs && Math.abs(timeDriftMs) > 300000
|
|
11965
|
+
});
|
|
11966
|
+
return e.data;
|
|
11967
|
+
});
|
|
11946
11968
|
const _web_session = http.api({
|
|
11947
11969
|
method: "get",
|
|
11948
11970
|
url: "https://edith.xiaohongshu.com/api/sns/web/unread_count"
|
|
11949
11971
|
}, {
|
|
11950
11972
|
retries: 3,
|
|
11951
11973
|
retryDelay: 20,
|
|
11952
|
-
timeout:
|
|
11974
|
+
timeout: 5000
|
|
11953
11975
|
});
|
|
11954
11976
|
const [baseInfo, web_session] = await Promise.all([
|
|
11955
11977
|
_baseInfo,
|
|
11956
11978
|
_web_session
|
|
11957
11979
|
]);
|
|
11958
11980
|
if (baseInfo?.code === 0) check.isValidSession = true;
|
|
11959
|
-
if (
|
|
11960
|
-
baseInfo?.code, web_session
|
|
11981
|
+
if (web_session?.code === 0) check.isValidWebSession = true;
|
|
11982
|
+
baseInfo?.code, web_session?.code;
|
|
11961
11983
|
const message = `小红书账号有效性检测成功${_task.debug ? ` ${http.proxyInfo}` : ""}`;
|
|
11962
11984
|
return (0, share_namespaceObject.success)(check, message);
|
|
11963
11985
|
};
|
|
@@ -23238,6 +23260,33 @@ var __webpack_exports__ = {};
|
|
|
23238
23260
|
const encode_mnsv2 = __webpack_require__("./src/utils/xhs_ob/x_s.encoder.js");
|
|
23239
23261
|
const xiaohongshuLogin_rpa_server_scanRetryMaxCount = 60;
|
|
23240
23262
|
const xiaohongshuLogin_rpa_server_waitQrcodeResultMaxTime = 2000 * xiaohongshuLogin_rpa_server_scanRetryMaxCount;
|
|
23263
|
+
async function collectCookiesWithA1(task) {
|
|
23264
|
+
const hasA1 = (cookies)=>cookies.some((c)=>"a1" === c.name && !!c.value);
|
|
23265
|
+
let cookies = await task.steelBrowserContext?.cookies() ?? [];
|
|
23266
|
+
if (hasA1(cookies)) return cookies;
|
|
23267
|
+
task.logger?.warn("[XhsLogin] 首次抓取缺失 a1,尝试补救……");
|
|
23268
|
+
try {
|
|
23269
|
+
const page = task.steelBrowserContext?.pages?.()[0];
|
|
23270
|
+
if (page) {
|
|
23271
|
+
await page.goto("https://www.xiaohongshu.com", {
|
|
23272
|
+
waitUntil: "domcontentloaded",
|
|
23273
|
+
timeout: 15000
|
|
23274
|
+
});
|
|
23275
|
+
for(let i = 0; i < 10; i++){
|
|
23276
|
+
cookies = await task.steelBrowserContext?.cookies() ?? [];
|
|
23277
|
+
if (hasA1(cookies)) {
|
|
23278
|
+
task.logger?.info(`[XhsLogin] a1 补救成功,第 ${i + 1} 次轮询命中`);
|
|
23279
|
+
return cookies;
|
|
23280
|
+
}
|
|
23281
|
+
await new Promise((resolve)=>setTimeout(resolve, 500));
|
|
23282
|
+
}
|
|
23283
|
+
}
|
|
23284
|
+
} catch (err) {
|
|
23285
|
+
task.logger?.warn("[XhsLogin] a1 补救访问主站失败", err);
|
|
23286
|
+
}
|
|
23287
|
+
cookies = await task.steelBrowserContext?.cookies() ?? [];
|
|
23288
|
+
return cookies;
|
|
23289
|
+
}
|
|
23241
23290
|
const xiaohongshuLogin_rpa_server_rpaServer = async (task, params)=>{
|
|
23242
23291
|
const updateTaskState = task.taskStageStore?.update?.bind(task.taskStageStore, task.taskId || "");
|
|
23243
23292
|
const reporter = task.reportService?.reportLoginStatus ?? (()=>Promise.resolve());
|
|
@@ -23438,21 +23487,29 @@ var __webpack_exports__ = {};
|
|
|
23438
23487
|
};
|
|
23439
23488
|
}
|
|
23440
23489
|
case types_ExecutionState.SUCCESS:
|
|
23441
|
-
|
|
23442
|
-
|
|
23443
|
-
|
|
23444
|
-
|
|
23445
|
-
|
|
23446
|
-
}
|
|
23447
|
-
|
|
23448
|
-
|
|
23449
|
-
|
|
23450
|
-
|
|
23451
|
-
|
|
23452
|
-
|
|
23453
|
-
|
|
23454
|
-
}
|
|
23455
|
-
|
|
23490
|
+
{
|
|
23491
|
+
const cookies = await collectCookiesWithA1(task);
|
|
23492
|
+
const hasA1 = cookies.some((c)=>"a1" === c.name && !!c.value);
|
|
23493
|
+
if (!hasA1) task.logger?.warn("[XhsLogin] 登录成功但缺失关键 cookie a1,后续检测可能失败", {
|
|
23494
|
+
cookieNames: cookies.map((c)=>c.name)
|
|
23495
|
+
});
|
|
23496
|
+
const cookieStr = JSON.stringify(cookies);
|
|
23497
|
+
await updateTaskState?.({
|
|
23498
|
+
state: share_namespaceObject.TaskState.SUCCESS,
|
|
23499
|
+
result: {
|
|
23500
|
+
cookie: cookieStr,
|
|
23501
|
+
userInfo: userInfo
|
|
23502
|
+
}
|
|
23503
|
+
});
|
|
23504
|
+
return {
|
|
23505
|
+
code: 0,
|
|
23506
|
+
message: "成功",
|
|
23507
|
+
data: {
|
|
23508
|
+
cookie: cookieStr,
|
|
23509
|
+
userInfo
|
|
23510
|
+
}
|
|
23511
|
+
};
|
|
23512
|
+
}
|
|
23456
23513
|
default:
|
|
23457
23514
|
return {
|
|
23458
23515
|
code: 500,
|