@iflyrpa/actions 4.0.4-beta.0 → 4.0.4-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -292,6 +292,22 @@ export declare class Action {
292
292
  readNumYesterday: number | null;
293
293
  likeNumYesterday: number | null;
294
294
  commentNumYesterday: number | null;
295
+ } | {
296
+ fansNum: number;
297
+ favedNum: number;
298
+ fansNumLastWeek: number;
299
+ watchNumLastWeek: number;
300
+ likeNumLastWeek: number;
301
+ commentNumLastWeek: number;
302
+ shareNumLastWeek: number;
303
+ visitNumLastWeek: number;
304
+ } | {
305
+ fansNum: number;
306
+ feedsCount: number;
307
+ fansNumYesterday: number | null;
308
+ playNumYesterday: number | null;
309
+ likeNumYesterday: number | null;
310
+ commentNumYesterday: number | null;
295
311
  } | null>>;
296
312
  TTSessionCheck(params: ActiomCommonParams): Promise<ResponseData<{
297
313
  isValidSession: boolean;
package/dist/index.js CHANGED
@@ -1,3 +1,5 @@
1
+
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="4ae3c988-17b7-56c2-b8eb-b8828dfa6862")}catch(e){}}();
1
3
  var __webpack_modules__ = {
2
4
  "./src/utils/XhsXsCommonEnc.js": function(module) {
3
5
  var encrypt_lookup = [
@@ -4398,7 +4400,7 @@ var __webpack_exports__ = {};
4398
4400
  });
4399
4401
  const package_json_namespaceObject = require("@iflyrpa/share/package.json");
4400
4402
  var package_json_default = /*#__PURE__*/ __webpack_require__.n(package_json_namespaceObject);
4401
- var package_namespaceObject = JSON.parse('{"i8":"4.0.4-beta.0"}');
4403
+ var package_namespaceObject = JSON.parse('{"i8":"4.0.4-beta.2"}');
4402
4404
  const share_namespaceObject = require("@iflyrpa/share");
4403
4405
  const external_node_fs_namespaceObject = require("node:fs");
4404
4406
  var external_node_fs_default = /*#__PURE__*/ __webpack_require__.n(external_node_fs_namespaceObject);
@@ -4647,11 +4649,12 @@ var __webpack_exports__ = {};
4647
4649
  this.logger?.debug(`未处理的网络错误代码: ${error.code} ${error.message}`, {
4648
4650
  errorString: stringifyError(error)
4649
4651
  });
4650
- _message = `未知网络错误: ${error.message}`;
4652
+ _message = `网络错误: ${error.message}`;
4651
4653
  break;
4652
4654
  }
4653
4655
  }
4654
- errorResponse.message = errorResponse.message ? errorResponse.message : _message;
4656
+ if (error.code && !error.response?.data) errorResponse.message = _message || errorResponse.message;
4657
+ else errorResponse.message = errorResponse.message ? errorResponse.message : _message;
4655
4658
  if ("canceled" === errorResponse.message) {
4656
4659
  const message = errorResponse.extra?.isProxyRequest ? "代理连接建立超时,请更换区域或稍后重试!" : "网络请求超时,请稍后重试!";
4657
4660
  errorResponse.message = message;
@@ -15359,6 +15362,199 @@ var __webpack_exports__ = {};
15359
15362
  };
15360
15363
  return (0, share_namespaceObject.success)(bjhData, "百家号平台数据获取成功!");
15361
15364
  }
