@iflyrpa/actions 1.2.11-beta.1 → 1.2.11-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.
@@ -20,6 +20,7 @@ export interface BaijiahaoPublishParams extends ActiomCommonParams {
20
20
  baijiahaoVerticalCover: string;
21
21
  baijiahaoActivity: ActivityData[];
22
22
  baijiahaoSelectActivityCache: string[];
23
+ timer?: number;
23
24
  };
24
25
  }
25
26
  export type PublishAction = CommonAction<BaijiahaoPublishParams, string>;
@@ -31,6 +31,7 @@ export interface WeixinPublishParams extends ActiomCommonParams {
31
31
  wxNotAllowRecommend?: boolean;
32
32
  wxCreationSource?: string[];
33
33
  wxInteraction?: WxInteraction;
34
+ timer?: number;
34
35
  };
35
36
  safeQrcodeCallback?: (qrcodePath: string) => void;
36
37
  }
package/dist/bundle.js CHANGED
@@ -14075,9 +14075,14 @@ var __webpack_exports__ = {};
14075
14075
  dd: String(date.getDate()).padStart(2, '0'),
14076
14076
  hh: String(date.getHours()).padStart(2, '0'),
14077
14077
  mm: String(date.getMinutes()).padStart(2, '0'),
14078
- ss: String(date.getSeconds()).padStart(2, '0')
14078
+ ss: String(date.getSeconds()).padStart(2, '0'),
14079
+ M: String(date.getMonth() + 1),
14080
+ d: String(date.getDate()),
14081
+ h: String(date.getHours()),
14082
+ m: String(date.getMinutes()),
14083
+ s: String(date.getSeconds())
14079
14084
  };
14080
- return formatStr.replace(/yyyy|yy|MM|dd|hh|mm|ss/g, (key)=>map[key]);
14085
+ return formatStr.replace(/yyyy|yy|MM|dd|hh|mm|ss|M|d|h|m|s/g, (key)=>map[key]);
14081
14086
  }
14082
14087
  }
14083
14088
  const replaceImgSrc = (html, callback)=>{
@@ -14417,6 +14422,7 @@ var __webpack_exports__ = {};
14417
14422
  cover_source: "upload",
14418
14423
  activity_list
14419
14424
  };
14425
+ params.settingInfo.timer && (publishData['timer_time'] = params.settingInfo.timer);
14420
14426
  const isDraft = "draft" === params.saveType;
14421
14427
  const saveUrl = isDraft ? "https://baijiahao.baidu.com/pcui/article/save?callback=bjhdraft" : "https://baijiahao.baidu.com/pcui/article/publish?callback=bjhpublish";
14422
14428
  const res = await http.api({
@@ -14538,13 +14544,16 @@ var __webpack_exports__ = {};
14538
14544
  if (await findActivity.count() > 0) findActivity.first().locator("..").click();
14539
14545
  }
14540
14546
  }
