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/database.d.ts CHANGED
@@ -10,9 +10,8 @@ export interface Bilibili {
10
10
  uid: string;
11
11
  room_id: string;
12
12
  dynamic: number;
13
- video: number;
14
13
  live: number;
15
- targetId: string;
14
+ target: string;
16
15
  platform: string;
17
16
  time: Date;
18
17
  }
package/lib/database.js CHANGED
@@ -10,9 +10,8 @@ function apply(ctx) {
10
10
  uid: 'string',
11
11
  room_id: 'string',
12
12
  dynamic: 'unsigned',
13
- video: 'unsigned',
14
13
  live: 'unsigned',
15
- targetId: 'string',
14
+ target: 'string',
16
15
  platform: 'string',
17
16
  time: 'timestamp'
18
17
  }, { autoInc: true });
@@ -44,14 +44,7 @@ class GenerateImg extends koishi_1.Service {
44
44
  super(ctx, 'gi');
45
45
  this.giConfig = config;
46
46
  }
47
- /* protected start(): void | Promise<void> {
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
- <span>人气:${data.online > 10000 ? `${(data.online / 10000).toFixed(1)}万` : data.online}</span>
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个订阅限制,默认只允许订阅3位UP主。订阅过多用户可能有导致IP暂时被封禁的风险'),
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(async () => {
344
+ this.ctx.setTimeout(() => {
350
345
  try {
351
- await this.registerPlugin();
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.0",
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 [![npm](https://img.shields.io/npm/v/koishi-plugin-bilibili-notify?style=flat-square)](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> [Q群号]` 订阅需要订阅的UP主
56
+ - 使用指令 `bili sub <uid>` 订阅需要订阅的UP主
52
57
  - 参数说明:
53
58
  - `uid` 为必填参数,为 `up主` 的 `uid`
54
- - `Q群号` 为可选参数,可以添加多个,如果Q群号为 `all` 则会向机器人加入的所有群聊推送
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 -ld` 订阅UID为1194210119的UP主动态推送和直播间
63
- - `bili sub 1194210119 1234567 2345678` 订阅UID为1194210119的UP主,向Q群号为1234567和2345678两个群进行推送
64
- - `bili sub 1194210119 all` 订阅UID为1194210119的UP主,向机器人加入的所有群聊进行推送
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