koishi-plugin-bilibili-notify 2.0.0-alpha.0 → 2.0.0-alpha.10
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/lib/biliAPI.d.ts +1 -0
- package/lib/biliAPI.js +10 -0
- package/lib/comRegister.d.ts +29 -11
- package/lib/comRegister.js +577 -370
- package/lib/database.d.ts +1 -2
- package/lib/database.js +1 -2
- package/lib/generateImg.js +8 -9
- package/lib/index.d.ts +2 -3
- package/lib/index.js +16 -18
- package/package.json +1 -2
- package/readme.md +28 -10
package/lib/database.d.ts
CHANGED
package/lib/database.js
CHANGED
package/lib/generateImg.js
CHANGED
|
@@ -44,14 +44,7 @@ class GenerateImg extends koishi_1.Service {
|
|
|
44
44
|
super(ctx, 'gi');
|
|
45
45
|
this.giConfig = config;
|
|
46
46
|
}
|
|
47
|
-
|
|
48
|
-
this.logger.info('工作中');
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
protected stop(): void | Promise<void> {
|
|
52
|
-
this.logger.info('已停止工作')
|
|
53
|
-
} */
|
|
54
|
-
async generateLiveImg(data, username, userface, liveStatus /*0未开播 1刚开播 2已开播 */) {
|
|
47
|
+
async generateLiveImg(data, username, userface, liveStatus /*0未开播 1刚开播 2已开播 3停止直播*/) {
|
|
55
48
|
const [titleStatus, liveTime, cover] = await this.getLiveStatus(data.live_time, liveStatus);
|
|
56
49
|
// 加载字体
|
|
57
50
|
const fontURL = (0, url_1.pathToFileURL)((0, path_1.resolve)(__dirname, 'font/HYZhengYuan-75W.ttf'));
|
|
@@ -183,7 +176,7 @@ class GenerateImg extends koishi_1.Service {
|
|
|
183
176
|
</div>
|
|
184
177
|
${this.giConfig.hideDesc ? '' : `<p class="card-text">${data.description ? data.description : '这个主播很懒,什么都简介都没写'}</p>`}
|
|
185
178
|
<p class="card-link">
|
|
186
|
-
|
|
179
|
+
${liveStatus !== 3 && `<span>人气:${data.online > 10000 ? `${(data.online / 10000).toFixed(1)}万` : data.online}</span>`}
|
|
187
180
|
<span>分区名称:${data.area_name}</span>
|
|
188
181
|
</p>
|
|
189
182
|
<p class="card-link">
|
|
@@ -1437,6 +1430,12 @@ class GenerateImg extends koishi_1.Service {
|
|
|
1437
1430
|
cover = false;
|
|
1438
1431
|
break;
|
|
1439
1432
|
}
|
|
1433
|
+
case 3: {
|
|
1434
|
+
titleStatus = '下播啦';
|
|
1435
|
+
liveTime = `直播时长:${await this.getTimeDifference(time)}`;
|
|
1436
|
+
cover = true;
|
|
1437
|
+
break;
|
|
1438
|
+
}
|
|
1440
1439
|
}
|
|
1441
1440
|
return [titleStatus, liveTime, cover];
|
|
1442
1441
|
}
|
package/lib/index.d.ts
CHANGED
|
@@ -9,7 +9,6 @@ declare module 'koishi' {
|
|
|
9
9
|
export interface Config {
|
|
10
10
|
require: {};
|
|
11
11
|
key: string;
|
|
12
|
-
platform: 'qq' | 'qqguild' | 'onebot' | 'red' | 'telegram' | 'satori' | 'chronocat' | 'lark';
|
|
13
12
|
master: {};
|
|
14
13
|
basicSettings: {};
|
|
15
14
|
unlockSubLimits: boolean;
|
|
@@ -19,14 +18,14 @@ export interface Config {
|
|
|
19
18
|
dynamic: {};
|
|
20
19
|
dynamicUrl: boolean;
|
|
21
20
|
dynamicCheckNumber: number;
|
|
22
|
-
dynamicLoopTime: '1分钟' | '2分钟' | '3分钟' | '5分钟' | '20分钟';
|
|
21
|
+
dynamicLoopTime: '1分钟' | '2分钟' | '3分钟' | '5分钟' | '10分钟' | '20分钟';
|
|
23
22
|
live: {};
|
|
24
23
|
changeMasterInfoApi: boolean;
|
|
25
24
|
liveStartAtAll: boolean;
|
|
26
25
|
restartPush: boolean;
|
|
27
|
-
pushUrl: boolean;
|
|
28
26
|
pushTime: number;
|
|
29
27
|
customLiveStart: string;
|
|
28
|
+
customLive: string;
|
|
30
29
|
customLiveEnd: string;
|
|
31
30
|
hideDesc: boolean;
|
|
32
31
|
style: {};
|
package/lib/index.js
CHANGED
|
@@ -57,10 +57,6 @@ exports.Config = koishi_1.Schema.object({
|
|
|
57
57
|
.role('secret')
|
|
58
58
|
.required()
|
|
59
59
|
.description('请输入一个32位小写字母的十六进制密钥(例如:9b8db7ae562b9864efefe06289cc5530),使用此密钥将你的B站登录信息存储在数据库中,请一定保存好此密钥。如果你忘记了此密钥,必须重新登录。你可以自行生成,或到这个网站生成:https://www.sexauth.com/'),
|
|
60
|
-
platform: koishi_1.Schema.union(['qq', 'qqguild', 'onebot', 'red', 'telegram', 'satori', 'chronocat', 'lark'])
|
|
61
|
-
.role('')
|
|
62
|
-
.default('qq')
|
|
63
|
-
.description('请选择你的机器人平台,目前支持QQ、QQ群、OneBot、RedBot、Telegram、Satori、ChronoCat、Lark。从2.0版本开始,只能在一个平台下使用本插件'),
|
|
64
60
|
master: koishi_1.Schema.intersect([
|
|
65
61
|
koishi_1.Schema.object({
|
|
66
62
|
enable: koishi_1.Schema.boolean()
|
|
@@ -70,6 +66,8 @@ exports.Config = koishi_1.Schema.object({
|
|
|
70
66
|
koishi_1.Schema.union([
|
|
71
67
|
koishi_1.Schema.object({
|
|
72
68
|
enable: koishi_1.Schema.const(true).required(),
|
|
69
|
+
platform: koishi_1.Schema.union(['qq', 'qqguild', 'onebot', 'discord', 'red', 'telegram', 'satori', 'chronocat', 'lark'])
|
|
70
|
+
.description('请选择您的私人机器人平台,目前支持QQ、QQ群、OneBot、Discord、RedBot、Telegram、Satori、ChronoCat、Lark。从2.0版本开始,只能在一个平台下使用本插件'),
|
|
73
71
|
masterAccount: koishi_1.Schema.string()
|
|
74
72
|
.role('secret')
|
|
75
73
|
.required()
|
|
@@ -84,7 +82,7 @@ exports.Config = koishi_1.Schema.object({
|
|
|
84
82
|
basicSettings: koishi_1.Schema.object({}).description('基本设置'),
|
|
85
83
|
unlockSubLimits: koishi_1.Schema.boolean()
|
|
86
84
|
.default(false)
|
|
87
|
-
.description('解锁3
|
|
85
|
+
.description('解锁3个直播订阅限制,默认只允许订阅3位UP主。订阅过多用户可能有导致IP暂时被封禁的风险'),
|
|
88
86
|
automaticResend: koishi_1.Schema.boolean()
|
|
89
87
|
.default(true)
|
|
90
88
|
.description('是否开启自动重发功能,默认开启。开启后,如果推送失败,将会自动重发,尝试三次。关闭后,推送失败将不会再重发,直到下一次推送'),
|
|
@@ -106,25 +104,20 @@ exports.Config = koishi_1.Schema.object({
|
|
|
106
104
|
.step(1)
|
|
107
105
|
.default(5)
|
|
108
106
|
.description('设定每次检查动态的数量。若订阅的UP主经常在短时间内连着发多条动态可以将该值提高,若订阅的UP主有置顶动态,在计算该值时应+1。默认值为5条'),
|
|
109
|
-
dynamicLoopTime: koishi_1.Schema.union(['1分钟', '2分钟', '3分钟', '5分钟', '20分钟'])
|
|
107
|
+
dynamicLoopTime: koishi_1.Schema.union(['1分钟', '2分钟', '3分钟', '5分钟', '10分钟', '20分钟'])
|
|
110
108
|
.role('')
|
|
111
109
|
.default('2分钟')
|
|
112
110
|
.description('设定多久检测一次动态。若需动态的时效性,可以设置为1分钟。若订阅的UP主经常在短时间内连着发多条动态应该将该值提高,否则会出现动态漏推送和晚推送的问题,默认值为2分钟'),
|
|
113
111
|
live: koishi_1.Schema.object({}).description('直播推送设置'),
|
|
114
112
|
changeMasterInfoApi: koishi_1.Schema.boolean()
|
|
115
113
|
.default(false)
|
|
116
|
-
.description('是否切换获取主播信息API,在遇到错误getMasterInfo()时可以尝试切换')
|
|
117
|
-
.experimental(),
|
|
114
|
+
.description('是否切换获取主播信息API,在遇到错误getMasterInfo()时可以尝试切换'),
|
|
118
115
|
liveStartAtAll: koishi_1.Schema.boolean()
|
|
119
116
|
.default(false)
|
|
120
117
|
.description('直播开始时艾特全体成员,默认关闭'),
|
|
121
118
|
restartPush: koishi_1.Schema.boolean()
|
|
122
119
|
.default(true)
|
|
123
120
|
.description('插件重启后,如果订阅的主播正在直播,是否进行一次推送,默认开启'),
|
|
124
|
-
pushUrl: koishi_1.Schema.boolean()
|
|
125
|
-
.default(false)
|
|
126
|
-
.description('推送直播状态时是否同时发送链接。注意:如果使用的是QQ官方机器人不能开启此项!')
|
|
127
|
-
.experimental(),
|
|
128
121
|
pushTime: koishi_1.Schema.number()
|
|
129
122
|
.min(0)
|
|
130
123
|
.max(12)
|
|
@@ -134,13 +127,14 @@ exports.Config = koishi_1.Schema.object({
|
|
|
134
127
|
customLiveStart: koishi_1.Schema.string()
|
|
135
128
|
.default('-name开播啦 -link')
|
|
136
129
|
.description('自定义开播提示语,-name代表UP昵称,-link代表直播间链接(如果使用的是QQ官方机器人,请不要使用)。例如-name开播啦,会发送为xxxUP开播啦'),
|
|
130
|
+
customLive: koishi_1.Schema.string()
|
|
131
|
+
.description('自定义直播中提示语,-name代表UP昵称,-time代表开播时长,-link代表直播间链接(如果使用的是QQ官方机器人,请不要使用)。例如-name正在直播,会发送为xxxUP正在直播xxx'),
|
|
137
132
|
customLiveEnd: koishi_1.Schema.string()
|
|
138
133
|
.default('-name下播啦,本次直播了-time')
|
|
139
134
|
.description('自定义下播提示语,-name代表UP昵称,-time代表开播时长。例如-name下播啦,本次直播了-time,会发送为xxxUP下播啦,直播时长为xx小时xx分钟xx秒'),
|
|
140
135
|
hideDesc: koishi_1.Schema.boolean()
|
|
141
136
|
.default(false)
|
|
142
|
-
.description('是否隐藏UP主直播间简介,开启后推送的直播卡片将不再展示简介')
|
|
143
|
-
.experimental(),
|
|
137
|
+
.description('是否隐藏UP主直播间简介,开启后推送的直播卡片将不再展示简介'),
|
|
144
138
|
style: koishi_1.Schema.object({}).description('美化设置'),
|
|
145
139
|
removeBorder: koishi_1.Schema.boolean()
|
|
146
140
|
.default(false)
|
|
@@ -257,6 +251,9 @@ class ServerManager extends koishi_1.Service {
|
|
|
257
251
|
case '5分钟':
|
|
258
252
|
this.dynamicLoopTime = 300;
|
|
259
253
|
break;
|
|
254
|
+
case '10分钟':
|
|
255
|
+
this.dynamicLoopTime = 600;
|
|
256
|
+
break;
|
|
260
257
|
case '20分钟':
|
|
261
258
|
this.dynamicLoopTime = 1200;
|
|
262
259
|
break;
|
|
@@ -293,14 +290,12 @@ class ServerManager extends koishi_1.Service {
|
|
|
293
290
|
});
|
|
294
291
|
// CR = ComRegister
|
|
295
292
|
const cr = this.ctx.plugin(comRegister_1.default, {
|
|
296
|
-
platform: globalConfig.platform,
|
|
297
293
|
master: globalConfig.master,
|
|
298
294
|
unlockSubLimits: globalConfig.unlockSubLimits,
|
|
299
295
|
automaticResend: globalConfig.automaticResend,
|
|
300
296
|
changeMasterInfoApi: globalConfig.changeMasterInfoApi,
|
|
301
297
|
liveStartAtAll: globalConfig.liveStartAtAll,
|
|
302
298
|
restartPush: globalConfig.restartPush,
|
|
303
|
-
pushUrl: globalConfig.pushUrl,
|
|
304
299
|
pushTime: globalConfig.pushTime,
|
|
305
300
|
customLiveStart: globalConfig.customLiveStart,
|
|
306
301
|
customLiveEnd: globalConfig.customLiveEnd,
|
|
@@ -346,9 +341,9 @@ class ServerManager extends koishi_1.Service {
|
|
|
346
341
|
await this.disposePlugin();
|
|
347
342
|
// 隔一秒启动插件
|
|
348
343
|
return new Promise(resolve => {
|
|
349
|
-
this.ctx.setTimeout(
|
|
344
|
+
this.ctx.setTimeout(() => {
|
|
350
345
|
try {
|
|
351
|
-
|
|
346
|
+
this.registerPlugin();
|
|
352
347
|
}
|
|
353
348
|
catch (e) {
|
|
354
349
|
this.logger.error('重启插件失败', e);
|
|
@@ -363,6 +358,9 @@ function apply(ctx, config) {
|
|
|
363
358
|
// 设置config
|
|
364
359
|
globalConfig = config;
|
|
365
360
|
// 设置提示
|
|
361
|
+
ctx.notifier.create({
|
|
362
|
+
content: '从2.0.0-alpha.9以前版本更新需重新订阅'
|
|
363
|
+
});
|
|
366
364
|
ctx.notifier.create({
|
|
367
365
|
content: '请使用Auth插件创建超级管理员账号,没有权限将无法使用该插件提供的指令。'
|
|
368
366
|
});
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "koishi-plugin-bilibili-notify",
|
|
3
3
|
"description": "Koishi bilibili notify plugin",
|
|
4
|
-
"version": "2.0.0-alpha.
|
|
4
|
+
"version": "2.0.0-alpha.10",
|
|
5
5
|
"contributors": [
|
|
6
6
|
"Akokko <admin@akokko.com>"
|
|
7
7
|
],
|
|
@@ -29,7 +29,6 @@
|
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"axios": "^1.7.9",
|
|
31
31
|
"axios-cookiejar-support": "^5.0.5",
|
|
32
|
-
"jimp": "^1.6.0",
|
|
33
32
|
"jsdom": "^24.1.3",
|
|
34
33
|
"luxon": "^3.5.0",
|
|
35
34
|
"md5": "^2.3.0",
|
package/readme.md
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
- koishi-plugin-bilibili-notify [](https://www.npmjs.com/package/koishi-plugin-bilibili-notify)
|
|
8
|
+
- [重新订阅](#重新订阅)
|
|
8
9
|
- [功能](#功能)
|
|
9
10
|
- [注意事项](#注意事项)
|
|
10
11
|
- [安装](#安装)
|
|
@@ -14,6 +15,10 @@
|
|
|
14
15
|
- [感谢](#感谢)
|
|
15
16
|
- [License](#License)
|
|
16
17
|
|
|
18
|
+
## 重新订阅
|
|
19
|
+
|
|
20
|
+
由于版本 `2.0.0-alpha.7` 重构了订阅功能,从 `2.0.0-alpha.7` 以前版本升级到以后版本的需重新订阅
|
|
21
|
+
|
|
17
22
|
## 功能
|
|
18
23
|
|
|
19
24
|
订阅B站UP主动态
|
|
@@ -48,23 +53,26 @@
|
|
|
48
53
|
|
|
49
54
|
订阅UP主:订阅你想要推送的UP主
|
|
50
55
|
|
|
51
|
-
- 使用指令 `bili sub <uid
|
|
56
|
+
- 使用指令 `bili sub <uid>` 订阅需要订阅的UP主
|
|
52
57
|
- 参数说明:
|
|
53
58
|
- `uid` 为必填参数,为 `up主` 的 `uid`
|
|
54
|
-
|
|
55
|
-
- 选项说明:`bili sub <uid>` 有两个选项:-l 和 -d
|
|
59
|
+
- 选项说明:`bili sub <uid>` 有四个选项:-l -d -m -a
|
|
56
60
|
- `-l` 为订阅UP主直播间,包括直播开播通知,定时推送直播内容,下播通知
|
|
57
61
|
- `-d` 为订阅UP主动态推送,目前实现推送的动态类型有:普通图文动态,转发动态,直播预约动态
|
|
62
|
+
- `-m` 为多平台动态推送,格式为:群号/频道号,群号/频道号,群号/频道号.平台名;群号/频道号,群号/频道号.平台号。如果群号/频道号为 `all` 代表推送该平台下的所有群聊或/频道。在群号/频道号后加 `@` 则代表这个群聊/频道需要@全体成员
|
|
63
|
+
- `-a` 为是否艾特全体成员,对 `-m` 参数不生效
|
|
64
|
+
|
|
65
|
+
例如:
|
|
66
|
+
`-m 3247293,324389,89874324.qq;EDBWIUBIU.qqguild;79324792,3247892.onebot` 代表推送QQ下3247293,324389,89874324这三个群聊,QQ频道下EDBWIUBIU这个频道,Onebot平台下79324792,3247892这两个群聊
|
|
67
|
+
`-m 3247293,324389@,89874324.qq` 代表推送QQ下3247293,324389,89874324这三个群聊,其中群聊324389需要艾特全体成员
|
|
68
|
+
所有分隔符均为英文符号
|
|
58
69
|
|
|
59
70
|
- 例如:
|
|
60
|
-
- `bili sub 1194210119 ` 订阅UID为1194210119的UP
|
|
71
|
+
- `bili sub 1194210119 ` 订阅UID为1194210119的UP主动态推送和直播间
|
|
61
72
|
- `bili sub 1194210119 -d` 订阅UID为1194210119的UP主动态推送
|
|
62
|
-
- `bili sub 1194210119 -
|
|
63
|
-
- `bili sub 1194210119
|
|
64
|
-
- `bili sub 1194210119
|
|
65
|
-
- Tips:
|
|
66
|
-
- 除非使用指令 `bili sub 1194210119 -ld` ,没有加选项或只加了一个选项的指令都会再次询问是否需要订阅另一项。例如:使用指令 `bili sub 1194210119 -d` 机器人会询问是否需要订阅直播间
|
|
67
|
-
- `[Q群号]` 这个可选参数仅支持Q群
|
|
73
|
+
- `bili sub 1194210119 -l` 订阅UID为1194210119的UP主直播间
|
|
74
|
+
- `bili sub 1194210119 -m 3247293,324389,89874324.qq;all.onebot;EHUIWDBUAWD.qqguild` 订阅UID为1194210119的UP主,向群号为3247293,324389,89874324的QQ群,所有onebot平台下的群聊,频道号为EHUIWDBUAWD的QQ频道平台进行推送
|
|
75
|
+
- `bili sub 1194210119 -a` 订阅UID为1194210119的UP主动态推送和直播间并艾特全体成员
|
|
68
76
|
|
|
69
77
|
取消订阅UP主:取消订阅不需要推送的UP主
|
|
70
78
|
|
|
@@ -178,6 +186,16 @@
|
|
|
178
186
|
- ver 1.3.7 新增设置项:插件重启后是否进行直播推送。优化直播人气显示
|
|
179
187
|
|
|
180
188
|
- ver 2.0.0-alpha.0 重构:对动态订阅进行了重构,优化了订阅流程
|
|
189
|
+
- ver 2.0.0-alpha.1 修复:无法成功取消订阅自己、用户没有直播间订阅直播出错。对直播订阅进行了限制,继承自以前的unlockSubLimits配置项。优化了一些配置项
|
|
190
|
+
- ver 2.0.0-alpha.2 新增:支持Discord平台。优化了下播通知
|
|
191
|
+
- ver 2.0.0-alpha.3 修复:订阅和取消订阅的bug,下播通知的bug
|
|
192
|
+
- ver 2.0.0-alpha.4 修复:初次订阅后不推送动态的bug 优化:下播不再发送链接
|
|
193
|
+
- ver 2.0.0-alpha.5 移除:选项pushUrl,选项platform 新增:选项customLive,主人账号中platform选项。支持多平台,且可同时推送不同平台,单个UP主只能推送一个平台
|
|
194
|
+
- ver 2.0.0-alpha.6 修复:直播推送发送失败的bug
|
|
195
|
+
- ver 2.0.0-alpha.7 重构:现已支持同一UP多平台推送
|
|
196
|
+
- ver 2.0.0-alpha.8 新增:重新订阅提示
|
|
197
|
+
- ver 2.0.0-alpha.9 修复:订阅反复提示未加入群组的bug,实际已加入
|
|
198
|
+
- ver 2.0.0-alpha.10 新增:可对每个群聊针对性设置是否艾特全体成员 优化:直播下播通知
|
|
181
199
|
|
|
182
200
|
## 交流群
|
|
183
201
|
|