yz-yuki-plugin 2.0.6-12 → 2.0.6-14

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/CHANGELOG.md CHANGED
@@ -1,4 +1,5 @@
1
1
  # 2.0.6
2
+ * 优化api请求
2
3
  * 优化消息发送
3
4
  * 优化文字动态图片资源的发送
4
5
  * 依赖升级
@@ -1,27 +1,34 @@
1
1
  # b站推送,1 开启 0 关闭,保留添加的相关数据,但是不再推送
2
2
  pushStatus: 1
3
3
 
4
- # 检测b站动态的冷却时间 CD,Cron表达式,作用域共6位,具体方法浏览器搜索 “node-schedule cron表达式”,示例:
4
+ # 检测b站动态的冷却时间 CD,Cron表达式,作用域共6位,具体方法浏览器搜索 “node-schedule cron表达式”,
5
+ # 示例:
5
6
  # "*/15 * * * *" #每15min检测一次
6
7
  # "*/31 * * * *" #每31min检测一次
7
8
  # "0 5,35 * * * *" #每小时固定第5分0秒、第35分0秒检测一次,共2次/h
8
9
  # "0 5,35,51 * * * *" #每小时固定第5分0秒、第35分0秒、第51分0秒检测一次,共3次/h
9
- pushTime: '*/23 * * * *'
10
+ # ❀动态发布通常习惯整点发布,触发检测时比发布时间点稍晚几分钟即可,基本可以命中。
11
+ # ❀请勿设置周期过短比如小于10分钟,以免触发风控。
12
+ checkDynamicCD: '*/23 * * * *'
10
13
 
11
- # 请求头 User-Agent 列表。如出现 -352 风控,可尝试更换请求头,请根据需要自行添加或修改。可设置多个请求头,每次重启后会随机选择一个。获取方法请浏览器自行搜索。
14
+ # 请求头 User-Agent 列表。如出现 -352 风控,可尝试更换请求头,请根据需要自行添加或修改。
15
+ # 可设置多个请求头,每次重启后会随机选择一个。获取方法请浏览器自行搜索。
12
16
  userAgentList:
13
17
  - Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36
14
18
  #- Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0
15
19
  #- Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36 Edg/132.0.0.0
16
20
 
17
- # 推送监测间隔,单位为秒,默认7200秒即2小时,即以当前时间为基准,监测过去2小时内的动态,并推送。取值范围:3600-36000秒,即过去的1-10h。应大于pushTime的周期。
18
- interval: 7200
21
+ # 筛选何时发布的动态,单位为秒,默认7200秒即2小时,即以当前时间为基准,筛选过去2小时内的发布动态,并推送。
22
+ # 取值范围:3600-36000秒,即过去的1-10h。应大于checkDynamicCD的周期。
23
+ dynamicTimeRange: 7200
19
24
 
20
- # 顺序检测相邻up主的动态并获取数据的最大随机间隔时间,单位为毫秒,默认 8000,即 8000 毫秒(8秒),即获取该up的动态数据后,随机等待2(内置值)-8秒后再获取下一位up的动态数据。取值范围:4000 ≦ x < pushTime的周期,单位为毫秒。
25
+ # 顺序检测相邻up主的动态并获取数据的最大随机间隔时间,单位为毫秒,默认 8000,即 8000 毫秒(8秒),
26
+ # 即获取该up的动态数据后,随机等待2(内置值)-8秒后再获取下一位up的动态数据。取值范围:4000 ≦ x < checkDynamicCD的周期,单位为毫秒。
21
27
  # 该数值大小影响风控概率, 请谨慎调整,建议不要设置过小,否则可能被风控导致动态获取失败。
22
28
  getDataRandomDelay: 8000
23
29
 
24
- # 全部订阅的转发动态是否推送: 默认 1 - 开启推送, 0 - 关闭推送。 如果仅仅需要关闭单个订阅的转发动态推送,使用分类订阅指令不包含 转发 分类即可,无需修改此配置。
30
+ # 全部订阅的转发动态是否推送: 默认 1 - 开启推送, 0 - 关闭推送。
31
+ # 如果仅仅需要关闭单个订阅的转发动态推送,使用分类订阅指令不包含 转发 分类即可,无需修改此配置。
25
32
  pushTransmit: 1