14541
- const articleId = await new Promise((resolve)=>{
14547
+ const { articleId, message } = await new Promise(async (resolve)=>{
14542
14548
  const handleResponse = async (response)=>{
14543
14549
  const url = response.url();
14544
14550
  if (url.includes("/pcui/article/save") || url.includes("/pcui/article/publish")) {
14545
14551
  const jsonResponse = await response.json();
14546
14552
  page.off("response", handleResponse);
14547
- resolve(jsonResponse?.ret?.article_id);
14553
+ resolve({
14554
+ articleId: jsonResponse?.ret?.article_id,
14555
+ message: jsonResponse?.errmsg
14556
+ });
14548
14557
  }
14549
14558
  };
14550
14559
  page.on("response", handleResponse);
@@ -14552,12 +14561,74 @@ var __webpack_exports__ = {};
14552
14561
  if ("draft" === params.saveType) operatorContainer.locator(".op-btn-outter-content").filter({
14553
14562
  hasText: "存草稿"
14554
14563
  }).locator("button").click();
14555
- else operatorContainer.locator(".op-btn-outter-content").filter({
14556
- hasText: "发布"
14564
+ else if (params.settingInfo.timer) {
14565
+ await operatorContainer.locator(".op-btn-outter-content").filter({
14566
+ hasText: "定时发布"
14567
+ }).locator("button").click();
14568
+ await page.locator(".timepublish-wrap-select .select-wrap", {
14569
+ hasText: "日"
14570
+ }).click();
14571
+ await page.locator('#select-date_list + * .cheetah-select-item-option', {
14572
+ hasText: TimeFormatter.format(params.settingInfo.timer, "M月dd日")
14573
+ }).click();
14574
+ await page.waitForTimeout(200);
14575
+ await page.locator(".timepublish-wrap-select .select-wrap", {
14576
+ hasText: "点"
14577
+ }).click();
14578
+ await page.locator('#select-hour_list +div.rc-virtual-list').hover();
14579
+ const scrollHourInfo = await page.evaluate(()=>{
14580
+ const hourInner = document.querySelector('#select-hour_list + * .rc-virtual-list-holder-inner');
14581
+ const hourElementHeight = hourInner?.children[0].clientHeight || 36;
14582
+ const hourMapsElem = Array.from(document.querySelectorAll('#select-hour_list + * .cheetah-select-item-option .cheetah-select-item-option-content'));
14583
+ const hourMap = hourMapsElem.map((item)=>item.textContent?.trim());
14584
+ return {
14585
+ elementHeight: hourElementHeight,
14586
+ elementItem: hourMap
14587
+ };
14588
+ });
14589
+ const fistHourElem = scrollHourInfo.elementItem[0];
14590
+ let fistHourElemH = Number(fistHourElem?.split("点")[0]);
14591
+ const lastHourElem = scrollHourInfo.elementItem[scrollHourInfo.elementItem.length - 1];
14592
+ let lastHourElemH = Number(lastHourElem?.split("点")[0]);
14593
+ let targetTimeH = Number(TimeFormatter.format(params.settingInfo.timer, 'h'));
14594
+ await page.mouse.wheel(0, targetTimeH > lastHourElemH ? (targetTimeH - lastHourElemH) * scrollHourInfo.elementHeight : targetTimeH < fistHourElemH ? -(fistHourElemH - targetTimeH) * scrollHourInfo.elementHeight : 0);
14595
+ await page.locator("#select-hour_list + * .cheetah-select-item-option ", {
14596
+ hasText: targetTimeH + "点"
14597
+ }).click();
14598
+ await page.waitForTimeout(200);
14599
+ await page.locator(".timepublish-wrap-select .select-wrap", {
14600
+ hasText: "分"
14601
+ }).click();
14602
+ await page.locator('#select-minute_list +div.rc-virtual-list').hover();
14603
+ const scrollMinuteInfo = await page.evaluate(()=>{
14604
+ const hourInner = document.querySelector('#select-minute_list + * .rc-virtual-list-holder-inner');
14605
+ const hourElementHeight = hourInner?.children[0].clientHeight || 36;
14606
+ const hourMapsElem = Array.from(document.querySelectorAll('#select-minute_list + * .cheetah-select-item-option .cheetah-select-item-option-content'));
14607
+ const hourMap = hourMapsElem.map((item)=>item.textContent?.trim());
14608
+ return {
14609
+ elementHeight: hourElementHeight,
14610
+ elementItem: hourMap
14611
+ };
14612
+ });
14613
+ const fistMinuteElem = scrollMinuteInfo.elementItem[0];
14614
+ let fistMinuteElemH = Number(fistMinuteElem?.split("分")[0]);
14615
+ const lastMinuteElem = scrollMinuteInfo.elementItem[scrollMinuteInfo.elementItem.length - 1];
14616
+ let lastMinuteElemH = Number(lastMinuteElem?.split("分")[0]);
14617
+ let targetTimeM = Number(TimeFormatter.format(params.settingInfo.timer, 'm'));
14618
+ await page.mouse.wheel(0, targetTimeM > lastMinuteElemH ? (targetTimeM - lastMinuteElemH) * scrollMinuteInfo.elementHeight : targetTimeM < fistMinuteElemH ? -(fistMinuteElemH - targetTimeM) * scrollMinuteInfo.elementHeight : 0);
14619
+ await page.locator("#select-minute_list + * .cheetah-select-item-option ", {
14620
+ hasText: targetTimeM + "分"
14621
+ }).click();
14622
+ await page.waitForTimeout(200);
14623
+ await page.locator(".cheetah-modal-confirm-btns button").filter({
14624
+ hasText: "定时发布"
14625
+ }).click();
14626
+ } else operatorContainer.locator(".op-btn-outter-content").filter({
14627
+ hasText: /^发布/
14557
14628
  }).locator("button").click();
14558
14629
  });
14559
14630
  await page.close();
14560
- return success(articleId);
14631
+ return success(articleId, articleId ? "发布成功" : message);
14561
14632
  };
14562
14633
  const baijiahaoPublish = async (task, params)=>{
14563
14634
  if ("rpa" === params.actionType) return rpaAction(task, params);
@@ -14738,7 +14809,7 @@ var __webpack_exports__ = {};
14738
14809
  2005: "账号无【申明原创】权限,请关闭申明后重试。",
14739
14810
  100004: "用户未登录或登陆已过期,请重新登陆后重试。"
14740
14811
  };
14741
- const generatorFormData = (data)=>Object.entries(data).map(([key, value])=>{
14812
+ const mock_generatorFormData = (data)=>Object.entries(data).map(([key, value])=>{
14742
14813
  const encodedKey = encodeURIComponent(key);
14743
14814
  const encodedValue = encodeURIComponent(String(value));
14744
14815
  return `${encodedKey}=${encodedValue}`;
@@ -14890,14 +14961,14 @@ var __webpack_exports__ = {};
14890
14961
  const msToken = params.cookies.find((it)=>"msToken" === it.name)?.value;
14891
14962
  let publishOption = {};
14892
14963
  if (msToken) {
14893
- const postHeaders = generatorFormData({
14964
+ const postHeaders = mock_generatorFormData({
14894
14965
  source: "mp",
14895
14966
  type: "article",
14896
14967
  aid: 1231,
14897
14968
  mp_publish_ab_val: 0,
14898
14969
  msToken: msToken
14899
14970
  });
14900
- const postData = generatorFormData(publishData);
14971
+ const postData = mock_generatorFormData(publishData);
14901
14972
  let a_bogus = GenAB(postHeaders, postData);
14902
14973
  publishOption = {
14903
14974
  method: "post",
@@ -14921,6 +14992,7 @@ var __webpack_exports__ = {};
14921
14992
  const publishResult = await http.api(publishOption);
14922
14993
  return success(publishResult.data.pgc_id);
14923
14994
  };
14995
+ const rpa_GenAB = __webpack_require__("./src/utils/ttABEncrypt.js");
14924
14996
  const rpa_rpaAction = async (task, params)=>{
14925
14997
  const tmpCachePath = task.getTmpPath();
14926
14998
  const commonCookies = {
@@ -14955,9 +15027,30 @@ var __webpack_exports__ = {};
14955
15027
  await page.route('**', async (route, request)=>{
14956
15028
  const url = new URL(request.url());
14957
15029
  if (interceptUrls.some((pattern)=>url.pathname.includes(pattern))) {
14958
- url.searchParams.set('aid', '1');
15030
+ const headers = {
15031
+ ...request.headers(),
15032
+ "user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36"
15033
+ };
15034
+ const generatorFormData = (data)=>Object.entries(data).map(([key, value])=>{
15035
+ const encodedKey = encodeURIComponent(key);
15036
+ const encodedValue = encodeURIComponent(String(value));
15037
+ return `${encodedKey}=${encodedValue}`;
15038
+ }).join('&');
15039
+ const postHeaders = generatorFormData({
15040
+ source: "mp",
15041
+ type: "article",
15042
+ aid: 1231,
15043
+ mp_publish_ab_val: 0,
15044
+ msToken: url.searchParams.get('msToken')
15045
+ });
15046
+ const postData = request.postData() || "";
15047
+ let a_bogus = rpa_GenAB(postHeaders, postData);
15048
+ url.searchParams.set('aid', "1231");
15049
+ url.searchParams.set('mp_publish_ab_val', "0");
15050
+ url.searchParams.set('a_bogus', a_bogus);
14959
15051
  await route.continue({
14960
- url: url.toString()
15052
+ url: url.toString(),
15053
+ headers: headers
14961
15054
  });
14962
15055
  } else await route.continue();
14963
15056
  });
@@ -15038,7 +15131,7 @@ var __webpack_exports__ = {};
15038
15131
  }).locator("xpath=..");
15039
15132
  exclusiveContainer.locator(".exclusive .exclusive-checkbox-wraper .byte-checkbox").click();
15040
15133
  }
15041
- const articleId = await new Promise((resolve)=>{
15134
+ const articleId = await new Promise(async (resolve)=>{
15042
15135
  const handleResponse = async (response)=>{
15043
15136
  const url = response.url();
15044
15137
  if (url.includes("/mp/agw/article/publish")) {
@@ -15048,7 +15141,32 @@ var __webpack_exports__ = {};
15048
15141
  }
15049
15142
  };
15050
15143
  page.on("response", handleResponse);
15051
- page.locator(".publish-footer button").filter({
15144
+ if (params.settingInfo.timer) {
15145
+ await page.locator(".publish-footer button").filter({
15146
+ hasText: "定时发布"
15147
+ }).click();
15148
+ await page.waitForSelector('button.publish-btn:not(.byte-btn-loading) >> nth=1', {
15149
+ state: 'attached'
15150
+ });
15151
+ await page.locator(".byte-modal-content .day-select .byte-select-view-value").click();
15152
+ await page.locator('li.byte-select-option', {
15153
+ hasText: TimeFormatter.format(params.settingInfo.timer, "MM月dd日")
15154
+ }).click();
15155
+ await page.waitForTimeout(200);
15156
+ await page.locator(".byte-modal-content .hour-select .byte-select-view-value").click();
15157
+ await page.locator('li.byte-select-option', {
15158
+ hasText: TimeFormatter.format(params.settingInfo.timer, "h")
15159
+ }).click();
15160
+ await page.waitForTimeout(200);
15161
+ await page.locator(".byte-modal-content .minute-select .byte-select-view-value").click();
15162
+ await page.locator('li.byte-select-option', {
15163
+ hasText: TimeFormatter.format(params.settingInfo.timer, "m")
15164
+ }).click();
15165
+ await page.waitForTimeout(200);
15166
+ await page.locator(".byte-modal-footer button").filter({
15167
+ hasText: "预览并定时发布"
15168
+ }).click();
15169
+ } else await page.locator(".publish-footer button").filter({
15052
15170
  hasText: "预览并发布"
15053
15171
  }).click();
15054
15172
  });
@@ -15059,13 +15177,13 @@ var __webpack_exports__ = {};
15059
15177
  }
15060
15178
  if ("publish" === params.saveType) {
15061
15179
  await page.locator(".publish-footer button").filter({
15062
- hasText: "确认发布"
15180
+ hasText: params.settingInfo.timer ? "定时发布" : "确认发布"
15063
15181
  }).waitFor({
15064
15182
  state: "visible"
15065
15183
  });
15066
15184
  await page.waitForTimeout(200);
15067
15185
  await page.locator(".publish-footer button").filter({
15068
- hasText: "确认发布"
15186
+ hasText: params.settingInfo.timer ? "定时发布" : "确认发布"
15069
15187
  }).click();
15070
15188
  }
15071
15189
  await page.close();
@@ -15340,7 +15458,8 @@ var __webpack_exports__ = {};
15340
15458
  "-4": "不支持发布审核中或转码中的视频",
15341
15459
  "-2": "不支持发布审核中或转码中的视频",
15342
15460
  770001: "不支持发布审核中或转码中的视频",
15343
- 200074: "系统繁忙,请稍后重试!"
15461
+ 200074: "系统繁忙,请稍后重试!",
15462
+ 64702: "标题超出64字长度限制,请修改标题后重试。"
15344
15463
  };
15345
15464
  const ignoreErrno = [
15346
15465
  154019
@@ -15350,7 +15469,7 @@ var __webpack_exports__ = {};
15350
15469
  已关注的用户: 2,
15351
15470
  已关注7天及以上的用户: 3
15352
15471
  };
15353
- const mock_generatorFormData = (data)=>{
15472
+ const weixinPublish_mock_generatorFormData = (data)=>{
15354
15473
  const formData = new URLSearchParams();
15355
15474
  for (const [key, value] of Object.entries(data))formData.append(key, String(value));
15356
15475
  return formData.toString();
@@ -15366,7 +15485,7 @@ var __webpack_exports__ = {};
15366
15485
  token: params.token,
15367
15486
  lang: "zh_CN"
15368
15487
  },
15369
- data: mock_generatorFormData(data)
15488
+ data: weixinPublish_mock_generatorFormData(data)
15370
15489
  });
15371
15490
  } catch (error) {
15372
15491
  resData = error?.data;
@@ -15480,7 +15599,7 @@ var __webpack_exports__ = {};
15480
15599
  params: {
15481
15600
  action: "searchacct"
15482
15601
  },
15483
- data: mock_generatorFormData({
15602
+ data: weixinPublish_mock_generatorFormData({
15484
15603
  lang: "zh_CN",
15485
15604
  f: "json",
15486
15605
  ajax: 1,
@@ -15609,7 +15728,7 @@ var __webpack_exports__ = {};
15609
15728
  params: {
15610
15729
  action: 'addautoreply'
15611
15730
  },
15612
- data: mock_generatorFormData({
15731
+ data: weixinPublish_mock_generatorFormData({
15613
15732
  type: 1,
15614
15733
  fingerprint,
15615
15734
  token: params.token,
@@ -15731,7 +15850,7 @@ var __webpack_exports__ = {};
15731
15850
  type: 77,
15732
15851
  lang: "zh_CN"
15733
15852
  },
15734
- data: mock_generatorFormData(draftData),
15853
+ data: weixinPublish_mock_generatorFormData(draftData),
15735
15854
  defaultErrorMsg: "创建草稿失败,请稍后重试发布。"
15736
15855
  });
15737
15856
  if ("draft" === params.saveType) return {
@@ -15764,7 +15883,7 @@ var __webpack_exports__ = {};
15764
15883
  lang: "zh_CN",
15765
15884
  token: params.token
15766
15885
  },
15767
- data: mock_generatorFormData({
15886
+ data: weixinPublish_mock_generatorFormData({
15768
15887
  token: params.token,
15769
15888
  lang: "zh_CN",
15770
15889
  f: "json",
@@ -15795,7 +15914,7 @@ var __webpack_exports__ = {};
15795
15914
  token: params.token,
15796
15915
  lang: "zh_CN"
15797
15916
  },
15798
- data: mock_generatorFormData({
15917
+ data: weixinPublish_mock_generatorFormData({
15799
15918
  appmsgid: appMsgId,
15800
15919
  fingerprint,
15801
15920
  token: params.token,
@@ -15807,7 +15926,7 @@ var __webpack_exports__ = {};
15807
15926
  await http.api({
15808
15927
  method: "post",
15809
15928
  url: "https://mp.weixin.qq.com/cgi-bin/masssend?action=check_same_material",
15810
- data: mock_generatorFormData({
15929
+ data: weixinPublish_mock_generatorFormData({
15811
15930
  msgid: appMsgId,
15812
15931
  fingerprint,
15813
15932
  token: params.token,
@@ -15846,7 +15965,7 @@ var __webpack_exports__ = {};
15846
15965
  token: params.token,
15847
15966
  lang: "zh_CN"
15848
15967
  },
15849
- data: mock_generatorFormData({
15968
+ data: weixinPublish_mock_generatorFormData({
15850
15969
  appmsg_id: appMsgId,
15851
15970
  fingerprint,
15852
15971
  token: params.token,
@@ -15865,7 +15984,7 @@ var __webpack_exports__ = {};
15865
15984
  params: {
15866
15985
  action: "check_music"
15867
15986
  },
15868
- data: mock_generatorFormData({
15987
+ data: weixinPublish_mock_generatorFormData({
15869
15988
  appmsgid: appMsgId,
15870
15989
  masssend_check: 1,
15871
15990
  fingerprint,
@@ -15885,7 +16004,7 @@ var __webpack_exports__ = {};
15885
16004
  lang: "zh_CN",
15886
16005
  1: 1
15887
16006
  },
15888
- data: mock_generatorFormData({
16007
+ data: weixinPublish_mock_generatorFormData({
15889
16008
  token: params.token,
15890
16009
  lang: "zh_CN",
15891
16010
  f: "json",
@@ -15905,7 +16024,7 @@ var __webpack_exports__ = {};
15905
16024
  lang: "zh_CN",
15906
16025
  1: 1
15907
16026
  },
15908
- data: mock_generatorFormData({
16027
+ data: weixinPublish_mock_generatorFormData({
15909
16028
  token: params.token,
15910
16029
  lang: "zh_CN",
15911
16030
  f: "json",
@@ -15937,6 +16056,7 @@ var __webpack_exports__ = {};
15937
16056
  ticket: getTicketResult.ticket,
15938
16057
  uuid,
15939
16058
  msgid: operation_seq,
16059
+ open_email: !!params.settingInfo.timer,
15940
16060
  ...params.masssend ? {} : {
15941
16061
  publish_type: 1
15942
16062
  }
@@ -15959,7 +16079,7 @@ var __webpack_exports__ = {};
15959
16079
  lang: "zh_CN",
15960
16080
  timespam: Date.now()
15961
16081
  },
15962
- data: mock_generatorFormData({
16082
+ data: weixinPublish_mock_generatorFormData({
15963
16083
  token: params.token,
15964
16084
  lang: "zh_CN",
15965
16085
  f: "json",
@@ -15989,7 +16109,7 @@ var __webpack_exports__ = {};
15989
16109
  lang: "zh_CN",
15990
16110
  1: 1
15991
16111
  },
15992
- data: mock_generatorFormData({
16112
+ data: weixinPublish_mock_generatorFormData({
15993
16113
  token: params.token,
15994
16114
  lang: "zh_CN",
15995
16115
  f: "json",
@@ -16011,7 +16131,7 @@ var __webpack_exports__ = {};
16011
16131
  is_release_publish_page: 1
16012
16132
  }
16013
16133
  },
16014
- data: mock_generatorFormData({
16134
+ data: weixinPublish_mock_generatorFormData({
16015
16135
  token: params.token,
16016
16136
  lang: "zh_CN",
16017
16137
  f: "json",
@@ -16028,7 +16148,7 @@ var __webpack_exports__ = {};
16028
16148
  country: "",
16029
16149
  province: "",
16030
16150
  city: "",
16031
- send_time: "0",
16151
+ send_time: params.settingInfo.timer ? params.settingInfo.timer : "0",
16032
16152
  type: "10",
16033
16153
  share_page: "1",
16034
16154
  synctxweibo: "0",
@@ -16045,7 +16165,7 @@ var __webpack_exports__ = {};
16045
16165
  }),
16046
16166
  defaultErrorMsg: params.masssend ? "文章群发异常,请尝试关闭群发或稍后重试。" : "文章发布异常,请稍后重试。"
16047
16167
  });
16048
- return success(appMsgId, "微信公众号发布完成。");
16168
+ return success(appMsgId, params.settingInfo.timer ? "微信公众号文章定时发布成功。" : "微信公众号发布完成。");
16049
16169
  };
16050
16170
  const waitQrcodeResultMaxTime = 2000 * scanRetryMaxCount;
16051
16171
  const weixinPublish_rpa_rpaAction = async (task, params)=>{
@@ -16166,6 +16286,10 @@ var __webpack_exports__ = {};
16166
16286
  checkInterval: 1000,
16167
16287
  stopAfterClick: false
16168
16288
  });
16289
+ PopupListener(page, '[extclass="weui-desktop-dialog_simple"] .weui-desktop-dialog', "小店", '[extclass="weui-desktop-dialog_simple"] .weui-desktop-icon-btn.weui-desktop-dialog__close-btn', {
16290
+ checkInterval: 1000,
16291
+ stopAfterClick: true
16292
+ });
16169
16293
  const titleInstance = page.locator("#js_title_main textarea#title");
16170
16294
  await titleInstance.click();
16171
16295
  await titleInstance.fill(params.title);
@@ -16322,8 +16446,8 @@ var __webpack_exports__ = {};
16322
16446
  const wxInteraction_bd = wxInteraction_setting.locator('.weui-desktop-dialog__bd');
16323
16447
  const wxInteraction_ft = wxInteraction_setting.locator('.weui-desktop-dialog__ft');
16324
16448
  if ("public" == params.settingInfo.wxInteraction.Type) {
16325
- await wxInteraction_bd.locator('.weui-desktop-form__check-label', {
16326
- hasText: '留言'
16449
+ await wxInteraction_bd.locator('.weui-desktop-form__check-label span', {
16450
+ hasText: /^(开启|留言)$/
16327
16451
  }).click();
16328
16452
  const comment_area = wxInteraction_bd.locator('.comment-options-block.pt0');
16329
16453
  const reply_area = wxInteraction_bd.locator('.comment-options-block.bb0.pb0');
@@ -16341,8 +16465,8 @@ var __webpack_exports__ = {};
16341
16465
  }).click();
16342
16466
  if (params.settingInfo.wxInteraction.Option?.elect_reply) await reply_area.locator('.weui-desktop-switch__box').check();
16343
16467
  else await reply_area.locator('.weui-desktop-switch__input').isChecked() && reply_area.locator('.weui-desktop-switch__box').uncheck();
16344
- } else if ("private" == params.settingInfo.wxInteraction.Type) await wxInteraction_bd.locator('.weui-desktop-form__check-label', {
16345
- hasText: '快捷私信'
16468
+ } else if ("private" == params.settingInfo.wxInteraction.Type) await wxInteraction_bd.locator('.weui-desktop-form__check-label span', {
16469
+ hasText: /^(快捷私信|不开启)$/
16346
16470
  }).click();
16347
16471
  await wxInteraction_ft.locator('.weui-desktop-btn.weui-desktop-btn_primary').click();
16348
16472
  }
@@ -16368,7 +16492,7 @@ var __webpack_exports__ = {};
16368
16492
  await poperInstance.locator('.frm_radio_item label[for="not_recomment_0"]').click();
16369
16493
  }
16370
16494
  await page.waitForTimeout(1000);
16371
- const articleId = await new Promise((resolve)=>{
16495
+ const articleId = await new Promise(async (resolve)=>{
16372
16496
  const handleResponse = async (response)=>{
16373
16497
  const url = response.url();
16374
16498
  const query = parseUrlQueryString(url);
@@ -16380,7 +16504,34 @@ var __webpack_exports__ = {};
16380
16504
  };
16381
16505
  page.on("response", handleResponse);
16382
16506
  page.locator("#editor_pannel #bottom_main #js_button_area #js_send button").click();
16507
+ await page.waitForTimeout(200);
16508
+ if (params.settingInfo.timer) {
16509
+ await page.locator(".mass-send .mass-send__td-setting", {
16510
+ hasText: "定时发表"
16511
+ }).locator(".weui-desktop-switch__box").check();
16512
+ let dateD = Number(TimeFormatter.format(params.settingInfo.timer, "d"));
16513
+ let nowD = Number(TimeFormatter.format(Date.now(), "d"));
16514
+ await page.locator(".mass-send__timer .weui-desktop-form__dropdown__dt").click();
16515
+ const dropMenu = page.locator(".mass-send__timer .weui-desktop-dropdown-menu").locator(".weui-desktop-dropdown__list-ele");
16516
+ await dropMenu.filter({
16517
+ hasText: dateD == nowD ? "今天" : dateD == nowD + 1 ? "明天" : TimeFormatter.format(params.settingInfo.timer, "M月d日")
16518
+ }).click();
16519
+ const timeDropMenu = page.locator(".mass-send__timer .weui-desktop-picker__time:visible");
16520
+ await timeDropMenu.locator(".weui-desktop-form__input").fill(TimeFormatter.format(params.settingInfo.timer, "hh:mm"));
16521
+ await timeDropMenu.locator("i.weui-desktop-icon__time").click();
16522
+ }
16383
16523
  });
16524
+ await page.waitForTimeout(200);
16525
+ if (params.masssend) {
16526
+ const times = Number(await page.locator(".mass-send .multi-sent__notice_time").locator('div[style="display: none;"] div:not([style*="display: none"]) span').textContent());
16527
+ if (0 == times) return {
16528
+ code: 200,
16529
+ message: "今日群发次数用尽,请明天再试。",
16530
+ data: ""
16531
+ };
16532
+ await page.locator(".mass-send .mass_send__notify").locator(".weui-desktop-switch__box").check();
16533
+ } else await page.locator(".mass-send .mass_send__notify").locator(".weui-desktop-switch__box").uncheck();
16534
+ await page.waitForTimeout(200);
16384
16535
  await page.waitForSelector('.new_mass_send_dialog .weui-desktop-dialog__wrp:not([style*="display: none"])', {
16385
16536
  state: "visible"
16386
16537
  });
@@ -16389,6 +16540,19 @@ var __webpack_exports__ = {};
16389
16540
  state: "visible"
16390
16541
  });
16391
16542
  await page.locator(".double_check_dialog .weui-desktop-dialog .weui-desktop-dialog__ft button.weui-desktop-btn_primary").click();
16543
+ await page.waitForTimeout(2000);
16544
+ const originalCheckDialog = page.locator('div[data-transfer="true"][width\\.number="800"][height\\.number="800"] .weui-desktop-dialog__title');
16545
+ if (await originalCheckDialog.count() > 0) {
16546
+ if (await originalCheckDialog.textContent() === "原创校验") {
16547
+ const popMassend = page.locator('div[data-transfer="true"][width\\.number="800"][height\\.number="800"]');
16548
+ await popMassend.locator(".weui-desktop-btn_primary", {
16549
+ hasText: "下一步"
16550
+ }).click();
16551
+ await popMassend.locator(".weui-desktop-btn_primary", {
16552
+ hasText: "继续"
16553
+ }).click();
16554
+ }
16555
+ }
16392
16556
  try {
16393
16557
  const startTime = Date.now();
16394
16558
  await new Promise(async (resolve, reject)=>{
@@ -17115,7 +17279,7 @@ var __webpack_exports__ = {};
17115
17279
  if ("mockApi" === params.actionType) return xiaohongshuPublish_mock_mockAction(task, params);
17116
17280
  return executeAction(xiaohongshuPublish_mock_mockAction, xiaohongshuPublish_rpa_rpaAction)(task, params);
17117
17281
  };
17118
- var package_namespaceObject = JSON.parse('{"i8":"1.2.11-beta.0"}');
17282
+ var package_namespaceObject = JSON.parse('{"i8":"1.2.11-beta.1"}');
17119
17283
  class Action {
17120
17284
  constructor(task){
17121
17285
  this.task = task;