15365
+ async function getDouyinData(_task, params) {
15366
+ try {
15367
+ const sessionidCookie = params.cookies.find((it)=>"sessionid" === it.name)?.value;
15368
+ if (!sessionidCookie) return types_errorResponse("抖音账号数据异常,请重新绑定账号后重试。", 414);
15369
+ const csrfToken = params.cookies.find((it)=>"passport_csrf_token" === it.name)?.value || "";
15370
+ const headers = {
15371
+ cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
15372
+ referer: "https://creator.douyin.com/creator-micro/home",
15373
+ origin: "https://creator.douyin.com",
15374
+ "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36",
15375
+ ...csrfToken ? {
15376
+ "x-secsdk-csrf-token": csrfToken
15377
+ } : {}
15378
+ };
15379
+ const args = [
15380
+ {
15381
+ headers
15382
+ },
15383
+ _task.logger,
15384
+ params.proxyLoc,
15385
+ params.localIP,
15386
+ params.accountId
15387
+ ];
15388
+ const http = new Http(...args);
15389
+ const toNum = (val)=>{
15390
+ if (null == val) return 0;
15391
+ const n = Number.parseInt(String(val).replace(/[+,]/g, ""), 10);
15392
+ return Number.isNaN(n) ? 0 : n;
15393
+ };
15394
+ const userProfileP = http.api({
15395
+ method: "get",
15396
+ url: "https://www.douyin.com/aweme/v1/web/user/profile/self/",
15397
+ params: {
15398
+ device_platform: "webapp",
15399
+ aid: "6383",
15400
+ channel: "channel_pc_web",
15401
+ pc_client_type: "1",
15402
+ version_code: "170400",
15403
+ version_name: "17.4.0",
15404
+ cookie_enabled: "true",
15405
+ platform: "PC"
15406
+ }
15407
+ }, {
15408
+ retries: 3,
15409
+ retryDelay: 100,
15410
+ timeout: 10000
15411
+ }).catch((e)=>{
15412
+ _task.logger.warn(`抖音用户信息获取失败: ${e instanceof Error ? e.message : String(e)}`);
15413
+ return null;
15414
+ });
15415
+ const overviewP = http.api({
15416
+ method: "get",
15417
+ url: "https://creator.douyin.com/aweme/janus/creator/data/overview/all/",
15418
+ params: {
15419
+ last_days_type: 1,
15420
+ aid: 2906,
15421
+ app_name: "aweme_creator_platform",
15422
+ device_platform: "web"
15423
+ }
15424
+ }, {
15425
+ retries: 3,
15426
+ retryDelay: 100,
15427
+ timeout: 5000
15428
+ }).catch((e)=>{
15429
+ _task.logger.warn(`抖音近7日数据获取失败(可能未开通数据中心或被风控): ${e instanceof Error ? e.message : String(e)}`);
15430
+ return null;
15431
+ });
15432
+ const [userProfile, overview] = await Promise.all([
15433
+ userProfileP,
15434
+ overviewP
15435
+ ]);
15436
+ _task.logger.info(`抖音用户信息响应: ${JSON.stringify(userProfile)}`);
15437
+ _task.logger.info(`抖音近7日数据响应: ${JSON.stringify(overview)}`);
15438
+ let fansNum = 0;
15439
+ let favedNum = 0;
15440
+ let followingNum = 0;
15441
+ if (userProfile?.status_code === 0 && userProfile.user) {
15442
+ const user = userProfile.user;
15443
+ fansNum = toNum(user.follower_count);
15444
+ followingNum = toNum(user.following_count);
15445
+ favedNum = toNum(user.total_favorited);
15446
+ _task.logger.info(`提取用户数据 - 昵称: ${user.nickname}, 粉丝: ${fansNum}, 关注: ${followingNum}, 获赞: ${favedNum}, 作品: ${user.aweme_count}`);
15447
+ } else _task.logger.warn(`用户信息接口返回异常: status_code=${userProfile?.status_code}, msg=${userProfile?.status_msg}`);
15448
+ const ov = overview?.data;
15449
+ const douyinData = {
15450
+ fansNum,
15451
+ favedNum,
15452
+ fansNumLastWeek: toNum(ov?.fans_incr?.current_count),
15453
+ watchNumLastWeek: toNum(ov?.play_count?.current_count),
15454
+ likeNumLastWeek: toNum(ov?.like_count?.current_count),
15455
+ commentNumLastWeek: toNum(ov?.comment_count?.current_count),
15456
+ shareNumLastWeek: toNum(ov?.share_count?.current_count),
15457
+ visitNumLastWeek: toNum(ov?.profile_visit?.current_count)
15458
+ };
15459
+ return (0, share_namespaceObject.success)(douyinData, "抖音平台数据获取成功!");
15460
+ } catch (error) {
15461
+ if (error && "object" == typeof error && "code" in error && "message" in error) {
15462
+ const err = error;
15463
+ _task.logger.error(`抖音账号数据获取失败: ${err.message} (${err.code})`);
15464
+ return types_errorResponse(err.message, err.code);
15465
+ }
15466
+ const errMsg = error instanceof Error ? error.message : String(error);
15467
+ _task.logger.error(`抖音账号数据获取失败: ${errMsg}`);
15468
+ return types_errorResponse(errMsg || "抖音账号数据获取失败");
15469
+ }
15470
+ }
15471
+ async function getShipinhaoData(_task, params) {
15472
+ try {
15473
+ const sessionidCookie = params.cookies.find((it)=>"sessionid" === it.name)?.value;
15474
+ if (!sessionidCookie) return types_errorResponse("视频号账号数据异常,请重新绑定账号后重试。", 414);
15475
+ const uinCookie = params.cookies.find((it)=>"uin" === it.name || "wxuin" === it.name)?.value || "0000000000";
15476
+ const deviceIdCookie = params.cookies.find((it)=>"device_id" === it.name || "finger_print_device_id" === it.name)?.value;
15477
+ const aid = params.cookies.find((it)=>"_aid" === it.name)?.value || "9d3e0e9f-b842-498d-a273-4285d58df264";
15478
+ const finderId = params.cookies.find((it)=>"_log_finder_id" === it.name || "finder_id" === it.name)?.value || "";
15479
+ const headers = {
15480
+ cookie: params.cookies.map((it)=>`${it.name}=${it.value}`).join(";"),
15481
+ referer: "https://channels.weixin.qq.com/platform",
15482
+ origin: "https://channels.weixin.qq.com",
15483
+ "content-type": "application/json",
15484
+ "X-WECHAT-UIN": uinCookie,
15485
+ ...deviceIdCookie ? {
15486
+ "finger-print-device-id": deviceIdCookie
15487
+ } : {}
15488
+ };
15489
+ const args = [
15490
+ {
15491
+ headers
15492
+ },
15493
+ _task.logger,
15494
+ params.proxyLoc,
15495
+ params.localIP,
15496
+ params.accountId
15497
+ ];
15498
+ const http = new Http(...args);
15499
+ const authData = await http.api({
15500
+ method: "post",
15501
+ url: "https://channels.weixin.qq.com/cgi-bin/mmfinderassistant-bin/auth/auth_data",
15502
+ params: {
15503
+ _aid: aid,
15504
+ _rid: `${Date.now().toString(16)}-${Math.random().toString(36).substring(2, 9)}`,
15505
+ _pageUrl: encodeURIComponent("https://channels.weixin.qq.com/platform")
15506
+ },
15507
+ data: {
15508
+ timestamp: Date.now().toString(),
15509
+ _log_finder_uin: "",
15510
+ _log_finder_id: finderId,
15511
+ rawKeyBuff: "",
15512
+ pluginSessionId: null,
15513
+ scene: 7,
15514
+ reqScene: 7
15515
+ }
15516
+ }, {
15517
+ retries: 3,
15518
+ retryDelay: 100,
15519
+ timeout: 5000
15520
+ });
15521
+ _task.logger.info(`视频号账号数据响应: ${JSON.stringify(authData)}`);
15522
+ const AUTH_ERROR_CODES = [
15523
+ 300333,
15524
+ 300334,
15525
+ 300330,
15526
+ 300331,
15527
+ 300332
15528
+ ];
15529
+ if (authData.errCode && AUTH_ERROR_CODES.includes(authData.errCode)) {
15530
+ _task.logger.warn(`视频号登录已失效:${authData.errMsg} (${authData.errCode})`);
15531
+ return types_errorResponse("视频号账号信息获取失败,请检查账号状态", 414);
15532
+ }
15533
+ if (authData.errCode) {
15534
+ _task.logger.warn(`视频号账号API错误:${authData.errMsg} (${authData.errCode})`);
15535
+ return types_errorResponse(`视频号账号信息获取失败:${authData.errMsg || "未知错误"}`, 414);
15536
+ }
15537
+ const finderUser = authData.data?.finderUser;
15538
+ const shipinhaoData = {
15539
+ fansNum: finderUser?.fansCount || 0,
15540
+ feedsCount: finderUser?.feedsCount || 0,
15541
+ fansNumYesterday: null,
15542
+ playNumYesterday: null,
15543
+ likeNumYesterday: null,
15544
+ commentNumYesterday: null
15545
+ };
15546
+ return (0, share_namespaceObject.success)(shipinhaoData, "视频号平台数据获取成功!");
15547
+ } catch (error) {
15548
+ if (error && "object" == typeof error && "code" in error && "message" in error) {
15549
+ const err = error;
15550
+ _task.logger.error(`视频号账号数据获取失败: ${err.message} (${err.code})`);
15551
+ return types_errorResponse(err.message, err.code);
15552
+ }
15553
+ const errMsg = error instanceof Error ? error.message : String(error);
15554
+ _task.logger.error(`视频号账号数据获取失败: ${errMsg}`);
15555
+ return types_errorResponse(errMsg || "视频号账号数据获取失败");
15556
+ }
15557
+ }
15362
15558
  async function getToutiaoData(_task, params) {
15363
15559
  const http = new Http({
15364
15560
  headers: {
@@ -15457,7 +15653,7 @@ var __webpack_exports__ = {};
15457
15653
  userInfoHtmlPromise,
15458
15654
  userSummaryHtmlPromise
15459
15655
  ]);
15460
- if (userInfoHtml.includes("请重新<a id='jumpUrl' href='/'>登录</a>")) return types_errorResponse("Token已失效,请重新获取", 414);
15656
+ if (userInfoHtml.includes("请重新<a id='jumpUrl' href='/'>登录</a>")) return types_errorResponse("微信公众号数据获取失败,请检查账号状态", 414);
15461
15657
  const userInfoJson = exportWxCgiData(userInfoHtml);
15462
15658
  const userSummaryJson = exportWxCgiData(userSummaryHtml);
15463
15659
  const wxData = {
@@ -15534,7 +15730,9 @@ var __webpack_exports__ = {};
15534
15730
  "toutiao",
15535
15731
  "xiaohongshu",
15536
15732
  "weixin",
15537
- "baijiahao"
15733
+ "baijiahao",
15734
+ "douyin",
15735
+ "shipinhao"
15538
15736
  ])
15539
15737
  });
