@iflyrpa/actions 1.0.5 → 1.1.6

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 CHANGED
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- const fs$1 = require('node:fs');
3
+ const __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__ = require('node:fs');
4
4
  const path$1 = require('node:path');
5
- const https$2 = require('node:https');
5
+ const __WEBPACK_EXTERNAL_MODULE_node_https_626f33a7__ = require('node:https');
6
6
  const require$$1 = require('util');
7
7
  const stream = require('stream');
8
8
  const require$$1$1 = require('path');
@@ -17,9 +17,23 @@ const events$1 = require('events');
17
17
 
18
18
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
19
19
 
20
- const fs__default = /*#__PURE__*/_interopDefaultCompat(fs$1);
20
+ function _interopNamespaceCompat(e) {
21
+ if (e && typeof e === 'object' && 'default' in e) return e;
22
+ const n = Object.create(null);
23
+ if (e) {
24
+ for (const k in e) {
25
+ n[k] = e[k];
26
+ }
27
+ }
28
+ n.default = e;
29
+ return n;
30
+ }
31
+
32
+ const __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c____namespace = /*#__PURE__*/_interopNamespaceCompat(__WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__);
33
+ const __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c____default = /*#__PURE__*/_interopDefaultCompat(__WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__);
34
+ const path__namespace = /*#__PURE__*/_interopNamespaceCompat(path$1);
21
35
  const path__default = /*#__PURE__*/_interopDefaultCompat(path$1);
22
- const https__default = /*#__PURE__*/_interopDefaultCompat(https$2);
36
+ const __WEBPACK_EXTERNAL_MODULE_node_https_626f33a7____namespace = /*#__PURE__*/_interopNamespaceCompat(__WEBPACK_EXTERNAL_MODULE_node_https_626f33a7__);
23
37
  const require$$1__default = /*#__PURE__*/_interopDefaultCompat(require$$1);
24
38
  const stream__default = /*#__PURE__*/_interopDefaultCompat(stream);
25
39
  const require$$1__default$1 = /*#__PURE__*/_interopDefaultCompat(require$$1$1);
@@ -32,79 +46,65 @@ const require$$0__default$1 = /*#__PURE__*/_interopDefaultCompat(require$$0$1);
32
46
  const zlib__default = /*#__PURE__*/_interopDefaultCompat(zlib);
33
47
 
