yz-yuki-plugin 2.0.5-0 → 2.0.5-1
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
|
@@ -11,10 +11,14 @@ pushTime: '*/23 * * * *'
|
|
|
11
11
|
# 推送监测间隔,单位为秒,默认7200秒即2小时,即以当前时间为基准,监测过去2小时内的动态,并推送。取值范围:3600-36000秒,即过去的1-10h。应大于pushTime的周期。
|
|
12
12
|
interval: 7200
|
|
13
13
|
|
|
14
|
+
# 顺序检测相邻up主的动态并获取数据的最大随机间隔时间,单位为毫秒,默认 8000,即 8000 毫秒(8秒),即获取该up的动态数据后,随机等待2(内置值)-8秒后再获取下一位up的动态数据。取值范围:4000 ≦ x < pushTime的周期,单位为毫秒。
|
|
15
|
+
# 该数值大小影响风控概率, 请谨慎调整,建议不要设置过小,否则可能被风控导致动态获取失败。
|
|
16
|
+
getDataRandomDelay: 8000
|
|
17
|
+
|
|
14
18
|
# 全部订阅的转发动态是否推送: 默认 1 - 开启推送, 0 - 关闭推送。 如果仅仅需要关闭单个订阅的转发动态推送,使用分类订阅指令不包含 转发 分类即可,无需修改此配置。
|
|
15
19
|
pushTransmit: 1
|
|
16
20
|
|
|
17
|
-
#
|
|
21
|
+
# 推送文字和图文动态时,限制发送多少张图片
|
|
18
22
|
pushPicCountLimit: 3
|
|
19
23
|
|
|
20
24
|
# 推送文字和图文动态时,限制字数是多少
|
|
@@ -33,7 +33,7 @@ export declare class BiliTask {
|
|
|
33
33
|
type: string[];
|
|
34
34
|
}[];
|
|
35
35
|
};
|
|
36
|
-
}, uidMap: Map<any, Map<string, any>>, dynamicList: any
|
|
36
|
+
}, biliConfigData: any, uidMap: Map<any, Map<string, any>>, dynamicList: any): Promise<void>;
|
|
37
37
|
/**
|
|
38
38
|
* 推送动态消息
|
|
39
39
|
* @param uidMap uid 映射
|
|
@@ -42,11 +42,10 @@ class BiliTask {
|
|
|
42
42
|
async runTask() {
|
|
43
43
|
let biliConfigData = await Config.getUserConfig('bilibili', 'config');
|
|
44
44
|
let biliPushData = await Config.getUserConfig('bilibili', 'push');
|
|
45
|
-
let interval = biliConfigData
|
|
46
|
-
let lastLiveStatus = JSON.parse(await Redis.get('yuki:bililive:lastlivestatus')) || {};
|
|
45
|
+
let interval = biliConfigData?.interval || 7200;
|
|
47
46
|
const uidMap = new Map(); // 存放group 和 private 对应所属 uid 与推送信息的映射
|
|
48
47
|
const dynamicList = {}; // 存放获取的所有动态,键为 uid,值为动态数组
|
|
49
|
-
await this.processBiliData(biliPushData, uidMap, dynamicList
|
|
48
|
+
await this.processBiliData(biliPushData, biliConfigData, uidMap, dynamicList);
|
|
50
49
|
let now = Date.now() / 1000; // 时间戳(秒)
|
|
51
50
|
await this.pushDynamicMessages(uidMap, dynamicList, now, interval, biliConfigData);
|
|
52
51
|
}
|
|
@@ -57,7 +56,8 @@ class BiliTask {
|
|
|
57
56
|
* @param dynamicList 动态列表
|
|
58
57
|
* @param lastLiveStatus 最后直播状态
|
|
59
58
|
*/
|
|
60
|
-
async processBiliData(biliPushData, uidMap, dynamicList
|
|
59
|
+
async processBiliData(biliPushData, biliConfigData, uidMap, dynamicList) {
|
|
60
|
+
let getDataRandomDelay = biliConfigData?.getDataRandomDelay || 8000; // 获取相邻up动态数据的随机延时间隔
|
|
61
61
|
const requestedDataOfUids = new Map(); // 存放已请求的 uid 映射
|
|
62
62
|
for (let chatType in biliPushData) {
|
|
63
63
|
// 遍历 group 和 private
|
|
@@ -68,9 +68,6 @@ class BiliTask {
|
|
|
68
68
|
for (let chatId in biliPushData[chatType]) {
|
|
69
69
|
const subUpsOfChat = Array.prototype.slice.call(biliPushData[chatType][chatId] || []);
|
|
70
70
|
for (let subInfoOfup of subUpsOfChat) {
|
|
71
|
-
if (!lastLiveStatus[subInfoOfup.uid]) {
|
|
72
|
-
lastLiveStatus[subInfoOfup.uid] = 0;
|
|
73
|
-
}
|
|
74
71
|
let resp;
|
|
75
72
|
// 检查是否已经请求过该 uid
|
|
76
73
|
if (requestedDataOfUids.has(subInfoOfup.uid)) {
|
|
@@ -102,7 +99,7 @@ class BiliTask {
|
|
|
102
99
|
const bot_id = subInfoOfup.bot_id || [];
|
|
103
100
|
const { name, type } = subInfoOfup;
|
|
104
101
|
chatTypeMap.set(subInfoOfup.uid, { chatIds, bot_id, upName: name, type });
|
|
105
|
-
await this.randomDelay(
|
|
102
|
+
await this.randomDelay(2000, getDataRandomDelay); // 随机延时
|
|
106
103
|
}
|
|
107
104
|
}
|
|
108
105
|
}
|
|
@@ -180,7 +177,7 @@ class BiliTask {
|
|
|
180
177
|
let boxGrid = !!biliConfigData.boxGrid === false ? false : true; // 是否启用九宫格样式,默认为 true
|
|
181
178
|
let isSplit = !!biliConfigData.isSplit === false ? false : true; // 是否启用分片截图,默认为 true
|
|
182
179
|
let style = isSplit ? '' : `.unfold { max-height: ${biliConfigData?.noSplitHeight ?? 7500}px; }`; // 不启用分片截图模式的样式
|
|
183
|
-
let splitHeight = biliConfigData?.splitHeight
|
|
180
|
+
let splitHeight = biliConfigData?.splitHeight || 8000; // 分片截图高度,默认 8000, 单位 px,启用分片截图时生效
|
|
184
181
|
const urlQrcodeData = await QRCode.toDataURL(extentData?.url);
|
|
185
182
|
let renderData = this.buildRenderData(extentData, urlQrcodeData, boxGrid);
|
|
186
183
|
const ScreenshotOptionsData = {
|