15540
15738
  const SearchAccountInfo = async (_task, params)=>{
@@ -15548,6 +15746,10 @@ var __webpack_exports__ = {};
15548
15746
  return getWeixinData(_task, params);
15549
15747
  case "baijiahao":
15550
15748
  return getBaijiahaoData(_task, params);
15749
+ case "douyin":
15750
+ return getDouyinData(_task, params);
15751
+ case "shipinhao":
15752
+ return getShipinhaoData(_task, params);
15551
15753
  default:
15552
15754
  return (0, share_namespaceObject.success)(null, "暂不支持该平台");
15553
15755
  }
@@ -15811,21 +16013,6 @@ var __webpack_exports__ = {};
15811
16013
  params.accountId
15812
16014
  ];
15813
16015
  const http = new Http(...args);
15814
- let authorUid = "";
15815
- try {
15816
- const userInfo = await http.api({
15817
- method: "get",
15818
- url: "https://creator.douyin.com/aweme/v1/creator/user/info/"
15819
- }, {
15820
- retries: 3,
15821
- retryDelay: 100,
15822
- timeout: 5000
15823
- });
15824
- authorUid = userInfo.user_profile?.unique_id || "";
15825
- if (!userInfo.has_data_mgmt_perm) _task.logger.warn("抖音账号未开通数据中心权限,近7日数据不可用");
15826
- } catch (error) {
15827
- _task.logger.warn("获取抖音用户信息失败");
15828
- }
15829
16016
  async function fetchWorks(cursor) {
15830
16017
  return await http.api({
15831
16018
  method: "get",
@@ -15844,25 +16031,31 @@ var __webpack_exports__ = {};
15844
16031
  timeout: 5000
15845
16032
  });
15846
16033
  }