26
33
 
27
34
  # 推送文字和图文动态时,限制发送多少张图片
@@ -44,13 +51,16 @@ banWords:
44
51
  # 设置B站动态消息模式 0 文字模式 1 图片模式
45
52
  pushMsgMode: 1
46
53
 
47
- # 文字模式时,文字消息与图片附件是否合并在一起发送,默认 1 合并,0 不合并。如果合并时图片过多导致发送失败,可设置为 0 单独发送图片。
54
+ # 文字模式时,文字消息与图片附件是否合并在一起发送,默认 1 合并,0 不合并。
55
+ # 如果合并时图片过多导致发送失败,可设置为 0 单独发送图片。
48
56
  mergeTextPic: 1
49
57
 
50
- # 是否启用九宫格样式:默认 1 启用,0 不启用。此为最高优先级,九宫格为动态模式,特定大小/长宽比的图片资源将会动态启用九宫格/四宫格/无宫格样式。
58
+ # 是否启用九宫格样式:默认 1 启用,0 不启用。
59
+ # 此为最高优先级,九宫格为动态模式,特定大小/长宽比的图片资源将会动态启用九宫格/四宫格/无宫格样式。
51
60
  boxGrid: 1
52
61
 
53
- # B站动态卡片分片截图模式:默认 1 启用 0 不启用。启用,将会推送每条动态的全部内容;不启用,动态内容过长时候将只推送noSplitHeight长度的动态卡片,需关闭宫格模式。
62
+ # B站动态卡片分片截图模式:默认 1 启用 0 不启用。
63
+ # 启用,将会推送每条动态的全部内容;不启用,动态内容过长时候将只推送noSplitHeight长度的动态卡片,需关闭宫格模式。
54
64
  isSplit: 1
55
65
 
56
66
  # 动态卡片非分片模式下的截图高度,默认7500px(仅填数字,无需填入单位),请勿设置过大或过小。关闭分片截图时生效。
@@ -59,14 +69,16 @@ noSplitHeight: 7500
59
69
  # 动态卡片分页截图高度,默认8000px(仅填数字,无需填入单位),请勿设置过大或过小。启用分片截图时生效。
60
70
  splitHeight: 8000
61
71
 
62
- # 直播动态是否@全体成员,默认 0 关闭,1 开启。开启前请检查 <机器人> 是否有 [管理员权限] 或 [聊天平台是否支持],某些聊天平台或类型不支持@全体成员,如qq官方机器人等。
72
+ # 直播动态是否@全体成员,默认 0 关闭,1 开启。
73
+ # 开启前请检查 <机器人> 是否有 [管理员权限] 或 [聊天平台是否支持],某些聊天平台或类型不支持@全体成员,如qq官方机器人等。
63
74
  liveAtAll: 0
64
75
 
65
76
  # 直播动态@全体成员的群组/聊天/私聊列表,默认为空即不在任何群于推送直播动态中执行@全体成员。开启liveAtAll后才会生效。
66
77
  liveAtAllGroupList:
67
78
  - 1234567890 # 示例群号
68
79
 
69
- # 直播动态@全体成员的共享冷却时间CD,单位秒,默认 1800 秒(30分钟),即每个群聊30分钟内不论多少条直播动态,只会@一次。注意,qq群有 @全体成员 10次/日 的限制,所以请合理设置。
80
+ # 直播动态@全体成员的共享冷却时间CD,单位秒,默认 1800 秒(30分钟),
81
+ # 即每个群聊30分钟内不论多少条直播动态,只会@一次。注意,qq群有 @全体成员 10次/日 的限制,所以请合理设置。
70
82
  liveAtAllCD: 1800
71
83
 
72
84
  # 直播动态@全体成员失败时是否发送错误消息,默认 1 发送,0 不发送。开启liveAtAll后才会生效。