34
48
  function ensureFile(filePath) {
35
- return new Promise((resolve, reject) => {
36
- const dirPath = path__default.dirname(filePath);
37
- fs__default.stat(dirPath, (err, stats) => {
38
- if (err) {
39
- if (err.code === "ENOENT") {
40
- fs__default.mkdir(dirPath, { recursive: true }, (err2) => {
41
- if (err2) {
42
- return reject(err2);
43
- }
44
- createFile();
45
- });
46
- } else {
47
- return reject(err);
48
- }
49
- } else if (stats.isDirectory()) {
50
- checkFile();
51
- } else {
52
- reject(new Error(`${dirPath} is not a directory`));
53
- }
54
- });
55
- function checkFile() {
56
- fs__default.stat(filePath, (err, stats) => {
57
- if (err) {
58
- if (err.code === "ENOENT") {
59
- createFile();
60
- } else {
61
- reject(err);
62
- }
63
- } else if (stats.isFile()) {
64
- resolve();
65
- } else {
66
- reject(new Error(`${filePath} is not a file`));
49
+ return new Promise((resolve, reject)=>{
50
+ const dirPath = path__namespace["default"].dirname(filePath);
51
+ __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c____namespace["default"].stat(dirPath, (err, stats)=>{
52
+ if (err) {
53
+ if ("ENOENT" !== err.code) return reject(err);
54
+ __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c____namespace["default"].mkdir(dirPath, {
55
+ recursive: true
56
+ }, (err)=>{
57
+ if (err) return reject(err);
58
+ createFile();
59
+ });
60
+ } else if (stats.isDirectory()) checkFile();
61
+ else reject(new Error(`${dirPath} is not a directory`));
62
+ });
63
+ function checkFile() {
64
+ __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c____namespace["default"].stat(filePath, (err, stats)=>{
65
+ if (err) {
66
+ if ("ENOENT" === err.code) createFile();
67
+ else reject(err);
68
+ } else if (stats.isFile()) resolve();
69
+ else reject(new Error(`${filePath} is not a file`));
70
+ });
67
71
  }
68
- });
69
- }
70
- function createFile() {
71
- fs__default.writeFile(filePath, "", (err) => {
72
- if (err) {
73
- reject(err);
74
- } else {
75
- resolve();
72
+ function createFile() {
73
+ __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c____namespace["default"].writeFile(filePath, "", (err)=>{
74
+ if (err) reject(err);
75
+ else resolve();
76
+ });
76
77
  }
77
- });
78
- }
79
- });
78
+ });
80
79
  }
81
80
  async function downloadImage(url, savePath) {
82
- await ensureFile(savePath);
83
- return new Promise((resolve, reject) => {
84
- https__default.get(url, (response) => {
85
- if (response.statusCode === 200) {
86
- const fileStream = fs__default.createWriteStream(savePath);
87
- response.pipe(fileStream);
88
- fileStream.on("finish", () => {
89
- fileStream.close();
90
- console.log("\u4E0B\u8F7D\u5B8C\u6210\uFF0C\u6587\u4EF6\u5DF2\u4FDD\u5B58\u81F3:", savePath);
91
- resolve(savePath);
81
+ await ensureFile(savePath);
82
+ return new Promise((resolve, reject)=>{
83
+ __WEBPACK_EXTERNAL_MODULE_node_https_626f33a7____namespace["default"].get(url, (response)=>{
84
+ if (200 === response.statusCode) {
85
+ const fileStream = __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c____namespace["default"].createWriteStream(savePath);
86
+ response.pipe(fileStream);
87
+ fileStream.on("finish", ()=>{
88
+ fileStream.close();
89
+ console.log("下载完成,文件已保存至:", savePath);
90
+ resolve(savePath);
91
+ });
92
+ } else {
93
+ console.log("图片下载失败:", response.statusCode);
94
+ response.resume();
95
+ reject();
96
+ }
97
+ }).on("error", (error)=>{
98
+ console.error("请求图片时发生错误:", error.message);
99
+ reject();
92
100
  });
93
- } else {
94
- console.log("\u56FE\u7247\u4E0B\u8F7D\u5931\u8D25:", response.statusCode);
95
- response.resume();
96
- reject();
97
- }
98
- }).on("error", (error) => {
99
- console.error("\u8BF7\u6C42\u56FE\u7247\u65F6\u53D1\u751F\u9519\u8BEF:", error.message);
100
- reject();
101
101
  });
102
- });
103
102
  }
104
103
  function getFilenameFromUrl(imageUrl) {
105
- const parsedUrl = new URL(imageUrl);
106
- return path__default.basename(parsedUrl.pathname);
104
+ const parsedUrl = new URL(imageUrl);
105
+ return path__namespace["default"].basename(parsedUrl.pathname);
107
106
  }
107
+ const sleep = (ms)=>new Promise((resolve)=>setTimeout(resolve, ms));
108
108
 
109
109
  function bind(fn, thisArg) {
110
110
  return function wrap() {
@@ -13558,12 +13558,12 @@ const hasStandardBrowserWebWorkerEnv = (() => {
13558
13558
  const origin = hasBrowserEnv && window.location.href || 'http://localhost';
13559
13559
 
13560
13560
  const utils = {
13561
- __proto__: null,
13562
- hasBrowserEnv: hasBrowserEnv,
13563
- hasStandardBrowserEnv: hasStandardBrowserEnv,
13564
- hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv,
13565
- navigator: _navigator,
13566
- origin: origin
13561
+ __proto__: null,
13562
+ hasBrowserEnv: hasBrowserEnv,
13563
+ hasStandardBrowserEnv: hasStandardBrowserEnv,
13564
+ hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv,
13565
+ navigator: _navigator,
13566
+ origin: origin
13567
13567
  };
13568
13568
 
13569
13569
  const platform = {
@@ -21553,7 +21553,7 @@ class Parser {
21553
21553
  const getFileState = (filePath) => {
21554
21554
  const filename = path__default.basename(filePath);
21555
21555
  const fileType = mime$1.lookup(filePath);
21556
- const stats = fs__default.statSync(filePath);
21556
+ const stats = __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c____default.statSync(filePath);
21557
21557
  const fileSize = stats.size;
21558
21558
  const lastModifiedDate = stats.mtime;
21559
21559
  return {
@@ -21625,17 +21625,17 @@ const replaceImgSrc = (html, callback) => {
21625
21625
  return lastedHtml;
21626
21626
  };
21627
21627
 
21628
- const errnoMap$1 = {
21629
- 20040706: "\u6B63\u6587\u548C\u5C01\u9762\u56FE\u7247\u63A8\u8350\u4F7F\u752820M\u4EE5\u5185\u7684jpg\u548Cpng\u56FE\u7247",
21630
- 20040084: "\u6B63\u6587\u548C\u5C01\u9762\u56FE\u7247\u63A8\u8350\u4F7F\u752820M\u4EE5\u5185\u7684jpg\u548Cpng\u56FE\u7247",
21631
- 20050004: "\u53D1\u5E03\u6B21\u6570\u7528\u5C3D\uFF0C\u8BF7\u660E\u5929\u518D\u8BD5",
21632
- 10000015: "\u7F51\u7EDC\u73AF\u5883\u6709\u95EE\u9898\uFF0C\u9700\u8981\u53BB\u5E73\u53F0\u5B8C\u6210\u9A8C\u8BC1",
21633
- 2005e4: "\u53D1\u5E03\u64CD\u4F5C\u592A\u9891\u7E41\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5",
21634
- 20040027: "\u8D26\u53F7\u72B6\u6001\u6709\u95EE\u9898\uFF0C\u8BF7\u5230\u767E\u5BB6\u53F7\u5E73\u53F0\u68C0\u67E5\u8D26\u53F7\u72B6\u6001",
21635
- 10000017: "\u8D26\u53F7\u72B6\u6001\u6709\u95EE\u9898\uFF0C\u8BF7\u5230\u767E\u5BB6\u53F7\u5E73\u53F0\u9700\u8981\u9A8C\u8BC1\u901A\u8FC7\u624D\u53EF\u53D1\u6587",
21636
- 20040033: "\u5C01\u9762\u56FE\u7247\u63A8\u8350\u4F7F\u7528\u5BBD\u9AD8\u5728372*284~5000*5000\u4EE5\u5185\u7684jpg\u548Cpng\u56FE\u7247",
21637
- 2004005714: "\u7F51\u7EDC\u73AF\u5883\u6709\u95EE\u9898\uFF0C\u6682\u65F6\u4E0D\u80FD\u53D1\u6587",
21638
- 401100032: "\u4E0D\u652F\u6301\u8BE5\u5A92\u8D44\u7C7B\u578B\uFF0C\u8BF7\u68C0\u67E5\u56FE\u7247\uFF08\u4F8B\u5982\uFF1A\u7248\u6743\uFF09"
21628
+ const errnoMap$2 = {
21629
+ 20040706: "\u6B63\u6587\u56FE\u7247\u548C\u5C01\u9762\u56FE\u7247\u63A8\u8350jpg\u3001png\u683C\u5F0F\u3002",
21630
+ 20040084: "\u6B63\u6587\u56FE\u7247\u548C\u5C01\u9762\u56FE\u7247\u63A8\u8350jpg\u3001png\u683C\u5F0F\u3002",
21631
+ 20050004: "\u4ECA\u65E5\u767E\u5BB6\u53F7\u53D1\u5E03\u6B21\u6570\u5DF2\u8FBE\u4E0A\u9650\uFF0C\u8BF7\u660E\u5929\u518D\u8BD5\u3002",
21632
+ 10000015: "\u8D26\u53F7\u5B58\u5728\u5F02\u5E38\uFF0C\u9700\u524D\u5F80\u767E\u5BB6\u53F7\u5E73\u53F0\u5B8C\u6210\u53D1\u6587\u9A8C\u8BC1\u540E\u53EF\u6FC0\u6D3B\u4F7F\u7528\u3002",
21633
+ 2005e4: "\u64CD\u4F5C\u592A\u9891\u7E41\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5",
21634
+ 20040027: "\u4F60\u7684\u8D26\u53F7\u72B6\u6001\u5F02\u5E38\uFF0C\u8BF7\u5230\u767E\u5BB6\u53F7\u5E73\u53F0\u68C0\u67E5\u8D26\u53F7\u72B6\u6001\u3002",
21635
+ 10000017: "\u8D26\u53F7\u5B58\u5728\u5F02\u5E38\uFF0C\u9700\u524D\u5F80\u767E\u5BB6\u53F7\u5E73\u53F0\u5B8C\u6210\u53D1\u6587\u9A8C\u8BC1\u540E\u53EF\u6FC0\u6D3B\u4F7F\u7528\u3002",
21636
+ 20040033: "\u5C01\u9762\u56FE\u7247\u63A8\u8350 jpg\u3001png\u683C\u5F0F\uFF0C\u5BBD\u9AD8\u5728372\xD7284-5000\xD75000 \u8303\u56F4\u5185\u3002",
21637
+ 2004005714: "\u7F51\u7EDC\u73AF\u5883\u5F02\u5E38\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u540E\u91CD\u8BD5\u53D1\u5E03\u3002",
21638
+ 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
21639
  };
21640
21640
  const mockAction$5 = async (task, params) => {
21641
21641
  const { baijiahaoSingleCover, baijiahaoMultCover, baijiahaoCoverType } = params.settingInfo;
@@ -21649,7 +21649,7 @@ const mockAction$5 = async (task, params) => {
21649
21649
  api.interceptors.response.use(
21650
21650
  (response) => {
21651
21651
  if (response.data.errno !== 0) {
21652
- const errmsg = errnoMap$1[response.data.errno] || response.config.defaultErrorMsg || response.data.errmsg || "Unknown error";
21652
+ const errmsg = response.data.errno === 2005e4 ? (params.saveType === "draft" ? "\u540C\u6B65" : "\u53D1\u5E03") + errnoMap$2[response.data.errno] : response.data.errno === 401100032 ? "\u56FE\u7247" + (params.saveType === "draft" ? "\u540C\u6B65" : "\u53D1\u5E03") + errnoMap$2[response.data.errno] : errnoMap$2[response.data.errno] || response.config.defaultErrorMsg || (params.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");
21653
21653
  task.logger.error(errmsg);
21654
21654
  return Promise.reject(new Error(errmsg));
21655
21655
  }
@@ -21662,7 +21662,7 @@ const mockAction$5 = async (task, params) => {
21662
21662
  await api({
21663
21663
  method: "get",
21664
21664
  url: "https://baijiahao.baidu.com/pcui/home/index",
21665
- defaultErrorMsg: "\u767B\u5F55\u5931\u6548"
21665
+ defaultErrorMsg: `\u767E\u5BB6\u53F7\u767B\u5F55\u72B6\u6001\u5931\u6548\uFF0C\u8BF7\u91CD\u65B0\u7ED1\u5B9A\u8D26\u53F7\u540E${params.saveType === "draft" ? "\u540C\u6B65" : "\u53D1\u5E03"}\u3002`
21666
21666
  });
21667
21667
  const appIdInfo = await api({
21668
21668
  method: "post",
@@ -21687,12 +21687,12 @@ const mockAction$5 = async (task, params) => {
21687
21687
  formData.append("no_compress", "0");
21688
21688
  formData.append("article_type", "news");
21689
21689
  formData.append("app_id", appId);
21690
- formData.append("media", fs__default.createReadStream(image));
21690
+ formData.append("media", __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c____default.createReadStream(image));
21691
21691
  const res2 = await api({
21692
21692
  method: "post",
21693
21693
  url: "https://baijiahao.baidu.com/pcui/picture/uploadproxy",
21694
21694
  data: formData,
21695
- defaultErrorMsg: "\u56FE\u7247\u4E0A\u4F20\u51FA\u73B0\u95EE\u9898\uFF0C\u8BF7\u8054\u7CFB\u5BA2\u670D"
21695
+ defaultErrorMsg: params.saveType === "draft" ? "\u56FE\u7247\u4E0A\u4F20\u5F02\u5E38\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u540C\u6B65\u3002" : "\u56FE\u7247\u4E0A\u4F20\u5F02\u5E38\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u53D1\u5E03\u3002"
21696
21696
  });
21697
21697
  return res2.data.ret;
21698
21698
  })
@@ -21761,7 +21761,7 @@ const mockAction$5 = async (task, params) => {
21761
21761
  origin: "https://baijiahao.baidu.com",
21762
21762
  referer: "https://baijiahao.baidu.com/builder/rc/edit?type=news"
21763
21763
  },
21764
- defaultErrorMsg: isDraft ? "\u6587\u7AE0\u540C\u6B65\u51FA\u73B0\u95EE\u9898\uFF0C\u8BF7\u8054\u7CFB\u5BA2\u670D" : "\u6587\u7AE0\u53D1\u5E03\u51FA\u73B0\u95EE\u9898\uFF0C\u8BF7\u8054\u7CFB\u5BA2\u670D"
21764
+ defaultErrorMsg: isDraft ? "\u6587\u7AE0\u540C\u6B65\u51FA\u73B0\u5F02\u5E38\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002" : "\u6587\u7AE0\u53D1\u5E03\u51FA\u73B0\u5F02\u5E38\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002"
21765
21765
  });
21766
21766
  return res.data.ret.article_id;
21767
21767
  };
@@ -21886,14 +21886,9 @@ const searchXiaohongshuLocation = async (task, params) => {
21886
21886
  type: 3
21887
21887
  }
21888
21888
  });
21889
- if (data.code === 0) {
21890
- return data.data.poi_list.map((it) => ({
21891
- label: it.name,
21892
- value: it.poi_id
21893
- }));
21894
- }
21895
- return [];
21889
+ return data.code === 0 ? data.data.poi_list : [];
21896
21890
  } catch (error) {
21891
+ task.logger.error("\u83B7\u53D6\u5C0F\u7EA2\u4E66\u5730\u5740\u5931\u8D25");
21897
21892
  return [];
21898
21893
  }
21899
21894
  };
@@ -21903,14 +21898,29 @@ const COVER_TYPE = {
21903
21898
  single: 2,
21904
21899
  multiple: 3
21905
21900
  };
21906
- const errnoMap = {
21907
- 20004020: "\u56FE\u7247\u4E0A\u4F20\u51FA\u73B0\u95EE\u9898\uFF0C\u8BF7\u91CD\u65B0\u7ED1\u5B9A\u8D26\u53F7\u540E\u518D\u5C1D\u8BD5",
21908
- 7115: "\u6B63\u6587\u548C\u5C01\u9762\u56FE\u7247\u63A8\u8350\u4F7F\u752820M\u4EE5\u5185\u7684jpg\u548Cpng\u56FE\u7247",
21909
- 100006: "\u6587\u7AE0\u53D1\u5E03\u51FA\u73B0\u95EE\u9898\uFF0C\u8BF7\u91CD\u65B0\u7ED1\u5B9A\u8D26\u53F7\u540E\u518D\u5C1D\u8BD5",
21910
- 3101: "\u7F51\u7EDC\u73AF\u5883\u6709\u95EE\u9898\uFF0C\u9700\u8981\u53BB\u5E73\u53F0\u5B8C\u6210\u9A8C\u8BC1",
21911
- 2007: "\u6587\u7AE0\u53D1\u5E03\u51FA\u73B0\u95EE\u9898\uFF0C\u58F0\u660E\u539F\u521B\u65F6\uFF0C\u6B63\u6587\u5B57\u6570\u9700\u5927\u4E8E300\u5B57",
21912
- 1053: "\u6B63\u6587\u548C\u5C01\u9762\u56FE\u7247\u63A8\u8350\u4F7F\u752820M\u4EE5\u5185\u7684jpg\u548Cpng\u56FE\u7247",
21913
- 2005: "\u65E0\u58F0\u660E\u539F\u521B\u6743\u9650\uFF0C\u8BF7\u53D6\u6D88\u539F\u521B\u58F0\u660E\u6216\u7533\u8BF7\u539F\u521B\u6743\u9650\u540E\u518D\u5C1D\u8BD5"
21901
+ const errnoMap$1 = {
21902
+ 20004020: "\u56FE\u7247\u4E0A\u4F20\u5F02\u5E38\uFF0C\u8BF7\u91CD\u65B0\u7ED1\u5B9A\u8D26\u53F7\u540E\u540C\u6B65\u3002",
21903
+ 7115: "\u6B63\u6587\u56FE\u7247\u548C\u5C01\u9762\u56FE\u7247\u63A8\u8350jpg\u3001png\u683C\u5F0F\u3002",
21904
+ 100006: "\u6587\u7AE0\u540C\u6B65\u5F02\u5E38\uFF0C\u8BF7\u91CD\u65B0\u7ED1\u5B9A\u8D26\u53F7\u540E\u91CD\u8BD5\u3002",
21905
+ 3101: [
21906
+ "\u4ECA\u65E5\u5934\u6761\u53F7\u53D1\u5E03\u6B21\u6570\u5DF2\u8FBE\u4E0A\u9650\uFF0C\u8BF7\u660E\u5929\u518D\u8BD5\u3002",
21907
+ "\u5934\u6761\u8D26\u53F7\u72B6\u6001\u5F02\u5E38\uFF0C\u9700\u524D\u5F80\u5934\u6761\u53F7\u5B8C\u6210\u5B9E\u540D\u8BA4\u8BC1\u3002",
21908
+ "\u5934\u6761\u8D26\u53F7\u72B6\u6001\u5F02\u5E38\uFF0C\u8D44\u6599\u5BA1\u6838\u672A\u901A\u8FC7\uFF0C\u8BF7\u524D\u5F80\u5934\u6761\u53F7\u67E5\u770B\u3002"
21909
+ ],
21910
+ 2007: "\u6587\u7AE0\u53D1\u5E03\u5931\u8D25\uFF0C\u58F0\u660E\u539F\u521B\u8981\u6C42\u6B63\u6587\u5B57\u6570\u4E0D\u5C11\u4E8E 300 \u5B57\uFF0C\u8BF7\u4FEE\u6539\u540E\u91CD\u8BD5\u3002",
21911
+ 1053: "\u6B63\u6587\u56FE\u7247\u548C\u5C01\u9762\u56FE\u7247\u63A8\u8350jpg\u3001png\u683C\u5F0F\u3002",
21912
+ 2005: "\u8D26\u53F7\u65E0\u3010\u7533\u660E\u539F\u521B\u3011\u6743\u9650\uFF0C\u8BF7\u5173\u95ED\u7533\u660E\u540E\u91CD\u8BD5\u3002"
21913
+ };
21914
+ const get3101DetailError = (errorList, message, saveType) => {
21915
+ let error = "";
21916
+ if (message?.includes("\u5F53\u65E5\u53D1\u6587")) {
21917
+ error = errorList[0];
21918
+ } else if (message?.includes("\u5B9E\u540D\u8BA4\u8BC1")) {
21919
+ error = errorList[1];
21920
+ } else if (message?.includes("\u8D44\u6599\u5BA1\u6838")) {
21921
+ error = errorList[2];
21922
+ }
21923
+ 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");
21914
21924
  };
21915
21925
  const mockAction$4 = async (task, params) => {
21916
21926
  const { toutiaoSingleCover, toutiaoMultCover, toutiaoCoverType, toutiaoOriginal } = params.settingInfo;
@@ -21925,7 +21935,12 @@ const mockAction$4 = async (task, params) => {
21925
21935
  api.interceptors.response.use(
21926
21936
  (response) => {
21927
21937
  if (response.data.code !== 0) {
21928
- const errmsg = errnoMap[response.data.code] || response.config.defaultErrorMsg || response.data.message || "Unknown error";
21938
+ let errmsg = "";
21939
+ if (Array.isArray(errnoMap$1[response.data.code])) {
21940
+ errmsg = get3101DetailError(errnoMap$1[response.data.code], response.data.message, params.saveType);
21941
+ } else {
21942
+ errmsg = errnoMap$1[response.data.code] || response.config.defaultErrorMsg || (params.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");
21943
+ }
21929
21944
  task.logger.error(errmsg);
21930
21945
  return Promise.reject(new Error(errmsg));
21931
21946
  }
@@ -21938,7 +21953,7 @@ const mockAction$4 = async (task, params) => {
21938
21953
  await api({
21939
21954
  method: "get",
21940
21955
  url: "https://mp.toutiao.com/mp/agw/creator_center/user_info",
21941
- defaultErrorMsg: "\u767B\u5F55\u5931\u6548"
21956
+ defaultErrorMsg: `\u5934\u6761\u53F7\u767B\u5F55\u72B6\u6001\u5931\u6548\uFF0C\u8BF7\u91CD\u65B0\u7ED1\u5B9A\u8D26\u53F7\u540E${params.saveType === "draft" ? "\u540C\u6B65" : "\u53D1\u5E03"}\u3002`
21942
21957
  });
21943
21958
  const uploadImages = async (images) => {
21944
21959
  const localImages = await Promise.all(
@@ -21950,12 +21965,12 @@ const mockAction$4 = async (task, params) => {
21950
21965
  return await Promise.all(
21951
21966
  localImages.map(async (image) => {
21952
21967
  const formData = new FormData$2();
21953
- formData.append("image", fs__default.createReadStream(image));
21968
+ formData.append("image", __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c____default.createReadStream(image));
21954
21969
  const response = await api({
21955
21970
  method: "post",
21956
21971
  url: "https://mp.toutiao.com/spice/image?upload_source=20020003&aid=1231&device_platform=web",
21957
21972
  data: formData,
21958
- defaultErrorMsg: "\u4E0A\u4F20\u5934\u6761\u53F7\u56FE\u7247\u5931\u8D25"
21973
+ defaultErrorMsg: params.saveType === "draft" ? "\u56FE\u7247\u4E0A\u4F20\u5F02\u5E38\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u540C\u6B65\u3002" : "\u56FE\u7247\u4E0A\u4F20\u5F02\u5E38\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u53D1\u5E03\u3002"
21959
21974
  });
21960
21975
  return response.data.data;
21961
21976
  })
@@ -22065,7 +22080,7 @@ const mockAction$4 = async (task, params) => {
22065
22080
  headers: {
22066
22081
  "content-type": "application/x-www-form-urlencoded"
22067
22082
  },
22068
- defaultErrorMsg: "\u6587\u7AE0\u53D1\u5E03\u51FA\u73B0\u95EE\u9898\uFF0C\u8BF7\u8054\u7CFB\u5BA2\u670D"
22083
+ defaultErrorMsg: params.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"
22069
22084
  });
22070
22085
  return publishResult.data.data.pgc_id;
22071
22086
  };
@@ -22099,7 +22114,7 @@ const mockAction$3 = async (task, params) => {
22099
22114
  const res = await Promise.all(
22100
22115
  images.map(async (it) => {
22101
22116
  const formData = new FormData$2();
22102
- formData.append("image", fs__default.createReadStream(it));
22117
+ formData.append("image", __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c____default.createReadStream(it));
22103
22118
  const response = await api({
22104
22119
  method: "post",
22105
22120
  url: "https://mp.toutiao.com/spice/image?upload_source=20020003&aid=1231&device_platform=web",
@@ -22224,36 +22239,321 @@ const weitoutiaoPublish = async (task, params) => {
22224
22239
  return executeAction$2(task, params);
22225
22240
  };
22226
22241
 
22242
+ const scanRetryMaxCount = 30;
22243
+ const errnoMap = {
22244
+ 200003: "\u767B\u5F55\u5931\u6548"
22245
+ };
22246
+ const saveDraft$1 = (api, params, data) => {
22247
+ const formData = new FormData$2();
22248
+ for (const [key, value] of Object.entries(data)) {
22249
+ formData.append(key, value);
22250
+ }
22251
+ return api({
22252
+ method: "post",
22253
+ url: "https://mp.weixin.qq.com/cgi-bin/operate_appmsg",
22254
+ params: {
22255
+ token: params.token,
22256
+ t: "ajax-response",
22257
+ sub: "create",
22258
+ type: 77,
22259
+ lang: "zh_CN"
22260
+ },
22261
+ data: formData,
22262
+ defaultErrorMsg: "\u521B\u5EFA\u6587\u7AE0\u8349\u7A3F\u51FA\u73B0\u95EE\u9898\uFF0C\u8BF7\u8054\u7CFB\u5BA2\u670D"
22263
+ });
22264
+ };
22265
+ const safeAssistant = (api, params, data) => {
22266
+ const formData = new FormData$2();
22267
+ for (const [key, value] of Object.entries(data)) {
22268
+ formData.append(key, value);
22269
+ }
22270
+ return api({
22271
+ method: "post",
22272
+ url: "https://mp.weixin.qq.com/misc/safeassistant",
22273
+ params: {
22274
+ token: params.token,
22275
+ lang: "zh_CN",
22276
+ 1: 1
22277
+ },
22278
+ data: formData,
22279
+ defaultErrorMsg: "\u7FA4\u53D1\u4E8C\u7EF4\u7801\u83B7\u53D6\u51FA\u73B0\u95EE\u9898\uFF0C\u8BF7\u8054\u7CFB\u5BA2\u670D"
22280
+ });
22281
+ };
22282
+ const getUuid = async (api, params, data) => {
22283
+ const formData = new FormData$2();
22284
+ const defaultErrorMsg = "\u7FA4\u53D1\u4E8C\u7EF4\u7801\u83B7\u53D6\u51FA\u73B0\u95EE\u9898\uFF0C\u8BF7\u8054\u7CFB\u5BA2\u670D";
22285
+ for (const [key, value] of Object.entries(data)) {
22286
+ formData.append(key, value);
22287
+ }
22288
+ const res = await api({
22289
+ method: "post",
22290
+ url: "https://mp.weixin.qq.com/safe/safeqrconnect",
22291
+ params: {
22292
+ token: params.token,
22293
+ lang: "zh_CN",
22294
+ 1: 1
22295
+ },
22296
+ data: formData,
22297
+ defaultErrorMsg
22298
+ });
22299
+ if (res.data.genuuid_res !== 0) {
22300
+ throw new Error(defaultErrorMsg);
22301
+ }
22302
+ return res;
22303
+ };
22304
+ const safeUuid = async (api, params, data) => {
22305
+ const formData = new FormData$2();
22306
+ for (const [key, value] of Object.entries(data)) {
22307
+ formData.append(key, value);
22308
+ }
22309
+ const res = await api({
22310
+ method: "post",
22311
+ url: "https://mp.weixin.qq.com/safe/safeuuid",
22312
+ params: {
22313
+ token: params.token,
22314
+ lang: "zh_CN",
22315
+ timespam: Date.now()
22316
+ },
22317
+ data: formData
22318
+ });
22319
+ return res;
22320
+ };
22321
+ const massSend = async (api, params, data) => {
22322
+ const formData = new FormData$2();
22323
+ const defaultErrorMsg = "\u6587\u7AE0\u53D1\u5E03\u51FA\u73B0\u95EE\u9898\uFF0C\u8BF7\u8054\u7CFB\u5BA2\u670D";
22324
+ for (const [key, value] of Object.entries(data)) {
22325
+ formData.append(key, value);
22326
+ }
22327
+ const res = await api({
22328
+ method: "post",
22329
+ url: "https://mp.weixin.qq.com/cgi-bin/masssend",
22330
+ params: {
22331
+ token: params.token,
22332
+ lang: "zh_CN",
22333
+ t: "ajax-response",
22334
+ is_release_publish_page: 0
22335
+ },
22336
+ data: formData,
22337
+ defaultErrorMsg
22338
+ });
22339
+ return res;
22340
+ };
22227
22341
  const mockAction$2 = async (task, params) => {
22228
- task.getTmpPath();
22342
+ const tmpCachePath = task.getTmpPath();
22229
22343
  const api = axios$1.create({
22230
22344
  headers: {
22231
- cookie: params.cookies.map((it) => `${it.name}=${it.value}`).join(";")
22345
+ cookie: params.cookies.map((it) => `${it.name}=${it.value}`).join(";"),
22346
+ referer: `https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2&action=edit&isNew=1&type=77&createType=0&token=${params.token}&lang=zh_CN&timestamp=${Date.now()}&appmsgid=${params.appMsgId}`
22347
+ }
22348
+ });
22349
+ api.interceptors.response.use(
22350
+ (response) => {
22351
+ const responseData = response.data;
22352
+ if (responseData?.base_resp && responseData.base_resp.ret !== 0) {
22353
+ const errmsg = errnoMap[responseData.base_resp.ret] || response.config.defaultErrorMsg || responseData.base_resp.err_msg || "Unknown error";
22354
+ task.logger.error(errmsg, responseData);
22355
+ return Promise.reject(new Error(errmsg));
22356
+ }
22357
+ return response;
22358
+ },
22359
+ (error) => {
22360
+ return Promise.reject(error);
22361
+ }
22362
+ );
22363
+ await api.get("https://mp.weixin.qq.com/cgi-bin/appmsgpublish", {
22364
+ params: {
22365
+ sub: "list",
22366
+ begin: 0,
22367
+ count: 10,
22368
+ query: "",
22369
+ type: 1011102103,
22370
+ show_type: "",
22371
+ free_publish_type: 1102103,
22372
+ sub_action: "list_ex",
22373
+ search_card: 0,
22374
+ token: params.token,
22375
+ lang: "zh_CN",
22376
+ f: "json",
22377
+ ajax: 1
22378
+ }
22379
+ });
22380
+ const uploadImages = async (images) => {
22381
+ const cloudImages = [];
22382
+ const localImages = await Promise.all(
22383
+ images.map((url) => {
22384
+ const fileName = getFilenameFromUrl(url);
22385
+ return downloadImage(url, path__default.join(tmpCachePath, fileName));
22386
+ })
22387
+ );
22388
+ for (let index = 0; index < images.length; index++) {
22389
+ const image = localImages[index];
22390
+ const fileState = getFileState(image);
22391
+ const formData = new FormData$2();
22392
+ formData.append("id", `WU_FILE_${index + 1}`);
22393
+ formData.append("name", fileState.name);
22394
+ formData.append("type", fileState.type);
22395
+ formData.append("lastModifiedDate", fileState.lastModifiedDate);
22396
+ formData.append("size", fileState.size);
22397
+ formData.append("file", __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c____default.createReadStream(image));
22398
+ const response = await api({
22399
+ method: "post",
22400
+ url: `https://mp.weixin.qq.com/cgi-bin/filetransfer?action=upload_material&f=json&writetype=doublewrite&token=${params.token}&lang=zh_CN`,
22401
+ data: formData,
22402
+ defaultErrorMsg: "\u56FE\u7247\u4E0A\u4F20\u51FA\u73B0\u95EE\u9898\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5"
22403
+ });
22404
+ cloudImages.push(response.data);
22405
+ }
22406
+ return cloudImages;
22407
+ };
22408
+ const originContentImages = extractImgTag(params.content);
22409
+ const targetContentImages = await uploadImages(originContentImages);
22410
+ const content = replaceImgSrc(params.content, (dom) => {
22411
+ if (dom.attribs.src) {
22412
+ const idx = originContentImages.findIndex((it) => it === dom.attribs.src);
22413
+ dom.attribs.src = targetContentImages[idx].cdn_url;
22414
+ dom.attribs.class = "rich_pass wxw-img js_insertlocalimg";
22415
+ dom.attribs.style = "";
22232
22416
  }
22417
+ return dom;
22233
22418
  });
22234
- const userInfoRes = await api.get(
22235
- "https://mp.weixin.qq.com/cgi-bin/appmsgpublish",
22419
+ const coverRes = await uploadImages([params.settingInfo.wxCover]);
22420
+ const draftData = {
22421
+ lang: "zh_CN",
22422
+ f: "json",
22423
+ ajax: 1,
22424
+ count: 1,
22425
+ operate_from: "Chrome",
22426
+ isnew: 0,
22427
+ articlenum: 1,
22428
+ pre_timesend_set: 0,
22429
+ is_finder_video0: 0,
22430
+ finder_draft_id0: 0,
22431
+ applyori0: 0,
22432
+ can_reward0: 0,
22433
+ pay_gifts_count0: 0,
22434
+ is_video_recommend0: -1,
22435
+ writerid0: 0,
22436
+ auto_gen_digest0: 0,
22437
+ last_choose_cover_from0: 0,
22438
+ need_open_comment0: 0,
22439
+ only_fans_can_comment0: 0,
22440
+ only_fans_days_can_comment0: 0,
22441
+ reply_flag0: 0,
22442
+ not_pay_can_comment0: 0,
22443
+ token: params.token,
22444
+ AppMsgId: params.appMsgId,
22445
+ title0: params.title,
22446
+ author0: params?.settingInfo?.wxAuthor || "",
22447
+ digest0: params?.settingInfo?.wxAbstract || "",
22448
+ content0: content || "",
22449
+ sourceurl0: params?.settingInfo?.wxOriginalText || "",
22450
+ cdn_url0: coverRes[0].cdn_url || "",
22451
+ open_fansmsg0: params?.settingInfo?.wxFansMsg ? 1 : 0,
22452
+ allow_fast_reprint0: params?.settingInfo?.wxQuickReprint ? 1 : 0,
22453
+ disable_recommend0: params?.settingInfo?.wxNotAllowRecommend ? 1 : 0,
22454
+ claim_source_type0: params?.settingInfo?.wxCreationSource?.[0] || ""
22455
+ };
22456
+ const draftRes = await saveDraft$1(api, params, draftData);
22457
+ const appMsgId = draftRes.data.appMsgId;
22458
+ if (params.saveType === "draft") {
22459
+ task.logger.info("\u5FAE\u4FE1\u516C\u4F17\u53F7\u4FDD\u5B58\u8349\u7A3F\u6210\u529F");
22460
+ return;
22461
+ }
22462
+ const previewResult = await api.get(
22463
+ "https://mp.weixin.qq.com/cgi-bin/masssendpage",
22236
22464
  {
22237
22465
  params: {
22238
- sub: "list",
22239
- begin: 0,
22240
- count: 10,
22241
- query: "",
22242
- type: 1011102103,
22243
- show_type: "",
22244
- free_publish_type: 1102103,
22245
- sub_action: "list_ex",
22246
- search_card: 0,
22247
22466
  token: params.token,
22248
22467
  lang: "zh_CN",
22249
22468
  f: "json",
22250
- ajax: 1
22251
- }
22469
+ ajax: 1,
22470
+ preview_appmsgid: appMsgId
22471
+ },
22472
+ defaultErrorMsg: "\u521B\u5EFA\u6587\u7AE0\u8349\u7A3F\u51FA\u73B0\u95EE\u9898\uFF0C\u8BF7\u8054\u7CFB\u5BA2\u670D"
22252
22473
  }
22253
22474
  );
22254
- if (userInfoRes.data.base_resp.ret !== 0) {
22255
- throw new Error("\u767B\u5F55\u5931\u6548");
22475
+ const operation_seq = previewResult.data?.operation_seq;
22476
+ const mass_send_left = previewResult.data?.mass_send_left;
22477
+ if (mass_send_left < 1) {
22478
+ throw new Error("\u4ECA\u65E5\u7FA4\u53D1\u6B21\u6570\u7528\u5C3D\uFF0C\u8BF7\u660E\u5929\u518D\u8BD5");
22256
22479
  }
22480
+ const getTicketResult = await safeAssistant(api, params, {
22481
+ token: params.token,
22482
+ lang: "zh_CN",
22483
+ f: "json",
22484
+ ajax: 1,
22485
+ action: "get_ticket"
22486
+ });
22487
+ const getUuidResult = await getUuid(api, params, {
22488
+ token: params.token,
22489
+ lang: "zh_CN",
22490
+ f: "json",
22491
+ ajax: 1,
22492
+ state: 0,
22493
+ login_type: "safe_center",
22494
+ type: "json",
22495
+ ticket: getTicketResult.data.ticket
22496
+ });
22497
+ const uuid = getUuidResult.data.uuid;
22498
+ const qrcodeResult = await api.get("https://mp.weixin.qq.com/safe/safeqrcode", {
22499
+ params: {
22500
+ action: "check",
22501
+ type: "msgs",
22502
+ service_type: 1,
22503
+ ticket: getTicketResult.data.ticket,
22504
+ uuid,
22505
+ msg_id: operation_seq
22506
+ },
22507
+ defaultErrorMsg: "\u7FA4\u53D1\u4E8C\u7EF4\u7801\u83B7\u53D6\u51FA\u73B0\u95EE\u9898\uFF0C\u8BF7\u8054\u7CFB\u5BA2\u670D",
22508
+ responseType: "arraybuffer"
22509
+ });
22510
+ const qrcodeBuffer = Buffer.from(qrcodeResult.data);
22511
+ const qrcodeFilePath = path__default.join(tmpCachePath, "weixin_qrcode.jpg");
22512
+ __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c____default.writeFileSync(qrcodeFilePath, new Uint8Array(qrcodeBuffer));
22513
+ params.safeQrcodeCallback?.(qrcodeFilePath);
22514
+ let code = "";
22515
+ for (let i = 0; i < scanRetryMaxCount; i++) {
22516
+ await sleep(2e3);
22517
+ const checkScanResult = await safeUuid(api, params, {
22518
+ token: params.token,
22519
+ lang: "zh_CN",
22520
+ f: "json",
22521
+ ajax: 1,
22522
+ uuid,
22523
+ action: "json",
22524
+ type: "json"
22525
+ });
22526
+ if (checkScanResult.data.errcode === 405) {
22527
+ code = checkScanResult.data.code;
22528
+ break;
22529
+ }
22530
+ if (i === scanRetryMaxCount - 1) {
22531
+ throw new Error("\u7FA4\u53D1\u4E8C\u7EF4\u7801\u5931\u6548\uFF0C\u8BF7\u91CD\u8BD5");
22532
+ }
22533
+ }
22534
+ await massSend(api, params, {
22535
+ lang: "zh_CN",
22536
+ f: "json",
22537
+ ajax: 1,
22538
+ reprint_info: "",
22539
+ reprint_confirm: 0,
22540
+ sex: 0,
22541
+ send_time: 0,
22542
+ type: 10,
22543
+ share_page: 1,
22544
+ synctxweibo: 0,
22545
+ sync_version: 1,
22546
+ isFreePublish: "false",
22547
+ notifySubscribers: 1,
22548
+ isMulti: 0,
22549
+ direct_send: 1,
22550
+ isNeedCode: "true",
22551
+ token: params.token,
22552
+ appmsgid: appMsgId,
22553
+ operation_seq,
22554
+ code
22555
+ });
22556
+ task.logger.info("\u5FAE\u4FE1\u516C\u4F17\u53F7\u53D1\u5E03\u5B8C\u6210");
22257
22557
  };
22258
22558
 
22259
22559
  const weixinPublish = async (task, params) => {
@@ -22306,7 +22606,7 @@ const mockAction$1 = async (task, params) => {
22306
22606
  formData.append("type", fileState.type);
22307
22607
  formData.append("lastModifiedDate", fileState.lastModifiedDate);
22308
22608
  formData.append("size", fileState.size);
22309
- formData.append("file", fs__default.createReadStream(image));
22609
+ formData.append("file", __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c____default.createReadStream(image));
22310
22610
  const response = await api({
22311
22611
  method: "post",
22312
22612
  url: `https://mp.weixin.qq.com/cgi-bin/filetransfer?action=upload_material&f=json&writetype=doublewrite&token=${params.token}&lang=zh_CN`,
@@ -22478,7 +22778,7 @@ const weixinmpPublish = async (task, params) => {
22478
22778
  return executeAction$1(task, params);
22479
22779
  };
22480
22780
 
22481
- const mockAction = async (task, params) => {
22781
+ const mockAction = async (_task, _params) => {
22482
22782
  return Promise.reject();
22483
22783
  };
22484
22784
 
@@ -22614,7 +22914,7 @@ const rpaAction = async (task, params) => {
22614
22914
  if (params.scheduledPublish) {
22615
22915
  await selectDate(".date-picker input", params.scheduledPublish);
22616
22916
  }
22617
- await new Promise((resolve) => {
22917
+ const response = await new Promise((resolve) => {
22618
22918
  const handleResponse = async (response2) => {
22619
22919
  if (response2.url().includes("/web_api/sns/v2/note")) {
22620
22920
  const jsonResponse = await response2.json();
@@ -22626,7 +22926,7 @@ const rpaAction = async (task, params) => {
22626
22926
  page.locator(".submit .publishBtn").click();
22627
22927
  });
22628
22928
  await page.close();
22629
- return "response";
22929
+ return response;
22630
22930
  };
22631
22931
 
22632
22932
  const executeAction = (task, params) => {