15847
- const firstPageCursor = (pageNum - 1) * pageSize;
15848
- const workListResponse = await fetchWorks(firstPageCursor);
15849
- if (!workListResponse || !workListResponse.aweme_list) return searchPublishInfo_types_errorResponse("抖音数据获取失败,请检查账号状态", 414);
16034
+ const isHasMore = (v)=>true === v || 1 === v;
16035
+ const skipCount = (pageNum - 1) * pageSize;
16036
+ const needCount = skipCount + pageSize;
16037
+ const workListResponse = await fetchWorks(0);
16038
+ if (!workListResponse || !Array.isArray(workListResponse.aweme_list)) return searchPublishInfo_types_errorResponse("抖音数据获取失败,请检查账号状态", 414);
15850
16039
  const allWorks = [
15851
16040
  ...workListResponse.aweme_list
15852
16041
  ];
15853
- let hasMore = workListResponse.has_more;
15854
- let currentCursor = workListResponse.max_cursor;
15855
- while(allWorks.length < pageSize && hasMore && !onlySuccess){
16042
+ let hasMore = isHasMore(workListResponse.has_more);
16043
+ let currentCursor = workListResponse.cursor ?? workListResponse.max_cursor ?? 0;
16044
+ let guard = 0;
16045
+ while(allWorks.length < needCount && hasMore && guard < 20){
15856
16046
  const nextPageResponse = await fetchWorks(currentCursor);
16047
+ if (!Array.isArray(nextPageResponse.aweme_list) || 0 === nextPageResponse.aweme_list.length) break;
15857
16048
  allWorks.push(...nextPageResponse.aweme_list);
15858
- hasMore = nextPageResponse.has_more;
15859
- currentCursor = nextPageResponse.max_cursor;
15860
- if (allWorks.length >= 2 * pageSize) break;
16049
+ hasMore = isHasMore(nextPageResponse.has_more);
16050
+ currentCursor = nextPageResponse.cursor ?? nextPageResponse.max_cursor ?? currentCursor;
16051
+ guard++;
15861
16052
  }
15862
- const finalWorks = allWorks.slice(0, pageSize);
16053
+ const finalWorks = allWorks.slice(skipCount, needCount);
15863
16054
  const articleCell = finalWorks.map((item)=>{
15864
16055
  const workDetailUrl = `https://creator.douyin.com/creator-micro/work-management/work-detail/${item.aweme_id}`;
15865
- const workPublicUrl = authorUid ? `https://www.douyin.com/user/${authorUid}?modal_id=${item.aweme_id}` : `https://www.douyin.com/video/${item.aweme_id}`;
16056
+ const workPublicUrl = item.share_url || `https://www.douyin.com/video/${item.aweme_id}`;
16057
+ let statusText;
16058
+ statusText = item.status?.is_delete ? "deleted" : item.status?.is_private ? "private" : item.status?.in_reviewing ? "reviewing" : "public";
15866
16059
  return {
15867
16060
  title: item.desc || "无作品描述",
15868
16061
  imageUrl: item.Cover?.url_list?.[0] || "",
@@ -15874,9 +16067,9 @@ var __webpack_exports__ = {};
15874
16067
  shareNum: item.statistics?.share_count || 0,
15875
16068
  collectNum: item.statistics?.collect_count || 0,
15876
16069
  awemeId: item.aweme_id,
15877
- awemeType: item.aweme_type,
16070
+ awemeType: item.aweme_type ?? 0,
15878
16071
  duration: item.duration,
15879
- status: item.status?.is_private ? "private" : item.status?.in_reviewing ? "reviewing" : "public",
16072
+ status: statusText,
15880
16073
  publicUrl: workPublicUrl,
15881
16074
  ...showOriginalData ? {
15882
16075
  originalData: item
@@ -15887,8 +16080,8 @@ var __webpack_exports__ = {};
15887
16080
  articleCell,
15888
16081
  ...onlySuccess ? {
15889
16082
  pagination: {
15890
- total: workListResponse.total || workListResponse.aweme_list.length,
15891
- nextPage: workListResponse.has_more,
16083
+ total: workListResponse.total || allWorks.length,
16084
+ nextPage: hasMore,
15892
16085
  pageNum,
15893
16086
  pageSize
15894
16087
  }
@@ -15984,14 +16177,21 @@ var __webpack_exports__ = {};
15984
16177
  const needArticle = "all" === postType || "article" === postType;
15985
16178
  const AUTH_ERROR_CODES = [
15986
16179
  300333,
15987
- 300334
16180
+ 300334,
16181
+ 300330,
16182
+ 300331,
16183
+ 300332
15988
16184
  ];
15989
16185
  if (needVideo) try {
15990
16186
  const videoPageUrl = "https://channels.weixin.qq.com/micro/content/post/list";
15991
16187
  const videoResponse = await fetchPosts(pageNum, 11, videoPageUrl);
16188
+ _task.logger.info(`视频号视频获取响应:${JSON.stringify(videoResponse)}`);
15992
16189
  if (videoResponse.errCode && AUTH_ERROR_CODES.includes(videoResponse.errCode)) throw new Error(`AUTH_ERROR:${videoResponse.errMsg || "登录已失效"}`);
15993
- if (videoResponse.errCode) _task.logger.warn(`视频号API错误:${videoResponse.errMsg} (${videoResponse.errCode})`);
15994
- else {
16190
+ if (videoResponse.errCode) {
16191
+ _task.logger.warn(`视频号API错误:${videoResponse.errMsg} (${videoResponse.errCode})`);
16192
+ throw new Error(`视频号API错误:${videoResponse.errMsg} (${videoResponse.errCode})`);
16193
+ }
16194
+ {
15995
16195
  const posts = videoResponse.data?.list || videoResponse.posts || videoResponse.post_list || [];
15996
16196
  const videoArticles = posts.filter((item)=>item.createTime || item.create_time).map((item)=>mapPost(item, "video"));
15997
16197
  allArticles.push(...videoArticles);
@@ -16006,8 +16206,11 @@ var __webpack_exports__ = {};
16006
16206
  const articlePageUrl = "https://channels.weixin.qq.com/micro/content/post/finderNewLifePostList";
16007
16207
  const articleResponse = await fetchPosts(pageNum, 10, articlePageUrl);
16008
16208
  if (articleResponse.errCode && AUTH_ERROR_CODES.includes(articleResponse.errCode)) throw new Error(`AUTH_ERROR:${articleResponse.errMsg || "登录已失效"}`);
16009
- if (articleResponse.errCode) _task.logger.warn(`视频号图文API错误:${articleResponse.errMsg} (${articleResponse.errCode})`);
16010
- else {
16209
+ if (articleResponse.errCode) {
16210
+ _task.logger.warn(`视频号图文API错误:${articleResponse.errMsg} (${articleResponse.errCode})`);
16211
+ throw new Error(`视频号图文API错误:${articleResponse.errMsg} (${articleResponse.errCode})`);
16212
+ }
16213
+ {
16011
16214
  const posts = articleResponse.data?.list || articleResponse.posts || articleResponse.post_list || [];
16012
16215
  const articleArticles = posts.filter((item)=>item.createTime || item.create_time).map((item)=>mapPost(item, "article"));
16013
16216
  allArticles.push(...articleArticles);
@@ -17896,6 +18099,11 @@ var __webpack_exports__ = {};
17896
18099
  this.concurrentLimit = config.concurrentLimit || 4;
17897
18100
  this.singleFileSize = config.singleFileSize || 10485760;
17898
18101
  this.http = config.http || new Http();
18102
+ this.reqOptions = {
18103
+ timeout: config.timeout ?? 60000,
18104
+ retries: config.retries ?? 3,
18105
+ retryDelay: config.retryDelay ?? 2000
18106
+ };
17899
18107
  }
17900
18108
  calculateMd5(buffer) {
17901
18109
  const MAX_SIZE = 5242880;
@@ -17952,7 +18160,7 @@ var __webpack_exports__ = {};
17952
18160
  url: filePath,
17953
18161
  method: "get",
17954
18162
  responseType: "arraybuffer"
17955
- });
18163
+ }, this.reqOptions);
17956
18164
  return Buffer.from(resp);
17957
18165
  }
17958
18166
  return external_node_fs_default().promises.readFile(filePath);
@@ -17982,7 +18190,7 @@ var __webpack_exports__ = {};
17982
18190
  headers,
17983
18191
  data: requestBody,
17984
18192
  defaultErrorMsg: "获取UploadID失败"
17985
- });
18193
+ }, this.reqOptions);
17986
18194
  if (!resp?.UploadID) throw new Error(`获取 UploadID 失败: ${resp?.errMsg || "未知错误"}`);
17987
18195
  return resp.UploadID;
17988
18196
  }
@@ -18003,7 +18211,7 @@ var __webpack_exports__ = {};
18003
18211
  headers,
18004
18212
  data: chunk,
18005
18213
  defaultErrorMsg: `分片 ${partNumber} 上传失败`
18006
- });
18214
+ }, this.reqOptions);
18007
18215
  if (resp?.errCode !== void 0 && 0 !== resp.errCode) throw new Error(`分片 ${partNumber} 上传失败: ${resp.errMsg}`);