@@ -1,17 +1,22 @@
1
1
  # 微博推送,1 开启 0 关闭,保留添加的相关数据,但是不再推送
2
2
  pushStatus: 1
3
3
 
4
- # 检测微博动态的冷却时间 CD,Cron表达式,作用域共6位,具体方法浏览器搜索 “node-schedule cron表达式”,示例:
4
+ # 检测微博动态的冷却时间 CD,Cron表达式,作用域共6位,具体方法浏览器搜索 “node-schedule cron表达式”,
5
+ # 示例:
5
6
  # "*/15 * * * *" #每15min检测一次
6
7
  # "*/31 * * * *" #每31min检测一次
7
8
  # "0 5,35 * * * *" #每小时固定第5分0秒、第35分0秒检测一次,共2次/h
8
9
  # "0 5,35,51 * * * *" #每小时固定第5分0秒、第35分0秒、第51分0秒检测一次,共3次/h
9
- pushTime: '*/23 * * * *'
10
+ # ❀动态发布通常习惯整点发布,触发检测时比发布时间点稍晚几分钟即可,基本可以命中。
11
+ # ❀请勿设置周期过短比如小于10分钟,以免触发访问限制。
12
+ checkDynamicCD: '*/23 * * * *'
10
13
 
11
- # 推送监测间隔,单位为秒,默认7200秒即2小时,即以当前时间为基准,监测过去2小时内的动态,并推送。取值范围:3600-36000秒,即过去的1-10h。应大于pushTime的周期。
12
- interval: 7200
14
+ # 筛选何时发布的动态,单位为秒,默认7200秒即2小时,即以当前时间为基准,筛选过去2小时内发布的动态,并推送。
15
+ # 取值范围:3600-36000秒,即过去的1-10h。应大于checkDynamicCD的周期。
16
+ dynamicTimeRange: 7200
13
17
 
14
- # 全部订阅的转发动态是否推送: 默认 1 - 开启推送, 0 - 关闭推送。 如果仅仅需要关闭单个订阅的转发动态推送,使用分类订阅指令不包含 转发 分类即可,无需修改此配置。
18
+ # 全部订阅的转发动态是否推送: 默认 1 - 开启推送, 0 - 关闭推送。
19
+ # 如果仅仅需要关闭单个订阅的转发动态推送,使用分类订阅指令不包含 转发 分类即可,无需修改此配置。
15
20
  pushTransmit: 1
16
21
 
17
22
  # 推送动态时,限制发送多少张图片
@@ -34,13 +39,16 @@ banWords:
34
39
  # 设置微博动态消息模式 0 文字模式 1 图片模式
35
40
  pushMsgMode: 1
36
41
 
37
- # 文字模式时,文字消息与图片附件是否合并在一起发送,默认 1 合并,0 不合并。如果合并时图片过多导致发送失败,可设置为 0 单独发送图片。
42
+ # 文字模式时,文字消息与图片附件是否合并在一起发送,默认 1 合并,0 不合并。
43
+ # 如果合并时图片过多导致发送失败,可设置为 0 单独发送图片。
38
44
  mergeTextPic: 1
39
45
 
40
- # 是否启用九宫格样式:默认 1 启用,0 不启用。此为最高优先级,九宫格为动态模式,特定大小/长宽比的图片资源将会动态启用九宫格/四宫格/无宫格样式。
46
+ # 是否启用九宫格样式:默认 1 启用,0 不启用。
47
+ # 此为最高优先级,九宫格为动态模式,特定大小/长宽比的图片资源将会动态启用九宫格/四宫格/无宫格样式。
41
48
  boxGrid: 1
42
49
 
43
- # 微博动态卡片分片截图模式:默认 1 启用 0 不启用。启用,将会推送每条动态的全部内容;不启用,动态内容过长时候将只推送noSplitHeight长度的动态卡片,需关闭宫格模式。
50
+ # 微博动态卡片分片截图模式:默认 1 启用 0 不启用。
51
+ # 启用,将会推送每条动态的全部内容;不启用,动态内容过长时候将只推送noSplitHeight长度的动态卡片,需关闭宫格模式。
44
52
  isSplit: 1
