@iflyrpa/actions 1.2.6-beta.0 → 1.2.6-beta.2
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/searchXiaohongshuTopicList/index.d.ts +7 -0
- package/dist/actions/xiaohongshuPublish/index.d.ts +1 -0
- package/dist/bundle.js +81 -12
- package/dist/bundle.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +81 -12
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +81 -12
- package/dist/index.mjs.map +1 -1
- package/dist/types.d.ts +6 -0
- package/package.json +1 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type CommonAction } from "@iflyrpa/share";
|
|
2
|
+
import type { ActiomCommonParams, Xiaohongshu } from "../../types";
|
|
3
|
+
export interface SearchXiaohongshuTopicListParams extends ActiomCommonParams {
|
|
4
|
+
searchValue: string;
|
|
5
|
+
}
|
|
6
|
+
export type PublishAction = CommonAction<SearchXiaohongshuTopicListParams, Xiaohongshu.Topic[]>;
|
|
7
|
+
export declare const searchXiaohongshuTopicList: PublishAction;
|
|
@@ -20,6 +20,7 @@ export interface XiaohongshuPublishParams extends ActiomCommonParams {
|
|
|
20
20
|
content: string;
|
|
21
21
|
address?: Xiaohongshu.Location;
|
|
22
22
|
selfDeclaration?: SelfDeclaration;
|
|
23
|
+
topic?: Xiaohongshu.Topic[];
|
|
23
24
|
visibleRange: "public" | "private";
|
|
24
25
|
isImmediatelyPublish?: boolean;
|
|
25
26
|
scheduledPublish?: string;
|
package/dist/bundle.js
CHANGED
|
@@ -13583,6 +13583,36 @@ var __webpack_exports__ = {};
|
|
|
13583
13583
|
return success([]);
|
|
13584
13584
|
}
|
|
13585
13585
|
};
|
|
13586
|
+
const searchXiaohongshuTopicList = async (_task, params)=>{
|
|
13587
|
+
const http = new Http({
|
|
13588
|
+
headers: {
|
|
13589
|
+
cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
|
|
13590
|
+
referer: "https://creator.xiaohongshu.com",
|
|
13591
|
+
origin: "https://creator.xiaohongshu.com"
|
|
13592
|
+
}
|
|
13593
|
+
});
|
|
13594
|
+
try {
|
|
13595
|
+
const result = await http.api({
|
|
13596
|
+
method: "post",
|
|
13597
|
+
url: "https://edith.xiaohongshu.com/web_api/sns/v1/search/topic",
|
|
13598
|
+
data: {
|
|
13599
|
+
keyword: params.searchValue,
|
|
13600
|
+
suggest_topic_request: {
|
|
13601
|
+
title: "",
|
|
13602
|
+
desc: `#${params.searchValue}`
|
|
13603
|
+
},
|
|
13604
|
+
page: {
|
|
13605
|
+
page_size: 20,
|
|
13606
|
+
page: 1
|
|
13607
|
+
}
|
|
13608
|
+
},
|
|
13609
|
+
defaultErrorMsg: "话题搜索异常,请稍后重试。"
|
|
13610
|
+
});
|
|
13611
|
+
return success(0 === result.code ? result.data.topic_info_dtos : [], '获取话题成功');
|
|
13612
|
+
} catch (error) {
|
|
13613
|
+
return success([]);
|
|
13614
|
+
}
|
|
13615
|
+
};
|
|
13586
13616
|
const mock_errnoMap = {
|
|
13587
13617
|
20004020: "图片上传异常,请重新绑定账号后同步。",
|
|
13588
13618
|
7115: "正文图片和封面图片推荐jpg、png格式。",
|
|
@@ -13791,6 +13821,10 @@ var __webpack_exports__ = {};
|
|
|
13791
13821
|
});
|
|
13792
13822
|
} else await route.continue();
|
|
13793
13823
|
});
|
|
13824
|
+
PopupListener(page, '.byte-modal.publish-exclusive-modal .title', "激励", '.byte-modal-close-icon', {
|
|
13825
|
+
checkInterval: 1000,
|
|
13826
|
+
stopAfterClick: false
|
|
13827
|
+
});
|
|
13794
13828
|
const titleInstance = page.locator(".publish-editor-title-wrapper .publish-editor-title textarea");
|
|
13795
13829
|
await titleInstance.click();
|
|
13796
13830
|
await titleInstance.fill(params.title);
|
|
@@ -14063,7 +14097,10 @@ var __webpack_exports__ = {};
|
|
|
14063
14097
|
153201: "不支持发布审核中或转码中的视频",
|
|
14064
14098
|
200007: "登陆失败,请重新登陆账户后重试。",
|
|
14065
14099
|
64703: "摘要超出120字长度限制,请修改摘要后重试。",
|
|
14066
|
-
"-4": "不支持发布审核中或转码中的视频"
|
|
14100
|
+
"-4": "不支持发布审核中或转码中的视频",
|
|
14101
|
+
"-2": "不支持发布审核中或转码中的视频",
|
|
14102
|
+
770001: "不支持发布审核中或转码中的视频",
|
|
14103
|
+
200074: "系统繁忙,请稍后重试!"
|
|
14067
14104
|
};
|
|
14068
14105
|
const ignoreErrno = [
|
|
14069
14106
|
154019
|
|
@@ -15430,7 +15467,8 @@ var __webpack_exports__ = {};
|
|
|
15430
15467
|
}
|
|
15431
15468
|
}
|
|
15432
15469
|
const xiaohongshuPublish_mock_errnoMap = {
|
|
15433
|
-
903: "账户已登出,需重新登陆重试!"
|
|
15470
|
+
903: "账户已登出,需重新登陆重试!",
|
|
15471
|
+
902: "登录已过期,请重新登录!"
|
|
15434
15472
|
};
|
|
15435
15473
|
const xsEncrypt = new XsEncrypt();
|
|
15436
15474
|
const xiaohongshuPublish_mock_mockAction = async (task, params)=>{
|
|
@@ -15500,13 +15538,34 @@ var __webpack_exports__ = {};
|
|
|
15500
15538
|
};
|
|
15501
15539
|
};
|
|
15502
15540
|
const coverInfos = await Promise.all(params.banners.map((it, idx)=>uploadFile(it, idx)));
|
|
15541
|
+
if (params.topic && params.topic.length > 0) await Promise.all(params.topic.map(async (topic)=>{
|
|
15542
|
+
if (!topic["id"]) {
|
|
15543
|
+
const topicData = {
|
|
15544
|
+
topic_names: topic["name"]
|
|
15545
|
+
};
|
|
15546
|
+
const topicDataStr = xsEncrypt.dumps(topicData);
|
|
15547
|
+
const publishXt = Date.now().toString();
|
|
15548
|
+
const publishXs = await xsEncrypt.encryptXs(`/web_api/sns/capa/postgw/topic/batch_customized${topicDataStr}`, a1Cookie, publishXt);
|
|
15549
|
+
let createTopic = await http.api({
|
|
15550
|
+
method: "POST",
|
|
15551
|
+
url: "https://edith.xiaohongshu.com/web_api/sns/capa/postgw/topic/batch_customized",
|
|
15552
|
+
headers: {
|
|
15553
|
+
"x-s": publishXs,
|
|
15554
|
+
"x-t": publishXt
|
|
15555
|
+
},
|
|
15556
|
+
data: topicData,
|
|
15557
|
+
defaultErrorMsg: "话题创建异常,请稍后重试。"
|
|
15558
|
+
});
|
|
15559
|
+
Object.assign(topic, createTopic.data.topic_infos[0]);
|
|
15560
|
+
}
|
|
15561
|
+
}));
|
|
15503
15562
|
const publishData = {
|
|
15504
15563
|
common: {
|
|
15505
15564
|
ats: [],
|
|
15506
15565
|
biz_relations: [],
|
|
15507
15566
|
desc: params?.content,
|
|
15508
15567
|
goods_info: {},
|
|
15509
|
-
hash_tag: [],
|
|
15568
|
+
hash_tag: params.topic || [],
|
|
15510
15569
|
note_id: "",
|
|
15511
15570
|
source: JSON.stringify({
|
|
15512
15571
|
type: "web",
|
|
@@ -15624,6 +15683,7 @@ var __webpack_exports__ = {};
|
|
|
15624
15683
|
'/api/galaxy/v2/creator/activity_center/list',
|
|
15625
15684
|
'/web_api/sns/v5/creator/topic/template/list',
|
|
15626
15685
|
'/web_api/sns/v5/creator/file/encryption',
|
|
15686
|
+
'/web_api/sns/capa/postgw/topic/batch_customized',
|
|
15627
15687
|
'/web_api/sns/v2/note'
|
|
15628
15688
|
];
|
|
15629
15689
|
await page.route('**', async (route, request)=>{
|
|
@@ -15645,11 +15705,11 @@ var __webpack_exports__ = {};
|
|
|
15645
15705
|
});
|
|
15646
15706
|
return;
|
|
15647
15707
|
}
|
|
15648
|
-
const isNoteRequest = urlObj.pathname.includes(interceptUrls[
|
|
15708
|
+
const isNoteRequest = urlObj.pathname.includes(interceptUrls[5]);
|
|
15649
15709
|
const xs = await (isNoteRequest ? (async ()=>{
|
|
15650
15710
|
const publishData = JSON.parse(request.postData() || "");
|
|
15651
15711
|
const publishDataStr = rpa_xsEncrypt.dumps(publishData);
|
|
15652
|
-
return rpa_xsEncrypt.encryptXs(interceptUrls[
|
|
15712
|
+
return rpa_xsEncrypt.encryptXs(interceptUrls[5] + publishDataStr, a1Cookie, xt);
|
|
15653
15713
|
})() : rpa_xsEncrypt.encryptXs(fetchCoverUrl, a1Cookie, xt));
|
|
15654
15714
|
const newHeaders = {
|
|
15655
15715
|
...request.headers(),
|
|
@@ -15703,7 +15763,7 @@ var __webpack_exports__ = {};
|
|
|
15703
15763
|
data: page.url()
|
|
15704
15764
|
};
|
|
15705
15765
|
}
|
|
15706
|
-
await page.locator("#content-area .menu-container .publish-video
|
|
15766
|
+
await page.locator("#content-area .menu-container .publish-video .btn").click();
|
|
15707
15767
|
await page.locator('.creator-container .header .creator-tab:not([style*="-9999px"]) .title').filter({
|
|
15708
15768
|
hasText: /^上传图文$/
|
|
15709
15769
|
}).click();
|
|
@@ -15720,7 +15780,15 @@ var __webpack_exports__ = {};
|
|
|
15720
15780
|
await titleInstance.fill(params.title);
|
|
15721
15781
|
const descInstance = page.locator(".editor-container #quillEditor .ql-editor");
|
|
15722
15782
|
await descInstance.click();
|
|
15723
|
-
await descInstance.
|
|
15783
|
+
await descInstance.pressSequentially(params.content.replace(/#.*?\[.*?]\#/g, ""));
|
|
15784
|
+
if (params.topic && params.topic.length > 0) for (const it of params.topic){
|
|
15785
|
+
await descInstance.pressSequentially(`#${it["name"]}`);
|
|
15786
|
+
await page.locator('.ql-mention-loading').waitFor({
|
|
15787
|
+
state: 'detached'
|
|
15788
|
+
});
|
|
15789
|
+
await page.waitForTimeout(1000);
|
|
15790
|
+
await page.locator('#quill-mention-item-0 .item-view-num').click();
|
|
15791
|
+
}
|
|
15724
15792
|
const container = page.locator(".creator-container .content .scroll-content");
|
|
15725
15793
|
await container.focus();
|
|
15726
15794
|
await page.mouse.wheel(0, 500);
|
|
@@ -15729,8 +15797,8 @@ var __webpack_exports__ = {};
|
|
|
15729
15797
|
}), params.address.name);
|
|
15730
15798
|
if (params.selfDeclaration) {
|
|
15731
15799
|
await page.locator(".media-settings .flexbox").filter({
|
|
15732
|
-
hasText: "
|
|
15733
|
-
}).locator(".d-select-
|
|
15800
|
+
hasText: "内容类型声明"
|
|
15801
|
+
}).locator(".d-select-placeholder").click();
|
|
15734
15802
|
const poperInstance = await getPoperInstance();
|
|
15735
15803
|
const selfDeclarationInstance = poperInstance.locator(".d-options .d-option");
|
|
15736
15804
|
if ("fictional-rendition" === params.selfDeclaration.type) await selfDeclarationInstance.filter({
|
|
@@ -15806,9 +15874,7 @@ var __webpack_exports__ = {};
|
|
|
15806
15874
|
if ("mockApi" === params.actionType) return xiaohongshuPublish_mock_mockAction(task, params);
|
|
15807
15875
|
return executeAction(xiaohongshuPublish_mock_mockAction, xiaohongshuPublish_rpa_rpaAction)(task, params);
|
|
15808
15876
|
};
|
|
15809
|
-
var package_namespaceObject = {
|
|
15810
|
-
i8: "1.2.5"
|
|
15811
|
-
};
|
|
15877
|
+
var package_namespaceObject = JSON.parse('{"i8":"1.2.6-beta.1"}');
|
|
15812
15878
|
class Action {
|
|
15813
15879
|
constructor(task){
|
|
15814
15880
|
this.task = task;
|
|
@@ -15843,6 +15909,9 @@ var __webpack_exports__ = {};
|
|
|
15843
15909
|
xiaohongshuPublish(params) {
|
|
15844
15910
|
return this.bindTask(xiaohongshuPublish, params);
|
|
15845
15911
|
}
|
|
15912
|
+
searchXiaohongshuTopicList(params) {
|
|
15913
|
+
return this.bindTask(searchXiaohongshuTopicList, params);
|
|
15914
|
+
}
|
|
15846
15915
|
searchXiaohongshuLocation(params) {
|
|
15847
15916
|
return this.bindTask(searchXiaohongshuLocation, params);
|
|
15848
15917
|
}
|