18008
18216
  if (onProgress) onProgress(chunk.length);
18009
18217
  return resp.ETag || "";
@@ -18027,7 +18235,7 @@ var __webpack_exports__ = {};
18027
18235
  headers,
18028
18236
  data: requestBody,
18029
18237
  defaultErrorMsg: "确认分片上传失败"
18030
- });
18238
+ }, this.reqOptions);
18031
18239
  if (resp?.ListPartsResult?.Part) return resp.ListPartsResult.Part.map((p)=>({
18032
18240
  PartNumber: parseInt(p.PartNumber),
18033
18241
  ETag: p.ETag
@@ -18053,7 +18261,7 @@ var __webpack_exports__ = {};
18053
18261
  headers,
18054
18262
  data: requestBody,
18055
18263
  defaultErrorMsg: "完成上传失败"
18056
- });
18264
+ }, this.reqOptions);
18057
18265
  if (!resp?.DownloadURL) throw new Error(`完成上传失败: ${resp?.errMsg || "未知错误"}`);
18058
18266
  return resp.DownloadURL;
18059
18267
  }
@@ -25058,6 +25266,24 @@ var __webpack_exports__ = {};
25058
25266
  likeNumYesterday: schemas_number().nullable(),
25059
25267
  commentNumYesterday: schemas_number().nullable()