45
53
 
46
54
  # 动态卡片非分片模式下的截图高度,默认7500px(仅填数字,无需填入单位),请勿设置过大或过小。关闭分片截图时生效。
@@ -4,7 +4,7 @@ import { Messages, Redis } from 'yunzaijs';
4
4
  import { BiliQuery } from '../models/bilibili/bilibili.main.query.js';
5
5
  import { BiliTask } from '../models/bilibili/bilibili.main.task.js';
6
6
  import Config from '../utils/config.js';
7
- import { BiliGetWebData } from '../models/bilibili/bilibili.main.get.web.data.js';
7
+ import { BilibiliWebDataFetcher } from '../models/bilibili/bilibili.main.get.web.data.js';
8
8
  import { readLoginCookie, applyLoginQRCode, pollLoginQRCode, saveLoginCookie, postGateway, exitBiliLogin, checkBiliLogin, readSavedCookieItems, saveLocalBiliCk, readSyncCookie, getNewTempCk, saveTempCk } from '../models/bilibili/bilibili.main.models.js';
9
9
 
10
10
  const message = new Messages('message');
@@ -52,8 +52,8 @@ message.use(async (e) => {
52
52
  return;
53
53
  }
54
54
  // 获取 Bilibili 动态信息
55
- const res = await new BiliGetWebData(e).getBiliDynamicListDataByUid(uid);
56
- if (res.statusText !== 'OK') {
55
+ const res = await new BilibiliWebDataFetcher(e).getBiliDynamicListDataByUid(uid);
56
+ if (res?.statusText !== 'OK') {
57
57
  e.reply('出了点网络问题,等会再试试吧~');
58
58
  return false;
59
59
  }
@@ -66,8 +66,8 @@ message.use(async (e) => {
66
66
  let infoName = '';
67
67
  if (code === 0 && has_more === false) {
68
68
  e.reply(`检测到该uid的主页空间动态内容为空,\n执行uid:${uid} 校验...`);
69
- const resp = await new BiliGetWebData(e).getBilibiUserInfoByUid(uid);
70
- if (resp.statusText !== 'OK') {
69
+ const resp = await new BilibiliWebDataFetcher(e).getBilibiUserInfoByUid(uid);
70
+ if (resp?.statusText !== 'OK') {
71
71
  e.reply('出了点网络问题,发起uid校验失败,等会再试试吧~');
72
72
  return false;
73
73
  }
@@ -438,8 +438,8 @@ message.use(async (e) => {
438
438
  /**通过uid获取up主信息 */
439
439
  message.use(async (e) => {
440
440
  let uid = e.msg.replace(/^(#|\/)(yuki|优纪)?(b站|B站|bili|bilibili|哔哩|哔哩哔哩)(up|UP)主/g, '').trim();
441
- const res = await new BiliGetWebData(e).getBilibiUserInfoByUid(uid);
442
- if (res.statusText !== 'OK') {
441
+ const res = await new BilibiliWebDataFetcher(e).getBilibiUserInfoByUid(uid);
442
+ if (res?.statusText !== 'OK') {
443
443
  e.reply('诶嘿,出了点网络问题,等会再试试吧~');
444
444
  return;
445
445
  }
@@ -466,8 +466,8 @@ message.use(async (e) => {
466
466
  /** 根据名称搜索up的uid*/
467
467
  message.use(async (e) => {
468
468
  let keyword = e.msg.replace(/^(#|\/)(yuki|优纪)?搜索(b站|B站|bili|bilibili|哔哩|哔哩哔哩)(up|UP)主/g, '').trim();
469
- const res = await new BiliGetWebData(e).searchBiliUserInfoByKeyword(keyword);
470
- if (res.statusText !== 'OK') {
469
+ const res = await new BilibiliWebDataFetcher(e).searchBiliUserInfoByKeyword(keyword);
470
+ if (res?.statusText !== 'OK') {
471
471
  e.reply('诶嘿,出了点网络问题,等会再试试吧~');
472
472
  return;
473
473
  }
package/lib/apps/weibo.js CHANGED
@@ -2,7 +2,7 @@ import { Messages } from 'yunzaijs';
2
2
  import { WeiboQuery } from '../models/weibo/weibo.main.query.js';
3
3
  import { WeiboTask } from '../models/weibo/weibo.main.task.js';
4
4
  import Config from '../utils/config.js';
5
- import { WeiboGetWebData } from '../models/weibo/weibo.main.get.web.data.js';
5
+ import { WeiboWebDataFetcher } from '../models/weibo/weibo.main.get.web.data.js';
6
6
 
7
7
  const message = new Messages('message');
8
8
  let weiboPushData = Config.getConfigData('config', 'weibo', 'push');
@@ -46,8 +46,8 @@ message.use(async (e) => {
46
46
  return;
47
47
  }
48
48
  // 获取 微博 博主信息
49
- const res = await new WeiboGetWebData(e).getBloggerInfo(uid);
50
- if (res.statusText !== 'OK') {
49
+ const res = await new WeiboWebDataFetcher(e).getBloggerInfo(uid);
50
+ if (res?.statusText !== 'OK') {
51
51
  e.reply('出了点网络问题,等会再试试吧~');
52
52
  return false;
53
53
  }
@@ -211,8 +211,8 @@ message.use(async (e) => {
211
211
  /**通过uid获取up主信息 */
212
212
  message.use(async (e) => {
213
213
  let uid = e.msg.replace(/^(#|\/)(yuki|优纪)?(微博|weibo|WEIBO)(博|bo|BO)主/g, '').trim();
214
- const res = await new WeiboGetWebData(e).getBloggerInfo(uid);
215
- if (res.statusText !== 'OK') {
214
+ const res = await new WeiboWebDataFetcher(e).getBloggerInfo(uid);
215
+ if (res?.statusText !== 'OK') {
216
216
  e.reply('诶嘿,出了点网络问题,等会再试试吧~');
217
217
  return;
218
218
  }
@@ -240,8 +240,8 @@ message.use(async (e) => {
240
240
  /** 根据昵称搜索博主信息*/
241
241
  message.use(async (e) => {
242
242
  let keyword = e.msg.replace(/^(#|\/)(yuki|优纪)?搜索(微博|weibo|WEIBO)(博|bo|BO)主/g, '').trim();
243
- const res = await new WeiboGetWebData(e).searchBloggerInfo(keyword);
244
- if (res.statusText !== 'OK') {
243
+ const res = await new WeiboWebDataFetcher(e).searchBloggerInfo(keyword);
244
+ if (res?.statusText !== 'OK') {
245
245
  e.reply('诶嘿,出了点网络问题,等会再试试吧~');
246
246
  return;
247
247
  }
package/lib/index.js CHANGED
@@ -55,7 +55,7 @@ var index = () => {
55
55
  catch (err) {
56
56
  console.error('B站动态推送定时任务', err);
57
57
  }
58
- }, biliConfigData.pushStatus ? biliConfigData.pushTime : '');
58
+ }, !!biliConfigData.pushStatus ? (biliConfigData.checkDynamicCD ? biliConfigData.checkDynamicCD : ' */23 * * * *') : '');
59
59
  /** 微博动态推送定时任务 */
60
60
  setBotTask(async (Bot) => {
61
61
  try {
@@ -67,7 +67,7 @@ var index = () => {
67
67
  catch (err) {
68
68
  console.error('微博动态推送定时任务', err);
69
69
  }
70
- }, weiboConfigData.pushStatus ? weiboConfigData.pushTime : '');
70
+ }, !!weiboConfigData.pushStatus ? (weiboConfigData.checkDynamicCD ? weiboConfigData.checkDynamicCD : ' */23 * * * *') : '');
71
71
  },
72
72
  async mounted(e) {
73
73
  // 存储
@@ -6,7 +6,8 @@ import { getWbiSign } from './bilibili.risk.wbi.js';
6
6
  import { getDmImg } from './bilibili.risk.dm.img.js';
7
7
  import { getWebId } from './bilibili.risk.w_webid.js';
8
8
 
9
- class BiliGetWebData {
9
+ class BilibiliWebDataFetcher {
10
+ e;
10
11
  constructor(e) { }
11
12
  /**通过uid获取up动态数据表*/
12
13
  async getBiliDynamicListDataByUid(uid) {
@@ -32,9 +33,10 @@ class BiliGetWebData {
32
33
  w_rid: w_rid,
33
34
  wts: time_stamp
34
35
  };
35
- const res = await axios.get(url, {
36
+ const res = await axios(url, {
37
+ method: 'GET',
36
38
  params,
37
- timeout: 10000,
39
+ timeout: 15000,
38
40
  headers: lodash.merge(BiliApi.BILIBILI_HEADERS, {
39
41
  Cookie: `${cookie}`,
40
42
  Host: `api.bilibili.com`,
@@ -67,9 +69,10 @@ class BiliGetWebData {
67
69
  w_rid: w_rid,
68
70
  wts: time_stamp
69
71
  };
70
- const res = await axios.get(url, {
72
+ const res = await axios(url, {
73
+ method: 'GET',
71
74
  params,
72
- timeout: 5000,
75
+ timeout: 10000,
73
76
  headers: lodash.merge(BiliApi.BILIBILI_HEADERS, {
74
77
  Cookie: `${cookie}`,
75
78
  Host: `api.bilibili.com`,
@@ -97,9 +100,10 @@ class BiliGetWebData {
97
100
  w_rid: w_rid,
98
101
  wts: time_stamp
99
102
  };
100
- const res = await axios.get(url, {
103
+ const res = await axios(url, {
104
+ method: 'GET',
101
105
  params,
102
- timeout: 5000,
106
+ timeout: 10000,
103
107
  headers: lodash.merge(BiliApi.BILIBILI_HEADERS, {
104
108
  Cookie: `${cookie}`,
105
109
  Host: `api.bilibili.com`,
@@ -111,4 +115,4 @@ class BiliGetWebData {
111
115
  }
112
116
  }
113
117
 
114
- export { BiliGetWebData };
118
+ export { BilibiliWebDataFetcher };
@@ -145,8 +145,8 @@ async function checkBiliLogin(e) {
145
145
  let current_exp = level_info?.current_exp;
146
146
  let next_exp = level_info?.next_exp;
147
147
  const LoginCookieTTL = await readLoginCookieTTL();
148
- const LoginCookieTTLStr = LoginCookieTTL === -1 ? '永久' : LoginCookieTTL === -2 ? '未登录或登录状态无效' : `${new Date(Date.now() + LoginCookieTTL * 1000).toLocaleString()}`;
149
- e.reply(`~B站账号已登陆~,有效期至:${LoginCookieTTLStr}。\n昵称:${uname}\nuid:${mid}\n硬币:${money}\n经验等级:${current_level}\n当前经验值exp:${current_exp}\n下一等级所需exp:${next_exp}`);
148
+ const LoginCookieTTLStr = LoginCookieTTL === -1 ? '永久' : LoginCookieTTL === -2 ? '-' : `${new Date(Date.now() + LoginCookieTTL * 1000).toLocaleString()}`;
149
+ e.reply(`~B站账号已登陆~\n有效期至:${LoginCookieTTLStr}。\n昵称:${uname}\nuid:${mid}\n硬币:${money}\n经验等级:${current_level}\n当前经验值exp:${current_exp}\n下一等级所需exp:${next_exp}`);
150
150
  }
151
151
  else {
152
152
  // 处理其他情况
@@ -2,7 +2,7 @@ import QRCode from 'qrcode';
2
2
  import { Redis, Segment, Bot } from 'yunzaijs';
3
3
  import Config from '../../utils/config.js';
4
4
  import { renderPage } from '../../utils/image.js';
5
- import { BiliGetWebData } from './bilibili.main.get.web.data.js';
5
+ import { BilibiliWebDataFetcher } from './bilibili.main.get.web.data.js';
6
6
  import { readSyncCookie, postGateway } from './bilibili.main.models.js';
7
7
  import { BiliQuery } from './bilibili.main.query.js';
8
8
 
@@ -18,8 +18,8 @@ class BiliTask {
18
18
  }
19
19
  async hendleEventDynamicData(uid, count = 0) {
20
20
  let { cookie } = await readSyncCookie();
21
- const resp = await new BiliGetWebData().getBiliDynamicListDataByUid(uid);
22
- const resjson = await resp.data;
21
+ const resp = await new BilibiliWebDataFetcher().getBiliDynamicListDataByUid(uid);
22
+ const resjson = await resp?.data;
23
23
  if (!resjson || resjson.code !== 0 || resjson.code === -352) {
24
24
  await postGateway(cookie);
25
25
  if (count < 2) {
@@ -39,7 +39,7 @@ class BiliTask {
39
39
  async runTask() {
40
40
  let biliConfigData = await Config.getUserConfig('bilibili', 'config');
41
41
  let biliPushData = await Config.getUserConfig('bilibili', 'push');
42
- let interval = biliConfigData?.interval || 7200;
42
+ let dynamicTimeRange = biliConfigData?.dynamicTimeRange || 7200; // 检测动态的冷却时间,单位为秒,默认2小时
43
43
  logger.debug(`当前B站功能配置:${JSON.stringify(biliConfigData)}`);
44
44
  const uidMap = new Map(); // 存放group 和 private 对应所属 uid 与推送信息的映射
45
45
  const dynamicList = {}; // 存放获取的所有动态,键为 uid,值为动态数组
@@ -47,7 +47,7 @@ class BiliTask {
47
47
  let now = Date.now() / 1000; // 时间戳(秒)
48
48
  // 定义待推送动态消息映射
49
49
  const messageMap = new Map();
50
- await this.makeUidDynamicDataMap(uidMap, dynamicList, now, interval, biliConfigData, messageMap);
50
+ await this.makeUidDynamicDataMap(uidMap, dynamicList, now, dynamicTimeRange, biliConfigData, messageMap);
51
51
  await this.sendDynamicMessage(messageMap, biliConfigData);
52
52
  }
53
53
  /**
@@ -115,7 +115,7 @@ class BiliTask {
115
115
  * @param uidMap uid 映射
116
116
  * @param dynamicList 动态列表
117
117
  * @param now 当前时间戳
118
- * @param interval 推送间隔时间
118
+ * @param interval 检测动态的冷却时间
119
119
  * @param biliConfigData Bilibili配置数据
120
120
  */
121
121
  async makeUidDynamicDataMap(uidMap, dynamicList, now, interval, biliConfigData, messageMap) {
@@ -2,7 +2,7 @@ import axios from 'axios';
2
2
  import { WeiboApi } from './weibo.main.api.js';
3
3
  import { WeiboQuery } from './weibo.main.query.js';
4
4
 
5
- class WeiboGetWebData {
5
+ class WeiboWebDataFetcher {
6
6
  e;
7
7
  constructor(e) { }
8
8
  /**通过uid获取博主信息 */
@@ -10,7 +10,8 @@ class WeiboGetWebData {
10
10
  const param = { containerid: '100505' + target };
11
11
  const url = new URL(WeiboApi.WEIBO_API.weiboGetIndex);
12
12
  url.search = new URLSearchParams(param).toString();
13
- const resp = await axios.get(url.toString(), {
13
+ const resp = await axios(url.toString(), {
14
+ method: 'GET',
14
15
  timeout: 10000,
15
16
  headers: { 'accept': '*/*', 'Content-Type': 'application/json', 'referer': 'https://m.weibo.cn' }
16
17
  });
@@ -22,7 +23,8 @@ class WeiboGetWebData {
22
23
  const params = {
23
24
  q: keyword
24
25
  };
25
- const resp = await axios.get(url, {
26
+ const resp = await axios(url, {
27
+ method: 'GET',
26
28
  params,
27
29
  timeout: 10000,
28
30
  headers: { 'accept': '*/*', 'Content-Type': 'application/json', 'referer': 'https://s.weibo.com' }
@@ -36,13 +38,14 @@ class WeiboGetWebData {
36
38
  url.search = new URLSearchParams(params).toString();
37
39
  await new Promise(resolve => setTimeout(resolve, Math.floor(Math.random() * (6500 - 1000 + 1) + 1000)));
38
40
  try {
39
- const response = await axios.get(url.toString(), {
40
- timeout: 15000,
41
+ const response = await axios(url.toString(), {
42
+ method: 'GET',
43
+ timeout: 10000,
41
44
  headers: { 'accept': '*/*', 'Content-Type': 'application/json', 'referer': 'https://m.weibo.cn' }
42
45
  });
43
- const { ok, data, msg } = response.data;
46
+ const { ok, data, msg } = response?.data;
44
47
  if (!ok && msg !== '这里还没有内容') {
45
- throw new Error(response.config.url);
48
+ throw new Error(response?.config.url);
46
49
  }
47
50
  return data.cards.filter(WeiboQuery.filterCardTypeCustom);
48
51
  }
@@ -53,4 +56,4 @@ class WeiboGetWebData {
53
56
  }
54
57
  }
55
58
 
56
- export { WeiboGetWebData };
59
+ export { WeiboWebDataFetcher };
@@ -2,7 +2,7 @@ import QRCode from 'qrcode';
2
2
  import { Redis, Segment, Bot } from 'yunzaijs';
3
3
  import Config from '../../utils/config.js';
4
4
  import { renderPage } from '../../utils/image.js';
5
- import { WeiboGetWebData } from './weibo.main.get.web.data.js';
5
+ import { WeiboWebDataFetcher } from './weibo.main.get.web.data.js';
6
6
  import { WeiboQuery } from './weibo.main.query.js';
7
7
 
8
8
  class WeiboTask {
@@ -21,7 +21,7 @@ class WeiboTask {
21
21
  async runTask() {
22
22
  let weiboConfigData = await Config.getUserConfig('weibo', 'config');
23
23
  let weiboPushData = await Config.getUserConfig('weibo', 'push');
24
- let interval = weiboConfigData.interval || 7200; // 推送间隔时间,单位为秒,默认2小时
24
+ let interval = weiboConfigData.interval || 7200; // 检测动态的冷却时间,单位为秒,默认2小时
25
25
  logger.debug(`当前微博功能配置:${JSON.stringify(weiboConfigData)}`);
26
26
  const uidMap = new Map(); // 存放group 和 private 对应所属 uid 与推送信息的映射
27
27
  const dynamicList = {}; // 存放获取的所有动态,键为 uid,值为动态数组
@@ -59,7 +59,7 @@ class WeiboTask {
59
59
  dynamicList[subInfoOfup.uid] = dynamicData;
60
60
  }
61
61
  else {
62
- resp = await await new WeiboGetWebData().getBloggerDynamicList(subInfoOfup.uid); // 获取指定 uid 的动态列表
62
+ resp = await new WeiboWebDataFetcher().getBloggerDynamicList(subInfoOfup.uid); // 获取指定 uid 的动态列表
63
63
  if (resp) {
64
64
  requestedDataOfUids.set(subInfoOfup.uid, resp); // 将响应数据存储到映射中
65
65
  const dynamicData = resp || [];
@@ -81,7 +81,7 @@ class WeiboTask {
81
81
  * @param uidMap uid 映射
82
82
  * @param dynamicList 动态列表
83
83
  * @param now 当前时间戳
84
- * @param interval 推送间隔时间
84
+ * @param interval 检测动态的冷却时间
85
85
  * @param weiboConfigData 微博配置数据
86
86
  */
87
87
  async makeUidDynamicDataMap(uidMap, dynamicList, now, interval, weiboConfigData, messageMap) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yz-yuki-plugin",
3
- "version": "2.0.6-12",
3
+ "version": "2.0.6-14",
4
4
  "description": "优纪插件,yunzaijs 关于 微博推送、B站推送 等功能的拓展插件",
5
5
  "author": "snowtafir",
6
6
  "type": "module",