@iflyrpa/actions 1.1.6 → 1.1.8
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/index.cjs +34 -42
- package/dist/index.mjs +34 -42
- package/package.json +2 -1
- package/src/actions/weixinPublish/index.ts +1 -1
- package/src/actions/weixinPublish/mock.ts +8 -7
- package/src/actions/xiaohongshuPublish/index.ts +12 -10
- package/src/actions/xiaohongshuPublish/mock.ts +218 -1
- package/src/actions/xiaohongshuPublish/rpa.ts +2 -2
- package/src/global.d.ts +7 -0
- package/src/types.ts +1 -1
package/dist/index.cjs
CHANGED
|
@@ -967,6 +967,8 @@ AxiosError.from = (error, code, config, request, response, customProps) => {
|
|
|
967
967
|
return axiosError;
|
|
968
968
|
};
|
|
969
969
|
|
|
970
|
+
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
971
|
+
|
|
970
972
|
function getDefaultExportFromCjs (x) {
|
|
971
973
|
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
972
974
|
}
|
|
@@ -21637,7 +21639,7 @@ const errnoMap$2 = {
|
|
|
21637
21639
|
2004005714: "\u7F51\u7EDC\u73AF\u5883\u5F02\u5E38\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u540E\u91CD\u8BD5\u53D1\u5E03\u3002",
|
|
21638
21640
|
401100032: "\u5F02\u5E38\uFF0C\u8BF7\u68C0\u67E5\u56FE\u7247\uFF08\u5982\uFF1A\u683C\u5F0F\u3001\u7248\u6743\u3001\u5408\u89C4\u6027\u7B49\uFF09\u3002"
|
|
21639
21641
|
};
|
|
21640
|
-
const mockAction$
|
|
21642
|
+
const mockAction$4 = async (task, params) => {
|
|
21641
21643
|
const { baijiahaoSingleCover, baijiahaoMultCover, baijiahaoCoverType } = params.settingInfo;
|
|
21642
21644
|
const tmpCachePath = task.getTmpPath();
|
|
21643
21645
|
const api = axios$1.create({
|
|
@@ -21768,7 +21770,7 @@ const mockAction$5 = async (task, params) => {
|
|
|
21768
21770
|
|
|
21769
21771
|
const baijiahaoPublish = async (task, params) => {
|
|
21770
21772
|
task.logger.info("\u5F00\u59CB\u767E\u5BB6\u53F7\u53D1\u5E03");
|
|
21771
|
-
return mockAction$
|
|
21773
|
+
return mockAction$4(task, params);
|
|
21772
21774
|
};
|
|
21773
21775
|
|
|
21774
21776
|
const getBaijiahaoActivity = async (task, params) => {
|
|
@@ -21922,7 +21924,7 @@ const get3101DetailError = (errorList, message, saveType) => {
|
|
|
21922
21924
|
}
|
|
21923
21925
|
return error || (saveType === "draft" ? "\u6587\u7AE0\u540C\u6B65\u5F02\u5E38\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002" : "\u6587\u7AE0\u53D1\u5E03\u5F02\u5E38\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002");
|
|
21924
21926
|
};
|
|
21925
|
-
const mockAction$
|
|
21927
|
+
const mockAction$3 = async (task, params) => {
|
|
21926
21928
|
const { toutiaoSingleCover, toutiaoMultCover, toutiaoCoverType, toutiaoOriginal } = params.settingInfo;
|
|
21927
21929
|
const tmpCachePath = task.getTmpPath();
|
|
21928
21930
|
const api = axios$1.create({
|
|
@@ -22087,10 +22089,10 @@ const mockAction$4 = async (task, params) => {
|
|
|
22087
22089
|
|
|
22088
22090
|
const toutiaoPublish = async (task, params) => {
|
|
22089
22091
|
task.logger.info("\u5F00\u59CB\u5934\u6761\u53D1\u5E03");
|
|
22090
|
-
return mockAction$
|
|
22092
|
+
return mockAction$3(task, params);
|
|
22091
22093
|
};
|
|
22092
22094
|
|
|
22093
|
-
const mockAction$
|
|
22095
|
+
const mockAction$2 = async (task, params) => {
|
|
22094
22096
|
const tmpCachePath = task.getTmpPath();
|
|
22095
22097
|
const api = axios$1.create({
|
|
22096
22098
|
headers: {
|
|
@@ -22221,9 +22223,9 @@ const rpaAction$2 = async (task, params) => {
|
|
|
22221
22223
|
await page.locator(".footer-wrap button.publish-content").click();
|
|
22222
22224
|
};
|
|
22223
22225
|
|
|
22224
|
-
const executeAction$
|
|
22226
|
+
const executeAction$1 = (task, params) => {
|
|
22225
22227
|
return new Promise((resolve, reject) => {
|
|
22226
|
-
mockAction$
|
|
22228
|
+
mockAction$2(task, params).then(resolve).catch(() => {
|
|
22227
22229
|
rpaAction$2(task, params).then(resolve).catch(reject);
|
|
22228
22230
|
});
|
|
22229
22231
|
});
|
|
@@ -22234,9 +22236,9 @@ const weitoutiaoPublish = async (task, params) => {
|
|
|
22234
22236
|
return rpaAction$2(task, params);
|
|
22235
22237
|
}
|
|
22236
22238
|
if (params.actionType === "mockApi") {
|
|
22237
|
-
return mockAction$
|
|
22239
|
+
return mockAction$2(task, params);
|
|
22238
22240
|
}
|
|
22239
|
-
return executeAction$
|
|
22241
|
+
return executeAction$1(task, params);
|
|
22240
22242
|
};
|
|
22241
22243
|
|
|
22242
22244
|
const scanRetryMaxCount = 30;
|
|
@@ -22246,7 +22248,7 @@ const errnoMap = {
|
|
|
22246
22248
|
const saveDraft$1 = (api, params, data) => {
|
|
22247
22249
|
const formData = new FormData$2();
|
|
22248
22250
|
for (const [key, value] of Object.entries(data)) {
|
|
22249
|
-
formData.append(key, value);
|
|
22251
|
+
formData.append(key, value ?? "");
|
|
22250
22252
|
}
|
|
22251
22253
|
return api({
|
|
22252
22254
|
method: "post",
|
|
@@ -22265,7 +22267,7 @@ const saveDraft$1 = (api, params, data) => {
|
|
|
22265
22267
|
const safeAssistant = (api, params, data) => {
|
|
22266
22268
|
const formData = new FormData$2();
|
|
22267
22269
|
for (const [key, value] of Object.entries(data)) {
|
|
22268
|
-
formData.append(key, value);
|
|
22270
|
+
formData.append(key, value ?? "");
|
|
22269
22271
|
}
|
|
22270
22272
|
return api({
|
|
22271
22273
|
method: "post",
|
|
@@ -22283,7 +22285,7 @@ const getUuid = async (api, params, data) => {
|
|
|
22283
22285
|
const formData = new FormData$2();
|
|
22284
22286
|
const defaultErrorMsg = "\u7FA4\u53D1\u4E8C\u7EF4\u7801\u83B7\u53D6\u51FA\u73B0\u95EE\u9898\uFF0C\u8BF7\u8054\u7CFB\u5BA2\u670D";
|
|
22285
22287
|
for (const [key, value] of Object.entries(data)) {
|
|
22286
|
-
formData.append(key, value);
|
|
22288
|
+
formData.append(key, value ?? "");
|
|
22287
22289
|
}
|
|
22288
22290
|
const res = await api({
|
|
22289
22291
|
method: "post",
|
|
@@ -22304,7 +22306,7 @@ const getUuid = async (api, params, data) => {
|
|
|
22304
22306
|
const safeUuid = async (api, params, data) => {
|
|
22305
22307
|
const formData = new FormData$2();
|
|
22306
22308
|
for (const [key, value] of Object.entries(data)) {
|
|
22307
|
-
formData.append(key, value);
|
|
22309
|
+
formData.append(key, value ?? "");
|
|
22308
22310
|
}
|
|
22309
22311
|
const res = await api({
|
|
22310
22312
|
method: "post",
|
|
@@ -22322,7 +22324,7 @@ const massSend = async (api, params, data) => {
|
|
|
22322
22324
|
const formData = new FormData$2();
|
|
22323
22325
|
const defaultErrorMsg = "\u6587\u7AE0\u53D1\u5E03\u51FA\u73B0\u95EE\u9898\uFF0C\u8BF7\u8054\u7CFB\u5BA2\u670D";
|
|
22324
22326
|
for (const [key, value] of Object.entries(data)) {
|
|
22325
|
-
formData.append(key, value);
|
|
22327
|
+
formData.append(key, value ?? "");
|
|
22326
22328
|
}
|
|
22327
22329
|
const res = await api({
|
|
22328
22330
|
method: "post",
|
|
@@ -22338,7 +22340,7 @@ const massSend = async (api, params, data) => {
|
|
|
22338
22340
|
});
|
|
22339
22341
|
return res;
|
|
22340
22342
|
};
|
|
22341
|
-
const mockAction$
|
|
22343
|
+
const mockAction$1 = async (task, params) => {
|
|
22342
22344
|
const tmpCachePath = task.getTmpPath();
|
|
22343
22345
|
const api = axios$1.create({
|
|
22344
22346
|
headers: {
|
|
@@ -22441,7 +22443,7 @@ const mockAction$2 = async (task, params) => {
|
|
|
22441
22443
|
reply_flag0: 0,
|
|
22442
22444
|
not_pay_can_comment0: 0,
|
|
22443
22445
|
token: params.token,
|
|
22444
|
-
AppMsgId: params.appMsgId,
|
|
22446
|
+
AppMsgId: params.appMsgId || "",
|
|
22445
22447
|
title0: params.title,
|
|
22446
22448
|
author0: params?.settingInfo?.wxAuthor || "",
|
|
22447
22449
|
digest0: params?.settingInfo?.wxAbstract || "",
|
|
@@ -22457,7 +22459,7 @@ const mockAction$2 = async (task, params) => {
|
|
|
22457
22459
|
const appMsgId = draftRes.data.appMsgId;
|
|
22458
22460
|
if (params.saveType === "draft") {
|
|
22459
22461
|
task.logger.info("\u5FAE\u4FE1\u516C\u4F17\u53F7\u4FDD\u5B58\u8349\u7A3F\u6210\u529F");
|
|
22460
|
-
return;
|
|
22462
|
+
return appMsgId;
|
|
22461
22463
|
}
|
|
22462
22464
|
const previewResult = await api.get(
|
|
22463
22465
|
"https://mp.weixin.qq.com/cgi-bin/masssendpage",
|
|
@@ -22554,11 +22556,12 @@ const mockAction$2 = async (task, params) => {
|
|
|
22554
22556
|
code
|
|
22555
22557
|
});
|
|
22556
22558
|
task.logger.info("\u5FAE\u4FE1\u516C\u4F17\u53F7\u53D1\u5E03\u5B8C\u6210");
|
|
22559
|
+
return appMsgId;
|
|
22557
22560
|
};
|
|
22558
22561
|
|
|
22559
22562
|
const weixinPublish = async (task, params) => {
|
|
22560
22563
|
task.logger.info("\u5F00\u59CB\u5FAE\u4FE1\u516C\u4F17\u53F7\u53D1\u5E03");
|
|
22561
|
-
return mockAction$
|
|
22564
|
+
return mockAction$1(task, params);
|
|
22562
22565
|
};
|
|
22563
22566
|
|
|
22564
22567
|
const saveDraft = (api, params, data) => {
|
|
@@ -22579,7 +22582,7 @@ const saveDraft = (api, params, data) => {
|
|
|
22579
22582
|
data: formData
|
|
22580
22583
|
});
|
|
22581
22584
|
};
|
|
22582
|
-
const mockAction
|
|
22585
|
+
const mockAction = async (task, params) => {
|
|
22583
22586
|
const tmpCachePath = task.getTmpPath();
|
|
22584
22587
|
const api = axios$1.create({
|
|
22585
22588
|
headers: {
|
|
@@ -22760,9 +22763,9 @@ const rpaAction$1 = async (task, params) => {
|
|
|
22760
22763
|
}
|
|
22761
22764
|
};
|
|
22762
22765
|
|
|
22763
|
-
const executeAction
|
|
22766
|
+
const executeAction = (task, params) => {
|
|
22764
22767
|
return new Promise((resolve, reject) => {
|
|
22765
|
-
mockAction
|
|
22768
|
+
mockAction(task, params).then(resolve).catch(() => {
|
|
22766
22769
|
rpaAction$1(task, params).then(resolve).catch(reject);
|
|
22767
22770
|
});
|
|
22768
22771
|
});
|
|
@@ -22773,14 +22776,16 @@ const weixinmpPublish = async (task, params) => {
|
|
|
22773
22776
|
return rpaAction$1(task, params);
|
|
22774
22777
|
}
|
|
22775
22778
|
if (params.actionType === "mockApi") {
|
|
22776
|
-
return mockAction
|
|
22779
|
+
return mockAction(task, params);
|
|
22777
22780
|
}
|
|
22778
|
-
return executeAction
|
|
22781
|
+
return executeAction(task, params);
|
|
22779
22782
|
};
|
|
22780
22783
|
|
|
22781
|
-
|
|
22782
|
-
|
|
22783
|
-
|
|
22784
|
+
var dayjs_min = {exports: {}};
|
|
22785
|
+
|
|
22786
|
+
(function (module, exports) {
|
|
22787
|
+
!function(t,e){module.exports=e();}(commonjsGlobal,(function(){var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",s="minute",u="hour",a="day",o="week",c="month",f="quarter",h="year",d="date",l="Invalid Date",$=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return "["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},m=function(t,e,n){var r=String(t);return !r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return (e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date()<n.date())return -t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return +(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return {M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},g="en",D={};D[g]=M;var p="$isDayjsObject",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if("string"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split("-");if(!i&&u.length>1)return t(u[0])}else {var a=e.name;D[a]=e,i=a;}return !r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0;}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init();},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds();},m.$utils=function(){return b},m.isValid=function(){return !(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v="set"+(this.$u?"UTC":"");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+"Hours",0);case u:return $(v+"Minutes",1);case s:return $(v+"Seconds",2);case i:return $(v+"Milliseconds",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f="set"+(this.$u?"UTC":""),l=(n={},n[a]=f+"Date",n[d]=f+"Date",n[c]=f+"Month",n[h]=f+"FullYear",n[u]=f+"Hours",n[s]=f+"Minutes",n[i]=f+"Seconds",n[r]=f+"Milliseconds",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d;}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||"YYYY-MM-DDTHH:mm:ssZ",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,"0")},$=f||function(t,e,n){var r=t<12?"AM":"PM";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case"YY":return String(e.$y).slice(-2);case"YYYY":return b.s(e.$y,4,"0");case"M":return a+1;case"MM":return b.s(a+1,2,"0");case"MMM":return h(n.monthsShort,a,c,3);case"MMMM":return h(c,a);case"D":return e.$D;case"DD":return b.s(e.$D,2,"0");case"d":return String(e.$W);case"dd":return h(n.weekdaysMin,e.$W,o,2);case"ddd":return h(n.weekdaysShort,e.$W,o,3);case"dddd":return o[e.$W];case"H":return String(s);case"HH":return b.s(s,2,"0");case"h":return d(1);case"hh":return d(2);case"a":return $(s,u,!0);case"A":return $(s,u,!1);case"m":return String(u);case"mm":return b.s(u,2,"0");case"s":return String(e.$s);case"ss":return b.s(e.$s,2,"0");case"SSS":return b.s(e.$ms,3,"0");case"Z":return i}return null}(t)||i.replace(":","")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g;}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[["$ms",r],["$s",i],["$m",s],["$H",u],["$W",a],["$M",c],["$y",h],["$D",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])};})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));
|
|
22788
|
+
} (dayjs_min));
|
|
22784
22789
|
|
|
22785
22790
|
const rpaAction = async (task, params) => {
|
|
22786
22791
|
const commonCookies = {
|
|
@@ -22864,7 +22869,7 @@ const rpaAction = async (task, params) => {
|
|
|
22864
22869
|
if (params.address) {
|
|
22865
22870
|
await selectAddress(
|
|
22866
22871
|
page.locator(".media-extension .address-input").filter({ hasText: "\u6DFB\u52A0\u5730\u70B9" }),
|
|
22867
|
-
params.address
|
|
22872
|
+
params.address.name
|
|
22868
22873
|
);
|
|
22869
22874
|
}
|
|
22870
22875
|
if (params.selfDeclaration) {
|
|
@@ -22887,7 +22892,7 @@ const rpaAction = async (task, params) => {
|
|
|
22887
22892
|
const selfShootingPopup = await getDialogInstance();
|
|
22888
22893
|
const hasCustomContent = shootingDate || shootingLocation;
|
|
22889
22894
|
if (shootingLocation) {
|
|
22890
|
-
await selectAddress(selfShootingPopup.locator(".address-input"), shootingLocation);
|
|
22895
|
+
await selectAddress(selfShootingPopup.locator(".address-input"), shootingLocation.name);
|
|
22891
22896
|
}
|
|
22892
22897
|
if (shootingDate) {
|
|
22893
22898
|
await selectDate(selfShootingPopup.locator(".date-picker input"), shootingDate);
|
|
@@ -22929,22 +22934,9 @@ const rpaAction = async (task, params) => {
|
|
|
22929
22934
|
return response;
|
|
22930
22935
|
};
|
|
22931
22936
|
|
|
22932
|
-
const executeAction = (task, params) => {
|
|
22933
|
-
return new Promise((resolve, reject) => {
|
|
22934
|
-
mockAction().then(resolve).catch(() => {
|
|
22935
|
-
rpaAction(task, params).then(resolve).catch(reject);
|
|
22936
|
-
});
|
|
22937
|
-
});
|
|
22938
|
-
};
|
|
22939
22937
|
const xiaohongshuPublish = async (task, params) => {
|
|
22940
22938
|
task.logger.info("\u5F00\u59CB\u5C0F\u7EA2\u4E66\u53D1\u5E03");
|
|
22941
|
-
|
|
22942
|
-
return rpaAction(task, params);
|
|
22943
|
-
}
|
|
22944
|
-
if (params.actionType === "mockApi") {
|
|
22945
|
-
return mockAction();
|
|
22946
|
-
}
|
|
22947
|
-
return executeAction(task, params);
|
|
22939
|
+
return rpaAction(task, params);
|
|
22948
22940
|
};
|
|
22949
22941
|
|
|
22950
22942
|
class Action {
|
package/dist/index.mjs
CHANGED
|
@@ -937,6 +937,8 @@ AxiosError.from = (error, code, config, request, response, customProps) => {
|
|
|
937
937
|
return axiosError;
|
|
938
938
|
};
|
|
939
939
|
|
|
940
|
+
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
941
|
+
|
|
940
942
|
function getDefaultExportFromCjs (x) {
|
|
941
943
|
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
942
944
|
}
|
|
@@ -21607,7 +21609,7 @@ const errnoMap$2 = {
|
|
|
21607
21609
|
2004005714: "\u7F51\u7EDC\u73AF\u5883\u5F02\u5E38\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u540E\u91CD\u8BD5\u53D1\u5E03\u3002",
|
|
21608
21610
|
401100032: "\u5F02\u5E38\uFF0C\u8BF7\u68C0\u67E5\u56FE\u7247\uFF08\u5982\uFF1A\u683C\u5F0F\u3001\u7248\u6743\u3001\u5408\u89C4\u6027\u7B49\uFF09\u3002"
|
|
21609
21611
|
};
|
|
21610
|
-
const mockAction$
|
|
21612
|
+
const mockAction$4 = async (task, params) => {
|
|
21611
21613
|
const { baijiahaoSingleCover, baijiahaoMultCover, baijiahaoCoverType } = params.settingInfo;
|
|
21612
21614
|
const tmpCachePath = task.getTmpPath();
|
|
21613
21615
|
const api = axios$1.create({
|
|
@@ -21738,7 +21740,7 @@ const mockAction$5 = async (task, params) => {
|
|
|
21738
21740
|
|
|
21739
21741
|
const baijiahaoPublish = async (task, params) => {
|
|
21740
21742
|
task.logger.info("\u5F00\u59CB\u767E\u5BB6\u53F7\u53D1\u5E03");
|
|
21741
|
-
return mockAction$
|
|
21743
|
+
return mockAction$4(task, params);
|
|
21742
21744
|
};
|
|
21743
21745
|
|
|
21744
21746
|
const getBaijiahaoActivity = async (task, params) => {
|
|
@@ -21892,7 +21894,7 @@ const get3101DetailError = (errorList, message, saveType) => {
|
|
|
21892
21894
|
}
|
|
21893
21895
|
return error || (saveType === "draft" ? "\u6587\u7AE0\u540C\u6B65\u5F02\u5E38\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002" : "\u6587\u7AE0\u53D1\u5E03\u5F02\u5E38\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002");
|
|
21894
21896
|
};
|
|
21895
|
-
const mockAction$
|
|
21897
|
+
const mockAction$3 = async (task, params) => {
|
|
21896
21898
|
const { toutiaoSingleCover, toutiaoMultCover, toutiaoCoverType, toutiaoOriginal } = params.settingInfo;
|
|
21897
21899
|
const tmpCachePath = task.getTmpPath();
|
|
21898
21900
|
const api = axios$1.create({
|
|
@@ -22057,10 +22059,10 @@ const mockAction$4 = async (task, params) => {
|
|
|
22057
22059
|
|
|
22058
22060
|
const toutiaoPublish = async (task, params) => {
|
|
22059
22061
|
task.logger.info("\u5F00\u59CB\u5934\u6761\u53D1\u5E03");
|
|
22060
|
-
return mockAction$
|
|
22062
|
+
return mockAction$3(task, params);
|
|
22061
22063
|
};
|
|
22062
22064
|
|
|
22063
|
-
const mockAction$
|
|
22065
|
+
const mockAction$2 = async (task, params) => {
|
|
22064
22066
|
const tmpCachePath = task.getTmpPath();
|
|
22065
22067
|
const api = axios$1.create({
|
|
22066
22068
|
headers: {
|
|
@@ -22191,9 +22193,9 @@ const rpaAction$2 = async (task, params) => {
|
|
|
22191
22193
|
await page.locator(".footer-wrap button.publish-content").click();
|
|
22192
22194
|
};
|
|
22193
22195
|
|
|
22194
|
-
const executeAction$
|
|
22196
|
+
const executeAction$1 = (task, params) => {
|
|
22195
22197
|
return new Promise((resolve, reject) => {
|
|
22196
|
-
mockAction$
|
|
22198
|
+
mockAction$2(task, params).then(resolve).catch(() => {
|
|
22197
22199
|
rpaAction$2(task, params).then(resolve).catch(reject);
|
|
22198
22200
|
});
|
|
22199
22201
|
});
|
|
@@ -22204,9 +22206,9 @@ const weitoutiaoPublish = async (task, params) => {
|
|
|
22204
22206
|
return rpaAction$2(task, params);
|
|
22205
22207
|
}
|
|
22206
22208
|
if (params.actionType === "mockApi") {
|
|
22207
|
-
return mockAction$
|
|
22209
|
+
return mockAction$2(task, params);
|
|
22208
22210
|
}
|
|
22209
|
-
return executeAction$
|
|
22211
|
+
return executeAction$1(task, params);
|
|
22210
22212
|
};
|
|
22211
22213
|
|
|
22212
22214
|
const scanRetryMaxCount = 30;
|
|
@@ -22216,7 +22218,7 @@ const errnoMap = {
|
|
|
22216
22218
|
const saveDraft$1 = (api, params, data) => {
|
|
22217
22219
|
const formData = new FormData$2();
|
|
22218
22220
|
for (const [key, value] of Object.entries(data)) {
|
|
22219
|
-
formData.append(key, value);
|
|
22221
|
+
formData.append(key, value ?? "");
|
|
22220
22222
|
}
|
|
22221
22223
|
return api({
|
|
22222
22224
|
method: "post",
|
|
@@ -22235,7 +22237,7 @@ const saveDraft$1 = (api, params, data) => {
|
|
|
22235
22237
|
const safeAssistant = (api, params, data) => {
|
|
22236
22238
|
const formData = new FormData$2();
|
|
22237
22239
|
for (const [key, value] of Object.entries(data)) {
|
|
22238
|
-
formData.append(key, value);
|
|
22240
|
+
formData.append(key, value ?? "");
|
|
22239
22241
|
}
|
|
22240
22242
|
return api({
|
|
22241
22243
|
method: "post",
|
|
@@ -22253,7 +22255,7 @@ const getUuid = async (api, params, data) => {
|
|
|
22253
22255
|
const formData = new FormData$2();
|
|
22254
22256
|
const defaultErrorMsg = "\u7FA4\u53D1\u4E8C\u7EF4\u7801\u83B7\u53D6\u51FA\u73B0\u95EE\u9898\uFF0C\u8BF7\u8054\u7CFB\u5BA2\u670D";
|
|
22255
22257
|
for (const [key, value] of Object.entries(data)) {
|
|
22256
|
-
formData.append(key, value);
|
|
22258
|
+
formData.append(key, value ?? "");
|
|
22257
22259
|
}
|
|
22258
22260
|
const res = await api({
|
|
22259
22261
|
method: "post",
|
|
@@ -22274,7 +22276,7 @@ const getUuid = async (api, params, data) => {
|
|
|
22274
22276
|
const safeUuid = async (api, params, data) => {
|
|
22275
22277
|
const formData = new FormData$2();
|
|
22276
22278
|
for (const [key, value] of Object.entries(data)) {
|
|
22277
|
-
formData.append(key, value);
|
|
22279
|
+
formData.append(key, value ?? "");
|
|
22278
22280
|
}
|
|
22279
22281
|
const res = await api({
|
|
22280
22282
|
method: "post",
|
|
@@ -22292,7 +22294,7 @@ const massSend = async (api, params, data) => {
|
|
|
22292
22294
|
const formData = new FormData$2();
|
|
22293
22295
|
const defaultErrorMsg = "\u6587\u7AE0\u53D1\u5E03\u51FA\u73B0\u95EE\u9898\uFF0C\u8BF7\u8054\u7CFB\u5BA2\u670D";
|
|
22294
22296
|
for (const [key, value] of Object.entries(data)) {
|
|
22295
|
-
formData.append(key, value);
|
|
22297
|
+
formData.append(key, value ?? "");
|
|
22296
22298
|
}
|
|
22297
22299
|
const res = await api({
|
|
22298
22300
|
method: "post",
|
|
@@ -22308,7 +22310,7 @@ const massSend = async (api, params, data) => {
|
|
|
22308
22310
|
});
|
|
22309
22311
|
return res;
|
|
22310
22312
|
};
|
|
22311
|
-
const mockAction$
|
|
22313
|
+
const mockAction$1 = async (task, params) => {
|
|
22312
22314
|
const tmpCachePath = task.getTmpPath();
|
|
22313
22315
|
const api = axios$1.create({
|
|
22314
22316
|
headers: {
|
|
@@ -22411,7 +22413,7 @@ const mockAction$2 = async (task, params) => {
|
|
|
22411
22413
|
reply_flag0: 0,
|
|
22412
22414
|
not_pay_can_comment0: 0,
|
|
22413
22415
|
token: params.token,
|
|
22414
|
-
AppMsgId: params.appMsgId,
|
|
22416
|
+
AppMsgId: params.appMsgId || "",
|
|
22415
22417
|
title0: params.title,
|
|
22416
22418
|
author0: params?.settingInfo?.wxAuthor || "",
|
|
22417
22419
|
digest0: params?.settingInfo?.wxAbstract || "",
|
|
@@ -22427,7 +22429,7 @@ const mockAction$2 = async (task, params) => {
|
|
|
22427
22429
|
const appMsgId = draftRes.data.appMsgId;
|
|
22428
22430
|
if (params.saveType === "draft") {
|
|
22429
22431
|
task.logger.info("\u5FAE\u4FE1\u516C\u4F17\u53F7\u4FDD\u5B58\u8349\u7A3F\u6210\u529F");
|
|
22430
|
-
return;
|
|
22432
|
+
return appMsgId;
|
|
22431
22433
|
}
|
|
22432
22434
|
const previewResult = await api.get(
|
|
22433
22435
|
"https://mp.weixin.qq.com/cgi-bin/masssendpage",
|
|
@@ -22524,11 +22526,12 @@ const mockAction$2 = async (task, params) => {
|
|
|
22524
22526
|
code
|
|
22525
22527
|
});
|
|
22526
22528
|
task.logger.info("\u5FAE\u4FE1\u516C\u4F17\u53F7\u53D1\u5E03\u5B8C\u6210");
|
|
22529
|
+
return appMsgId;
|
|
22527
22530
|
};
|
|
22528
22531
|
|
|
22529
22532
|
const weixinPublish = async (task, params) => {
|
|
22530
22533
|
task.logger.info("\u5F00\u59CB\u5FAE\u4FE1\u516C\u4F17\u53F7\u53D1\u5E03");
|
|
22531
|
-
return mockAction$
|
|
22534
|
+
return mockAction$1(task, params);
|
|
22532
22535
|
};
|
|
22533
22536
|
|
|
22534
22537
|
const saveDraft = (api, params, data) => {
|
|
@@ -22549,7 +22552,7 @@ const saveDraft = (api, params, data) => {
|
|
|
22549
22552
|
data: formData
|
|
22550
22553
|
});
|
|
22551
22554
|
};
|
|
22552
|
-
const mockAction
|
|
22555
|
+
const mockAction = async (task, params) => {
|
|
22553
22556
|
const tmpCachePath = task.getTmpPath();
|
|
22554
22557
|
const api = axios$1.create({
|
|
22555
22558
|
headers: {
|
|
@@ -22730,9 +22733,9 @@ const rpaAction$1 = async (task, params) => {
|
|
|
22730
22733
|
}
|
|
22731
22734
|
};
|
|
22732
22735
|
|
|
22733
|
-
const executeAction
|
|
22736
|
+
const executeAction = (task, params) => {
|
|
22734
22737
|
return new Promise((resolve, reject) => {
|
|
22735
|
-
mockAction
|
|
22738
|
+
mockAction(task, params).then(resolve).catch(() => {
|
|
22736
22739
|
rpaAction$1(task, params).then(resolve).catch(reject);
|
|
22737
22740
|
});
|
|
22738
22741
|
});
|
|
@@ -22743,14 +22746,16 @@ const weixinmpPublish = async (task, params) => {
|
|
|
22743
22746
|
return rpaAction$1(task, params);
|
|
22744
22747
|
}
|
|
22745
22748
|
if (params.actionType === "mockApi") {
|
|
22746
|
-
return mockAction
|
|
22749
|
+
return mockAction(task, params);
|
|
22747
22750
|
}
|
|
22748
|
-
return executeAction
|
|
22751
|
+
return executeAction(task, params);
|
|
22749
22752
|
};
|
|
22750
22753
|
|
|
22751
|
-
|
|
22752
|
-
|
|
22753
|
-
|
|
22754
|
+
var dayjs_min = {exports: {}};
|
|
22755
|
+
|
|
22756
|
+
(function (module, exports) {
|
|
22757
|
+
!function(t,e){module.exports=e();}(commonjsGlobal,(function(){var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",s="minute",u="hour",a="day",o="week",c="month",f="quarter",h="year",d="date",l="Invalid Date",$=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return "["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},m=function(t,e,n){var r=String(t);return !r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return (e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date()<n.date())return -t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return +(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return {M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},g="en",D={};D[g]=M;var p="$isDayjsObject",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if("string"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split("-");if(!i&&u.length>1)return t(u[0])}else {var a=e.name;D[a]=e,i=a;}return !r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0;}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init();},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds();},m.$utils=function(){return b},m.isValid=function(){return !(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v="set"+(this.$u?"UTC":"");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+"Hours",0);case u:return $(v+"Minutes",1);case s:return $(v+"Seconds",2);case i:return $(v+"Milliseconds",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f="set"+(this.$u?"UTC":""),l=(n={},n[a]=f+"Date",n[d]=f+"Date",n[c]=f+"Month",n[h]=f+"FullYear",n[u]=f+"Hours",n[s]=f+"Minutes",n[i]=f+"Seconds",n[r]=f+"Milliseconds",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d;}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||"YYYY-MM-DDTHH:mm:ssZ",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,"0")},$=f||function(t,e,n){var r=t<12?"AM":"PM";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case"YY":return String(e.$y).slice(-2);case"YYYY":return b.s(e.$y,4,"0");case"M":return a+1;case"MM":return b.s(a+1,2,"0");case"MMM":return h(n.monthsShort,a,c,3);case"MMMM":return h(c,a);case"D":return e.$D;case"DD":return b.s(e.$D,2,"0");case"d":return String(e.$W);case"dd":return h(n.weekdaysMin,e.$W,o,2);case"ddd":return h(n.weekdaysShort,e.$W,o,3);case"dddd":return o[e.$W];case"H":return String(s);case"HH":return b.s(s,2,"0");case"h":return d(1);case"hh":return d(2);case"a":return $(s,u,!0);case"A":return $(s,u,!1);case"m":return String(u);case"mm":return b.s(u,2,"0");case"s":return String(e.$s);case"ss":return b.s(e.$s,2,"0");case"SSS":return b.s(e.$ms,3,"0");case"Z":return i}return null}(t)||i.replace(":","")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g;}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[["$ms",r],["$s",i],["$m",s],["$H",u],["$W",a],["$M",c],["$y",h],["$D",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])};})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));
|
|
22758
|
+
} (dayjs_min));
|
|
22754
22759
|
|
|
22755
22760
|
const rpaAction = async (task, params) => {
|
|
22756
22761
|
const commonCookies = {
|
|
@@ -22834,7 +22839,7 @@ const rpaAction = async (task, params) => {
|
|
|
22834
22839
|
if (params.address) {
|
|
22835
22840
|
await selectAddress(
|
|
22836
22841
|
page.locator(".media-extension .address-input").filter({ hasText: "\u6DFB\u52A0\u5730\u70B9" }),
|
|
22837
|
-
params.address
|
|
22842
|
+
params.address.name
|
|
22838
22843
|
);
|
|
22839
22844
|
}
|
|
22840
22845
|
if (params.selfDeclaration) {
|
|
@@ -22857,7 +22862,7 @@ const rpaAction = async (task, params) => {
|
|
|
22857
22862
|
const selfShootingPopup = await getDialogInstance();
|
|
22858
22863
|
const hasCustomContent = shootingDate || shootingLocation;
|
|
22859
22864
|
if (shootingLocation) {
|
|
22860
|
-
await selectAddress(selfShootingPopup.locator(".address-input"), shootingLocation);
|
|
22865
|
+
await selectAddress(selfShootingPopup.locator(".address-input"), shootingLocation.name);
|
|
22861
22866
|
}
|
|
22862
22867
|
if (shootingDate) {
|
|
22863
22868
|
await selectDate(selfShootingPopup.locator(".date-picker input"), shootingDate);
|
|
@@ -22899,22 +22904,9 @@ const rpaAction = async (task, params) => {
|
|
|
22899
22904
|
return response;
|
|
22900
22905
|
};
|
|
22901
22906
|
|
|
22902
|
-
const executeAction = (task, params) => {
|
|
22903
|
-
return new Promise((resolve, reject) => {
|
|
22904
|
-
mockAction().then(resolve).catch(() => {
|
|
22905
|
-
rpaAction(task, params).then(resolve).catch(reject);
|
|
22906
|
-
});
|
|
22907
|
-
});
|
|
22908
|
-
};
|
|
22909
22907
|
const xiaohongshuPublish = async (task, params) => {
|
|
22910
22908
|
task.logger.info("\u5F00\u59CB\u5C0F\u7EA2\u4E66\u53D1\u5E03");
|
|
22911
|
-
|
|
22912
|
-
return rpaAction(task, params);
|
|
22913
|
-
}
|
|
22914
|
-
if (params.actionType === "mockApi") {
|
|
22915
|
-
return mockAction();
|
|
22916
|
-
}
|
|
22917
|
-
return executeAction(task, params);
|
|
22909
|
+
return rpaAction(task, params);
|
|
22918
22910
|
};
|
|
22919
22911
|
|
|
22920
22912
|
class Action {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iflyrpa/actions",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.8",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
"devDependencies": {
|
|
15
15
|
"@types/mime-types": "^2.1.4",
|
|
16
16
|
"axios": "^1.7.8",
|
|
17
|
+
"dayjs": "^1.11.13",
|
|
17
18
|
"dom-serializer": "^2.0.0",
|
|
18
19
|
"domhandler": "^5.0.3",
|
|
19
20
|
"form-data": "^4.0.1",
|
|
@@ -25,7 +25,7 @@ export interface WeixinPublishParams extends Omit<ActiomCommonParams, "cookies">
|
|
|
25
25
|
safeQrcodeCallback?: (qrcodePath: string) => void; // 二维码验证回调
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
export type PublishAction = CommonAction<WeixinPublishParams>;
|
|
28
|
+
export type PublishAction = CommonAction<WeixinPublishParams, string>;
|
|
29
29
|
|
|
30
30
|
export const weixinPublish: PublishAction = async (task, params) => {
|
|
31
31
|
task.logger.info("开始微信公众号发布");
|
|
@@ -19,7 +19,7 @@ const saveDraft = (api: axios.AxiosInstance, params: WeixinPublishParams, data:
|
|
|
19
19
|
const formData = new FormData();
|
|
20
20
|
|
|
21
21
|
for (const [key, value] of Object.entries(data)) {
|
|
22
|
-
formData.append(key, value);
|
|
22
|
+
formData.append(key, value ?? "");
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
return api<{ appMsgId: string }>({
|
|
@@ -41,7 +41,7 @@ const safeAssistant = (api: axios.AxiosInstance, params: WeixinPublishParams, da
|
|
|
41
41
|
const formData = new FormData();
|
|
42
42
|
|
|
43
43
|
for (const [key, value] of Object.entries(data)) {
|
|
44
|
-
formData.append(key, value);
|
|
44
|
+
formData.append(key, value ?? "");
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
return api<{ operation_seq: string; ticket: string }>({
|
|
@@ -62,7 +62,7 @@ const getUuid = async (api: axios.AxiosInstance, params: WeixinPublishParams, da
|
|
|
62
62
|
const defaultErrorMsg = "群发二维码获取出现问题,请联系客服";
|
|
63
63
|
|
|
64
64
|
for (const [key, value] of Object.entries(data)) {
|
|
65
|
-
formData.append(key, value);
|
|
65
|
+
formData.append(key, value ?? "");
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
const res = await api<{ uuid: string; genuuid_res: number }>({
|
|
@@ -88,7 +88,7 @@ const safeUuid = async (api: axios.AxiosInstance, params: WeixinPublishParams, d
|
|
|
88
88
|
const formData = new FormData();
|
|
89
89
|
|
|
90
90
|
for (const [key, value] of Object.entries(data)) {
|
|
91
|
-
formData.append(key, value);
|
|
91
|
+
formData.append(key, value ?? "");
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
const res = await api<{ code: string; errcode: number }>({
|
|
@@ -110,7 +110,7 @@ const massSend = async (api: axios.AxiosInstance, params: WeixinPublishParams, d
|
|
|
110
110
|
const defaultErrorMsg = "文章发布出现问题,请联系客服";
|
|
111
111
|
|
|
112
112
|
for (const [key, value] of Object.entries(data)) {
|
|
113
|
-
formData.append(key, value);
|
|
113
|
+
formData.append(key, value ?? "");
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
const res = await api<{ code: string; errcode: number }>({
|
|
@@ -262,7 +262,7 @@ export const mockAction: PublishAction = async (task, params) => {
|
|
|
262
262
|
not_pay_can_comment0: 0,
|
|
263
263
|
|
|
264
264
|
token: params.token,
|
|
265
|
-
AppMsgId: params.appMsgId,
|
|
265
|
+
AppMsgId: params.appMsgId || "",
|
|
266
266
|
title0: params.title,
|
|
267
267
|
author0: params?.settingInfo?.wxAuthor || "",
|
|
268
268
|
digest0: params?.settingInfo?.wxAbstract || "",
|
|
@@ -281,7 +281,7 @@ export const mockAction: PublishAction = async (task, params) => {
|
|
|
281
281
|
// 如果只需要保存为草稿,直接返回 appMsgId
|
|
282
282
|
if (params.saveType === "draft") {
|
|
283
283
|
task.logger.info("微信公众号保存草稿成功");
|
|
284
|
-
return;
|
|
284
|
+
return appMsgId;
|
|
285
285
|
}
|
|
286
286
|
|
|
287
287
|
// 4. 预览
|
|
@@ -397,4 +397,5 @@ export const mockAction: PublishAction = async (task, params) => {
|
|
|
397
397
|
});
|
|
398
398
|
|
|
399
399
|
task.logger.info("微信公众号发布完成");
|
|
400
|
+
return appMsgId;
|
|
400
401
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CommonAction, CookiesSetDetails } from "@iflyrpa/share";
|
|
2
2
|
|
|
3
|
-
import type { ActiomCommonParams } from "../../types";
|
|
3
|
+
import type { ActiomCommonParams, Xiaohongshu } from "../../types";
|
|
4
4
|
import { mockAction } from "./mock";
|
|
5
5
|
import { rpaAction } from "./rpa";
|
|
6
6
|
|
|
@@ -15,7 +15,7 @@ interface AIGenerated {
|
|
|
15
15
|
interface SourceStatement {
|
|
16
16
|
type: "source-statement"; // 内容来源声明
|
|
17
17
|
childType: "self-labeling" | "self-shooting" | "transshipment"; // 已自主标注 / 自助拍摄 / 转载
|
|
18
|
-
shootingLocation?:
|
|
18
|
+
shootingLocation?: Xiaohongshu.Location; // 拍摄地点
|
|
19
19
|
shootingDate?: string; // 拍摄日期
|
|
20
20
|
sourceMedia?: string; // 来源媒体
|
|
21
21
|
}
|
|
@@ -27,7 +27,7 @@ export interface XiaohongshuPublishParams extends Omit<ActiomCommonParams, "cook
|
|
|
27
27
|
banners: string[]; // 图片
|
|
28
28
|
title: string; // 标题
|
|
29
29
|
content: string; // 正文
|
|
30
|
-
address?:
|
|
30
|
+
address?: Xiaohongshu.Location; // 地点
|
|
31
31
|
selfDeclaration?: SelfDeclaration; // 自主声明
|
|
32
32
|
visibleRange: "public" | "private"; // 可见范围
|
|
33
33
|
isImmediatelyPublish?: boolean; // 是否立即发布
|
|
@@ -49,13 +49,15 @@ const executeAction: PublishAction = (task, params) => {
|
|
|
49
49
|
export const xiaohongshuPublish: PublishAction = async (task, params) => {
|
|
50
50
|
task.logger.info("开始小红书发布");
|
|
51
51
|
|
|
52
|
-
|
|
53
|
-
return rpaAction(task, params);
|
|
54
|
-
}
|
|
52
|
+
return rpaAction(task, params);
|
|
55
53
|
|
|
56
|
-
if (params.actionType === "
|
|
57
|
-
|
|
58
|
-
}
|
|
54
|
+
// if (params.actionType === "rpa") {
|
|
55
|
+
// return rpaAction(task, params);
|
|
56
|
+
// }
|
|
59
57
|
|
|
60
|
-
|
|
58
|
+
// if (params.actionType === "mockApi") {
|
|
59
|
+
// return mockAction(task, params);
|
|
60
|
+
// }
|
|
61
|
+
|
|
62
|
+
// return executeAction(task, params);
|
|
61
63
|
};
|
|
@@ -1,5 +1,222 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
// import type { CookieMap } from "@iflyrpa/share";
|
|
4
|
+
import { downloadImage, getFilenameFromUrl, sleep } from "@iflyrpa/share";
|
|
5
|
+
import axios, { type AxiosResponse } from "axios";
|
|
6
|
+
import dayjs from "dayjs";
|
|
1
7
|
import type { PublishAction } from ".";
|
|
2
8
|
|
|
3
|
-
|
|
9
|
+
interface CommonResponse<T = unknown> {
|
|
10
|
+
data: T;
|
|
11
|
+
code: number;
|
|
12
|
+
success: boolean;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
interface UploadTempPermit {
|
|
16
|
+
bucket: string;
|
|
17
|
+
fileIds: string[];
|
|
18
|
+
token: string;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const errnoMap: Record<number, string> = {};
|
|
22
|
+
|
|
23
|
+
// const commonCookies: CookieMap[number] = {
|
|
24
|
+
// path: "/",
|
|
25
|
+
// sameSite: "lax",
|
|
26
|
+
// secure: false,
|
|
27
|
+
// domain: "xiaohongshu.com",
|
|
28
|
+
// url: "https://creator.xiaohongshu.com",
|
|
29
|
+
// httpOnly: true,
|
|
30
|
+
// };
|
|
31
|
+
|
|
32
|
+
export const mockAction: PublishAction = async (task, params) => {
|
|
33
|
+
// const page = await task.createPage({
|
|
34
|
+
// show: task.debug,
|
|
35
|
+
// url: params.url || "https://creator.xiaohongshu.com/publish/publish",
|
|
36
|
+
// cookies: params.cookies?.map((it) => ({ ...commonCookies, ...it })) || [],
|
|
37
|
+
// });
|
|
38
|
+
const tmpCachePath = task.getTmpPath();
|
|
39
|
+
|
|
40
|
+
await sleep(5000);
|
|
41
|
+
|
|
42
|
+
const fetchCoverArg = `/api/media/v1/upload/creator/permit?biz_name=spectrum&scene=image&file_count=${params.banners.length}&version=1&source=web`;
|
|
43
|
+
|
|
44
|
+
// const xsValue = await page.evaluate(([arg]) => window._webmsxyw(), [fetchCoverArg]);
|
|
45
|
+
|
|
46
|
+
const api = axios.create({
|
|
47
|
+
headers: {
|
|
48
|
+
cookie: params.cookies.map((it) => `${it.name}=${it.value}`).join(";"),
|
|
49
|
+
referer: "https://creator.xiaohongshu.com/publish/publish?source=official&from=tab_switch",
|
|
50
|
+
// "x-s": xsValue["X-s"],
|
|
51
|
+
// "x-t": xsValue["X-t"],
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
// 添加响应拦截器
|
|
56
|
+
api.interceptors.response.use(
|
|
57
|
+
(response: AxiosResponse<CommonResponse>) => {
|
|
58
|
+
const responseData = response.data;
|
|
59
|
+
|
|
60
|
+
// 检查响应中的 errno 字段
|
|
61
|
+
if (responseData?.code && responseData.code !== 0) {
|
|
62
|
+
const errmsg = errnoMap[responseData.code] || response.config.defaultErrorMsg || "Unknown error";
|
|
63
|
+
|
|
64
|
+
task.logger.error(errmsg, responseData);
|
|
65
|
+
|
|
66
|
+
return Promise.reject(new Error(errmsg));
|
|
67
|
+
}
|
|
68
|
+
// 如果 errno 为 0,返回响应数据
|
|
69
|
+
return response;
|
|
70
|
+
},
|
|
71
|
+
(error) => {
|
|
72
|
+
task.logger.error("小红书接口请求失败:", error);
|
|
73
|
+
// 处理响应错误
|
|
74
|
+
return Promise.reject(error);
|
|
75
|
+
},
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
// 0. 获取上传 token
|
|
79
|
+
const coverIdInfo = await api<{ data: { uploadTempPermits: UploadTempPermit[] } }>({
|
|
80
|
+
method: "get",
|
|
81
|
+
url: `https://creator.xiaohongshu.com${fetchCoverArg}`,
|
|
82
|
+
defaultErrorMsg: "获取上传附件 token 失败",
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
const coverIds = coverIdInfo.data.data.uploadTempPermits[0].fileIds;
|
|
86
|
+
const ossToken = coverIdInfo.data.data.uploadTempPermits[0].token;
|
|
87
|
+
|
|
88
|
+
// 1. 上传附件
|
|
89
|
+
const uploadFile = async (url: string, index: number) => {
|
|
90
|
+
const fileName = getFilenameFromUrl(url);
|
|
91
|
+
const localUrl = await downloadImage(url, path.join(tmpCachePath, fileName));
|
|
92
|
+
|
|
93
|
+
const ossFileId = coverIds[index];
|
|
94
|
+
// 读取本地文件,转成 Buffer
|
|
95
|
+
const fileBuffer = fs.readFileSync(localUrl);
|
|
96
|
+
|
|
97
|
+
await api.put(`https://ros-upload.xiaohongshu.com/${ossFileId}`, fileBuffer, {
|
|
98
|
+
headers: {
|
|
99
|
+
"x-cos-security-token": ossToken,
|
|
100
|
+
},
|
|
101
|
+
defaultErrorMsg: "获取上传附件 token 失败",
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
return { ossFileId, ossToken };
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
const coverInfos = await Promise.all(params.banners.map((it, idx) => uploadFile(it, idx)));
|
|
108
|
+
|
|
109
|
+
const publishData = {
|
|
110
|
+
common: {
|
|
111
|
+
ats: [],
|
|
112
|
+
biz_relations: [],
|
|
113
|
+
desc: params?.content,
|
|
114
|
+
goods_info: {},
|
|
115
|
+
hash_tag: [],
|
|
116
|
+
note_id: "",
|
|
117
|
+
source: JSON.stringify({
|
|
118
|
+
type: "web",
|
|
119
|
+
ids: "",
|
|
120
|
+
extraInfo: '{"systemId":"web"}',
|
|
121
|
+
}),
|
|
122
|
+
title: params?.title,
|
|
123
|
+
type: "normal",
|
|
124
|
+
privacy_info: {
|
|
125
|
+
op_type: 1,
|
|
126
|
+
type: params.visibleRange === "public" ? 0 : 1,
|
|
127
|
+
},
|
|
128
|
+
post_loc: params.address
|
|
129
|
+
? {
|
|
130
|
+
name: params.address?.name,
|
|
131
|
+
poi_id: params.address?.poi_id,
|
|
132
|
+
poi_type: params.address?.poi_type,
|
|
133
|
+
subname: params.address?.full_address,
|
|
134
|
+
}
|
|
135
|
+
: null,
|
|
136
|
+
business_binds: "",
|
|
137
|
+
},
|
|
138
|
+
image_info: {
|
|
139
|
+
images: coverInfos.map((it) => ({
|
|
140
|
+
extra_info_json: '{"mimeType":"image/png"}',
|
|
141
|
+
file_id: it.ossFileId,
|
|
142
|
+
metadata: {
|
|
143
|
+
source: -1,
|
|
144
|
+
},
|
|
145
|
+
stickers: {
|
|
146
|
+
floating: [],
|
|
147
|
+
version: 2,
|
|
148
|
+
},
|
|
149
|
+
})),
|
|
150
|
+
},
|
|
151
|
+
video_info: null,
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
// 自主声明
|
|
155
|
+
const userDeclarationBind = {
|
|
156
|
+
origin: 2,
|
|
157
|
+
photoInfo: {},
|
|
158
|
+
repostInfo: {},
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
if (params.selfDeclaration?.type === "fictional-rendition") {
|
|
162
|
+
// 虚拟演绎,仅供娱乐
|
|
163
|
+
userDeclarationBind.origin = 1;
|
|
164
|
+
} else if (params.selfDeclaration?.type === "ai-generated") {
|
|
165
|
+
// 笔记含AI合成内容
|
|
166
|
+
userDeclarationBind.origin = 2;
|
|
167
|
+
} else if (params.selfDeclaration?.type === "source-statement") {
|
|
168
|
+
// 内容来源声明
|
|
169
|
+
if (params.selfDeclaration.childType === "self-labeling") {
|
|
170
|
+
// 已自主标注
|
|
171
|
+
userDeclarationBind.origin = 3;
|
|
172
|
+
} else if (params.selfDeclaration.childType === "self-shooting") {
|
|
173
|
+
// 自主拍摄
|
|
174
|
+
userDeclarationBind.origin = 4;
|
|
175
|
+
const photoInfo: { photoPlace?: unknown; photoTime?: string } = {};
|
|
176
|
+
|
|
177
|
+
if (params.selfDeclaration.shootingLocation) {
|
|
178
|
+
// 拍摄地点
|
|
179
|
+
photoInfo.photoPlace = {
|
|
180
|
+
name: params.selfDeclaration.shootingLocation.name,
|
|
181
|
+
poiId: params.selfDeclaration.shootingLocation.poi_id,
|
|
182
|
+
poiType: params.selfDeclaration.shootingLocation.poi_type,
|
|
183
|
+
subname: params.selfDeclaration.shootingLocation.full_address,
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
if (params.selfDeclaration.shootingDate) {
|
|
188
|
+
// 拍摄日期
|
|
189
|
+
photoInfo.photoTime = params.selfDeclaration.shootingDate;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
userDeclarationBind.photoInfo = photoInfo;
|
|
193
|
+
} else if (params.selfDeclaration.childType === "transshipment") {
|
|
194
|
+
// 来源转载
|
|
195
|
+
userDeclarationBind.origin = 5;
|
|
196
|
+
|
|
197
|
+
if (params.selfDeclaration.sourceMedia) {
|
|
198
|
+
// 来源媒体
|
|
199
|
+
userDeclarationBind.repostInfo = {
|
|
200
|
+
source: params.selfDeclaration.sourceMedia,
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
const business_binds = {
|
|
207
|
+
version: 1,
|
|
208
|
+
bizType: "",
|
|
209
|
+
noteId: "",
|
|
210
|
+
noteOrderBind: {},
|
|
211
|
+
// 发布时间 - 立即发布
|
|
212
|
+
notePostTiming: params.isImmediatelyPublish ? { postTime: dayjs().format("YYYY-MM-DD HH:mm") } : {},
|
|
213
|
+
noteCollectionBind: { id: "" },
|
|
214
|
+
...(params.selfDeclaration ? { userDeclarationBind } : {}),
|
|
215
|
+
};
|
|
216
|
+
|
|
217
|
+
publishData.common.business_binds = JSON.stringify(business_binds);
|
|
218
|
+
|
|
219
|
+
console.log(publishData);
|
|
220
|
+
|
|
4
221
|
return Promise.reject();
|
|
5
222
|
};
|
|
@@ -127,7 +127,7 @@ export const rpaAction: PublishAction = async (task, params) => {
|
|
|
127
127
|
// 填写地点
|
|
128
128
|
await selectAddress(
|
|
129
129
|
page.locator(".media-extension .address-input").filter({ hasText: "添加地点" }),
|
|
130
|
-
params.address,
|
|
130
|
+
params.address.name,
|
|
131
131
|
);
|
|
132
132
|
}
|
|
133
133
|
|
|
@@ -157,7 +157,7 @@ export const rpaAction: PublishAction = async (task, params) => {
|
|
|
157
157
|
|
|
158
158
|
// 选择拍摄地点
|
|
159
159
|
if (shootingLocation) {
|
|
160
|
-
await selectAddress(selfShootingPopup.locator(".address-input"), shootingLocation);
|
|
160
|
+
await selectAddress(selfShootingPopup.locator(".address-input"), shootingLocation.name);
|
|
161
161
|
}
|
|
162
162
|
// 选择拍摄日期
|
|
163
163
|
if (shootingDate) {
|
package/src/global.d.ts
ADDED