25060
25268
  });
25269
+ schemas_object({
25270
+ fansNum: schemas_number(),
25271
+ favedNum: schemas_number(),
25272
+ fansNumLastWeek: schemas_number(),
25273
+ watchNumLastWeek: schemas_number(),
25274
+ likeNumLastWeek: schemas_number(),
25275
+ commentNumLastWeek: schemas_number(),
25276
+ shareNumLastWeek: schemas_number(),
25277
+ visitNumLastWeek: schemas_number()
25278
+ });
25279
+ schemas_object({
25280
+ fansNum: schemas_number(),
25281
+ feedsCount: schemas_number(),
25282
+ fansNumYesterday: schemas_number().nullable(),
25283
+ playNumYesterday: schemas_number().nullable(),
25284
+ likeNumYesterday: schemas_number().nullable(),
25285
+ commentNumYesterday: schemas_number().nullable()
25286
+ });
25061
25287
  const BetaFlag = "HuiwenCanary";
25062
25288
  class Action {
25063
25289
  constructor(task){
@@ -25346,4 +25572,5 @@ if (__webpack_exports__.__esModule) Object.defineProperty(__webpack_export_targe
25346
25572
  value: true
25347
25573
  });
25348
25574
 
25349
- //# sourceMappingURL=index.js.map
25575
+ //# sourceMappingURL=index.js.map
25576
+ //# debugId=4ae3c988-17b7-56c2-b8eb-b8828dfa6862