koishi-plugin-bilibili-notify 1.2.12-alpha.1 → 1.2.12-alpha.3

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 CHANGED
@@ -3,7 +3,7 @@ import { CookieJar } from 'tough-cookie';
3
3
  import { Notifier } from "@koishijs/plugin-notifier";
4
4
  declare module 'koishi' {
5
5
  interface Context {
6
- biliAPI: BiliAPI;
6
+ ba: BiliAPI;
7
7
  }
8
8
  }
9
9
  declare class BiliAPI extends Service {
package/lib/biliAPI.js CHANGED
@@ -32,7 +32,7 @@ class BiliAPI extends koishi_1.Service {
32
32
  refreshCookieTimer;
33
33
  loginInfoIsLoaded = false;
34
34
  constructor(ctx, config) {
35
- super(ctx, 'biliAPI');
35
+ super(ctx, 'ba');
36
36
  this.apiConfig = config;
37
37
  }
38
38
  start() {
@@ -15,7 +15,7 @@ var LiveType;
15
15
  LiveType[LiveType["LiveBroadcast"] = 2] = "LiveBroadcast";
16
16
  })(LiveType || (LiveType = {}));
17
17
  class ComRegister {
18
- static inject = ['biliAPI', 'gimg', 'wbi', 'database', 'sm'];
18
+ static inject = ['ba', 'gi', 'wbi', 'database', 'sm'];
19
19
  logger;
20
20
  config;
21
21
  loginTimer;
@@ -37,7 +37,13 @@ class ComRegister {
37
37
  // Chronocat机器人
38
38
  chronocatBot;
39
39
  constructor(ctx, config) {
40
- this.logger = ctx.logger('commandRegister');
40
+ this.logger = ctx.logger('cr');
41
+ ctx.on('ready', () => {
42
+ this.logger.info('工作中');
43
+ });
44
+ ctx.on('dispose', () => {
45
+ this.logger.info('已停止工作');
46
+ });
41
47
  this.config = config;
42
48
  // 拿到各类机器人
43
49
  ctx.bots.forEach(bot => {
@@ -73,8 +79,8 @@ class ComRegister {
73
79
  .usage('测试指令,用于测试从数据库读取cookies')
74
80
  .action(async () => {
75
81
  this.logger.info('调用test cookies指令')
76
- // await ctx.biliAPI.loadCookiesFromDatabase()
77
- console.log(JSON.parse(ctx.biliAPI.getCookies()));
82
+ // await ctx.ba.loadCookiesFromDatabase()
83
+ console.log(JSON.parse(ctx.ba.getCookies()));
78
84
  })
79
85
 
80
86
  testCom
@@ -82,7 +88,7 @@ class ComRegister {
82
88
  .usage('测试指令,用于测试获取自己信息')
83
89
  .example('test.my')
84
90
  .action(async () => {
85
- const content = await ctx.biliAPI.getMyselfInfo()
91
+ const content = await ctx.ba.getMyselfInfo()
86
92
  console.log(content);
87
93
  })
88
94
 
@@ -91,7 +97,7 @@ class ComRegister {
91
97
  .usage('测试指令,用于测试获取用户信息')
92
98
  .example('test.user 用户UID')
93
99
  .action(async (_, mid) => {
94
- const content = await ctx.biliAPI.getUserInfo(mid)
100
+ const content = await ctx.ba.getUserInfo(mid)
95
101
  console.log(content);
96
102
  })
97
103
 
@@ -100,7 +106,7 @@ class ComRegister {
100
106
  .usage('测试时间接口')
101
107
  .example('test.time')
102
108
  .action(async ({ session }) => {
103
- session.send(await ctx.biliAPI.getTimeNow())
109
+ session.send(await ctx.ba.getTimeNow())
104
110
  })
105
111
 
106
112
  testCom
@@ -111,9 +117,9 @@ class ComRegister {
111
117
  // logger
112
118
  this.logger.info('调用test gimg指令')
113
119
  // 获取用户空间动态数据
114
- const { data } = await ctx.biliAPI.getUserSpaceDynamic(uid)
120
+ const { data } = await ctx.ba.getUserSpaceDynamic(uid)
115
121
  // 获取动态推送图片
116
- const { pic, buffer } = await ctx.gimg.generateDynamicImg(data.items[index])
122
+ const { pic, buffer } = await ctx.gi.generateDynamicImg(data.items[index])
117
123
  // 如果pic存在,则直接返回pic
118
124
  if (pic) return pic
119
125
  // pic不存在,说明使用的是page模式
@@ -141,7 +147,7 @@ class ComRegister {
141
147
  .usage('获取当前UTC+8 Unix时间戳')
142
148
  .example('test utc')
143
149
  .action(async ({ session }) => {
144
- session.send((await ctx.biliAPI.getServerUTCTime()).toString())
150
+ session.send((await ctx.ba.getServerUTCTime()).toString())
145
151
  })
146
152
 
147
153
  testCom
@@ -152,7 +158,7 @@ class ComRegister {
152
158
  // logger
153
159
  this.logger.info('调用test gimg指令')
154
160
  // 获取主播信息
155
- const { data } = await ctx.biliAPI.getMasterInfo('686127')
161
+ const { data } = await ctx.ba.getMasterInfo('686127')
156
162
  let resizedImage: Buffer
157
163
  try {
158
164
  resizedImage = await Jimp.read(data.info.face).then(async image => {
@@ -186,7 +192,7 @@ class ComRegister {
186
192
  // 获取二维码
187
193
  let content;
188
194
  try {
189
- content = await ctx.biliAPI.getLoginQRCode();
195
+ content = await ctx.ba.getLoginQRCode();
190
196
  }
191
197
  catch (e) {
192
198
  return 'bili login getLoginQRCode() 本次网络请求失败';
@@ -222,7 +228,7 @@ class ComRegister {
222
228
  // 获取登录信息
223
229
  let loginContent;
224
230
  try {
225
- loginContent = await ctx.biliAPI.getLoginStatus(content.data.qrcode_key);
231
+ loginContent = await ctx.ba.getLoginStatus(content.data.qrcode_key);
226
232
  }
227
233
  catch (e) {
228
234
  this.logger.error(e);
@@ -237,7 +243,7 @@ class ComRegister {
237
243
  return await session.send('二维码已失效,请重新登录');
238
244
  }
239
245
  if (loginContent.data.code === 0) { // 登录成功
240
- const encryptedCookies = ctx.wbi.encrypt(ctx.biliAPI.getCookies());
246
+ const encryptedCookies = ctx.wbi.encrypt(ctx.ba.getCookies());
241
247
  const encryptedRefreshToken = ctx.wbi.encrypt(loginContent.data.refresh_token);
242
248
  await ctx.database.upsert('loginBili', [{
243
249
  id: 1,
@@ -249,13 +255,13 @@ class ComRegister {
249
255
  // 订阅之前的订阅
250
256
  await this.getSubFromDatabase(ctx);
251
257
  // 清除控制台通知
252
- ctx.biliAPI.disposeNotifier();
258
+ ctx.ba.disposeNotifier();
253
259
  // 发送成功登录推送
254
260
  await session.send('登录成功');
255
261
  // bili show
256
262
  await session.execute('bili show');
257
263
  // 开启cookies刷新检测
258
- ctx.biliAPI.enableRefreshCookiesDetect();
264
+ ctx.ba.enableRefreshCookiesDetect();
259
265
  return;
260
266
  }
261
267
  }
@@ -361,7 +367,7 @@ class ComRegister {
361
367
  // 获取用户信息
362
368
  let content;
363
369
  try {
364
- content = await ctx.biliAPI.getUserInfo(mid);
370
+ content = await ctx.ba.getUserInfo(mid);
365
371
  }
366
372
  catch (e) {
367
373
  return 'bili sub getUserInfo() 发生了错误,错误为:' + e.message;
@@ -413,10 +419,19 @@ class ComRegister {
413
419
  return targetArr;
414
420
  };
415
421
  // 定义可用的群组数组
416
- let okGuild;
422
+ let okGuild = [];
417
423
  // 判断是否需要加入的群全部推送
418
424
  if (guildId[0] === 'all') {
419
- okGuild.push('all');
425
+ // 判断是否有群机器人相关Bot
426
+ if (['qq', 'onebot', 'red', 'satori', 'chronocat'].includes(session.event.platform)) {
427
+ okGuild.push('all');
428
+ }
429
+ else {
430
+ // 发送错误提示并返回
431
+ session.send('您尚未配置任何QQ群相关机器人,不能对QQ群进行操作');
432
+ // 直接返回
433
+ return;
434
+ }
420
435
  }
421
436
  else {
422
437
  // 判断是否有群机器人相关Bot
@@ -449,7 +464,7 @@ class ComRegister {
449
464
  }
450
465
  }
451
466
  }
452
- // 将群号用,进行分割
467
+ // 将群号用空格进行分割
453
468
  targetId = okGuild.join(' ');
454
469
  }
455
470
  else { // 没有输入QQ群号
@@ -497,7 +512,7 @@ class ComRegister {
497
512
  // 获取用户信息
498
513
  let userData;
499
514
  try {
500
- const { data } = await ctx.biliAPI.getMasterInfo(sub.uid);
515
+ const { data } = await ctx.ba.getMasterInfo(sub.uid);
501
516
  userData = data;
502
517
  }
503
518
  catch (e) {
@@ -574,7 +589,7 @@ class ComRegister {
574
589
  return session.send('请输入房间号!');
575
590
  let content;
576
591
  try {
577
- content = await ctx.biliAPI.getLiveRoomInfo(roomId);
592
+ content = await ctx.ba.getLiveRoomInfo(roomId);
578
593
  }
579
594
  catch (e) {
580
595
  return 'bili status指令 getLiveRoomInfo() 发生了错误,错误为:' + e.message;
@@ -582,7 +597,7 @@ class ComRegister {
582
597
  const { data } = content;
583
598
  let userData;
584
599
  try {
585
- const { data: userInfo } = await ctx.biliAPI.getMasterInfo(data.uid);
600
+ const { data: userInfo } = await ctx.ba.getMasterInfo(data.uid);
586
601
  userData = userInfo;
587
602
  }
588
603
  catch (e) {
@@ -598,7 +613,7 @@ class ComRegister {
598
613
  }
599
614
  return;
600
615
  }
601
- const { pic, buffer } = await ctx.gimg.generateLiveImg(data, userData, data.live_status !== 1 ?
616
+ const { pic, buffer } = await ctx.gi.generateLiveImg(data, userData, data.live_status !== 1 ?
602
617
  LiveType.NotLiveBroadcast :
603
618
  LiveType.LiveBroadcast);
604
619
  // pic 存在,使用的是render模式
@@ -771,7 +786,7 @@ class ComRegister {
771
786
  // 第一次订阅判断
772
787
  if (firstSubscription) {
773
788
  // 设置第一次的时间点
774
- timePoint = ctx.biliAPI.getTimeOfUTC8();
789
+ timePoint = ctx.ba.getTimeOfUTC8();
775
790
  // 设置第一次为false
776
791
  firstSubscription = false;
777
792
  return;
@@ -779,7 +794,7 @@ class ComRegister {
779
794
  // 获取用户空间动态数据
780
795
  let content;
781
796
  try {
782
- content = await ctx.biliAPI.getUserSpaceDynamic(uid);
797
+ content = await ctx.ba.getUserSpaceDynamic(uid);
783
798
  }
784
799
  catch (e) {
785
800
  return this.logger.error('dynamicDetect getUserSpaceDynamic() 发生了错误,错误为:' + e.message);
@@ -788,23 +803,32 @@ class ComRegister {
788
803
  if (content.code !== 0) {
789
804
  switch (content.code) {
790
805
  case -101: { // 账号未登录
791
- await this.sendPrivateMsg(bot, '账号未登录,请登录后重新订阅动态');
806
+ // 输出日志
807
+ this.logger.error('账号未登录,插件已停止工作,请登录后,输入指令 sys start 启动插件');
808
+ // 发送私聊消息
809
+ await this.sendPrivateMsg(bot, '账号未登录,插件已停止工作,请登录后,输入指令 sys start 启动插件');
810
+ // 停止服务
811
+ await ctx.sm.disposePlugin();
812
+ // 结束循环
792
813
  break;
793
814
  }
794
815
  case -352: { // 风控
816
+ // 输出日志
817
+ this.logger.error('账号被风控,插件已停止工作,请确认风控解除后,输入指令 sys start 启动插件');
795
818
  // 发送私聊消息
796
819
  await this.sendPrivateMsg(bot, '账号被风控,插件已停止工作,请确认风控解除后,输入指令 sys start 启动插件');
797
820
  // 停止服务
798
821
  await ctx.sm.disposePlugin();
799
822
  // 结束循环
800
- return;
823
+ break;
801
824
  }
802
825
  default: { // 未知错误
826
+ // 发送私聊消息
803
827
  await this.sendPrivateMsg(bot, '获取动态信息错误,错误码为:' + content.code + ',错误为:' + content.message); // 未知错误
804
828
  // 取消订阅
805
829
  this.unsubAll(ctx, bot, uid);
806
830
  // 结束循环
807
- return;
831
+ break;
808
832
  }
809
833
  }
810
834
  }
@@ -841,7 +865,7 @@ class ComRegister {
841
865
  // 获取动态推送图片
842
866
  try {
843
867
  // 渲染图片
844
- const { pic: gimgPic, buffer: gimgBuffer } = await ctx.gimg.generateDynamicImg(items[num]);
868
+ const { pic: gimgPic, buffer: gimgBuffer } = await ctx.gi.generateDynamicImg(items[num]);
845
869
  // 赋值
846
870
  pic = gimgPic;
847
871
  buffer = gimgBuffer;
@@ -908,7 +932,7 @@ class ComRegister {
908
932
  for (let i = 0; i < attempts; i++) {
909
933
  try {
910
934
  // 获取直播通知卡片
911
- const { pic: picv, buffer: bufferv } = await ctx.gimg.generateLiveImg(data, uData, liveType);
935
+ const { pic: picv, buffer: bufferv } = await ctx.gi.generateLiveImg(data, uData, liveType);
912
936
  // 赋值
913
937
  pic = picv;
914
938
  buffer = bufferv;
@@ -943,7 +967,7 @@ class ComRegister {
943
967
  for (let i = 0; i < attempts; i++) {
944
968
  try {
945
969
  // 发送请求获取room信息
946
- content = await ctx.biliAPI.getLiveRoomInfo(roomId);
970
+ content = await ctx.ba.getLiveRoomInfo(roomId);
947
971
  // 成功则跳出循环
948
972
  break;
949
973
  }
@@ -964,7 +988,7 @@ class ComRegister {
964
988
  for (let i = 0; i < attempts; i++) {
965
989
  try {
966
990
  // 发送请求获取主播信息
967
- const { data: userInfo } = await ctx.biliAPI.getMasterInfo(data.uid);
991
+ const { data: userInfo } = await ctx.ba.getMasterInfo(data.uid);
968
992
  userData = userInfo;
969
993
  // 成功则跳出循环
970
994
  break;
@@ -1001,7 +1025,7 @@ class ComRegister {
1001
1025
  // 定义下播通知消息
1002
1026
  let liveEndMsg = this.config.customLiveEnd
1003
1027
  .replace('-name', uData.info.uname)
1004
- .replace('-time', await ctx.gimg.getTimeDifference(liveTime));
1028
+ .replace('-time', await ctx.gi.getTimeDifference(liveTime));
1005
1029
  // 获取头像并缩放
1006
1030
  let resizedImage;
1007
1031
  // Jimp无法处理Webp格式,直接跳过
@@ -1034,7 +1058,7 @@ class ComRegister {
1034
1058
  for (let i = 0; i < attempts; i++) {
1035
1059
  try {
1036
1060
  // 获取主播信息
1037
- const { data: userInfo } = await ctx.biliAPI.getMasterInfo(data.uid);
1061
+ const { data: userInfo } = await ctx.ba.getMasterInfo(data.uid);
1038
1062
  userData = userInfo;
1039
1063
  // 成功则跳出循环
1040
1064
  break;
@@ -1051,7 +1075,7 @@ class ComRegister {
1051
1075
  // 定义开播通知语
1052
1076
  let liveStartMsg = this.config.customLiveStart
1053
1077
  .replace('-name', uData.info.uname)
1054
- .replace('-time', await ctx.gimg.getTimeDifference(liveTime))
1078
+ .replace('-time', await ctx.gi.getTimeDifference(liveTime))
1055
1079
  .replace('-link', `https://live.bilibili.com/${data.short_id === 0 ? data.room_id : data.short_id}`);
1056
1080
  // 判断是否需要@全体成员
1057
1081
  if (this.config.liveStartAtAll) {
@@ -1151,7 +1175,7 @@ class ComRegister {
1151
1175
  async checkIfLoginInfoIsLoaded(ctx) {
1152
1176
  return new Promise(resolve => {
1153
1177
  const check = () => {
1154
- if (!ctx.biliAPI.getLoginInfoIsLoaded()) {
1178
+ if (!ctx.ba.getLoginInfoIsLoaded()) {
1155
1179
  ctx.setTimeout(check, 500);
1156
1180
  }
1157
1181
  else {
@@ -1242,7 +1266,7 @@ class ComRegister {
1242
1266
  for (let i = 0; i < attempts; i++) {
1243
1267
  try {
1244
1268
  // 获取用户信息
1245
- content = await ctx.biliAPI.getUserInfo(sub.uid);
1269
+ content = await ctx.ba.getUserInfo(sub.uid);
1246
1270
  // 成功则跳出循环
1247
1271
  break;
1248
1272
  }
@@ -1408,7 +1432,7 @@ class ComRegister {
1408
1432
  async checkIfIsLogin(ctx) {
1409
1433
  if ((await ctx.database.get('loginBili', 1)).length !== 0) { // 数据库中有数据
1410
1434
  // 检查cookie中是否有值
1411
- if (ctx.biliAPI.getCookies() !== '[]') { // 有值说明已登录
1435
+ if (ctx.ba.getCookies() !== '[]') { // 有值说明已登录
1412
1436
  return true;
1413
1437
  }
1414
1438
  }
@@ -1,7 +1,7 @@
1
1
  import { Context, Schema, Service } from "koishi";
2
2
  declare module 'koishi' {
3
3
  interface Context {
4
- gimg: GenerateImg;
4
+ gi: GenerateImg;
5
5
  }
6
6
  }
7
7
  declare class GenerateImg extends Service {
@@ -37,10 +37,10 @@ const ADDITIONAL_TYPE_UP_RCMD = 'ADDITIONAL_TYPE_UP_RCMD'
37
37
  const ADDITIONAL_TYPE_UGC = 'ADDITIONAL_TYPE_UGC' */
38
38
  const ADDITIONAL_TYPE_RESERVE = 'ADDITIONAL_TYPE_RESERVE';
39
39
  class GenerateImg extends koishi_1.Service {
40
- static inject = ['puppeteer', 'biliAPI'];
40
+ static inject = ['puppeteer', 'ba'];
41
41
  giConfig;
42
42
  constructor(ctx, config) {
43
- super(ctx, 'gimg');
43
+ super(ctx, 'gi');
44
44
  this.giConfig = config;
45
45
  }
46
46
  start() {
@@ -1341,7 +1341,7 @@ class GenerateImg extends koishi_1.Service {
1341
1341
  // 获取Unix时间戳(以毫秒为单位)
1342
1342
  const unixTime = date.getTime() / 1000;
1343
1343
  // 获取当前Unix时间戳
1344
- const now = this.ctx.biliAPI.getTimeOfUTC8();
1344
+ const now = this.ctx.ba.getTimeOfUTC8();
1345
1345
  // 计算时间差(以秒为单位)
1346
1346
  const differenceInSeconds = Math.floor(now - unixTime);
1347
1347
  // 获取yyyy:MM:dd HH:mm:ss
package/lib/index.d.ts CHANGED
@@ -35,6 +35,7 @@ export declare const Config: Schema<Config>;
35
35
  declare class ServerManager extends Service {
36
36
  servers: ForkScope[];
37
37
  renderType: number;
38
+ dynamicLoopTime: number;
38
39
  restartCount: number;
39
40
  constructor(ctx: Context);
40
41
  protected start(): void | Promise<void>;
package/lib/index.js CHANGED
@@ -156,6 +156,8 @@ class ServerManager extends koishi_1.Service {
156
156
  servers = [];
157
157
  // 渲染模式
158
158
  renderType;
159
+ // 动态循环时间
160
+ dynamicLoopTime;
159
161
  // 重启次数
160
162
  restartCount = 0;
161
163
  constructor(ctx) {
@@ -197,6 +199,7 @@ class ServerManager extends koishi_1.Service {
197
199
  });
198
200
  }
199
201
  start() {
202
+ // 加载配置
200
203
  // 根据用户设置的渲染模式设置
201
204
  switch (globalConfig.renderType) {
202
205
  case 'render':
@@ -206,6 +209,21 @@ class ServerManager extends koishi_1.Service {
206
209
  this.renderType = 1;
207
210
  break;
208
211
  }
212
+ // 转换为具体时间
213
+ switch (globalConfig.dynamicLoopTime) {
214
+ case '1分钟':
215
+ this.dynamicLoopTime = 60;
216
+ break;
217
+ case '2分钟':
218
+ this.dynamicLoopTime = 120;
219
+ break;
220
+ case '3分钟':
221
+ this.dynamicLoopTime = 180;
222
+ break;
223
+ case '5分钟':
224
+ this.dynamicLoopTime = 300;
225
+ break;
226
+ }
209
227
  // 注册插件
210
228
  this.registerPlugin();
211
229
  }
@@ -215,10 +233,10 @@ class ServerManager extends koishi_1.Service {
215
233
  return false;
216
234
  await new Promise(resolve => {
217
235
  // 注册插件
218
- const biliApi = this.ctx.plugin(biliAPI_1.default, {
236
+ const ba = this.ctx.plugin(biliAPI_1.default, {
219
237
  userAgent: globalConfig.userAgent
220
238
  });
221
- const generateImg = this.ctx.plugin(generateImg_1.default, {
239
+ const gi = this.ctx.plugin(generateImg_1.default, {
222
240
  renderType: this.renderType,
223
241
  filter: globalConfig.filter,
224
242
  removeBorder: globalConfig.removeBorder,
@@ -227,9 +245,24 @@ class ServerManager extends koishi_1.Service {
227
245
  enableLargeFont: globalConfig.enableLargeFont,
228
246
  font: globalConfig.font
229
247
  });
248
+ const wbi = this.ctx.plugin(wbi_1.default, { key: globalConfig.key });
249
+ const cr = this.ctx.plugin(comRegister_1.default, {
250
+ master: globalConfig.master,
251
+ unlockSubLimits: globalConfig.unlockSubLimits,
252
+ liveStartAtAll: globalConfig.liveStartAtAll,
253
+ pushTime: globalConfig.pushTime,
254
+ customLiveStart: globalConfig.customLiveStart,
255
+ customLiveEnd: globalConfig.customLiveEnd,
256
+ dynamicCheckNumber: globalConfig.dynamicCheckNumber,
257
+ dynamicLoopTime: this.dynamicLoopTime,
258
+ dynamicUrl: globalConfig.dynamicUrl,
259
+ filter: globalConfig.filter
260
+ });
230
261
  // 添加服务
231
- this.servers.push(biliApi);
232
- this.servers.push(generateImg);
262
+ this.servers.push(ba);
263
+ this.servers.push(gi);
264
+ this.servers.push(wbi);
265
+ this.servers.push(cr);
233
266
  // 成功
234
267
  resolve('ok');
235
268
  });
@@ -291,40 +324,10 @@ function apply(ctx, config) {
291
324
  content: '过多的订阅可能会导致IP暂时被封禁!'
292
325
  });
293
326
  }
294
- // load config
295
- // 转换为具体时间
296
- let dynamicLoopTime;
297
- switch (config.dynamicLoopTime) {
298
- case '1分钟':
299
- dynamicLoopTime = 60;
300
- break;
301
- case '2分钟':
302
- dynamicLoopTime = 120;
303
- break;
304
- case '3分钟':
305
- dynamicLoopTime = 180;
306
- break;
307
- case '5分钟':
308
- dynamicLoopTime = 300;
309
- break;
310
- }
311
327
  // load database
312
328
  ctx.plugin(Database);
313
- // Regist server
314
- ctx.plugin(wbi_1.default, { key: config.key });
329
+ // Register ServerManager
315
330
  ctx.plugin(ServerManager);
316
- ctx.plugin(comRegister_1.default, {
317
- master: config.master,
318
- unlockSubLimits: config.unlockSubLimits,
319
- liveStartAtAll: config.liveStartAtAll,
320
- pushTime: config.pushTime,
321
- customLiveStart: config.customLiveStart,
322
- customLiveEnd: config.customLiveEnd,
323
- dynamicCheckNumber: config.dynamicCheckNumber,
324
- dynamicLoopTime,
325
- dynamicUrl: config.dynamicUrl,
326
- filter: config.filter
327
- });
328
331
  // 当用户输入“恶魔兔,启动!”时,执行 help 指令
329
332
  ctx.middleware((session, next) => {
330
333
  if (session.content === '恶魔兔,启动!') {
package/lib/wbi.d.ts CHANGED
@@ -9,6 +9,7 @@ declare class Wbi extends Service {
9
9
  mixinKeyEncTab: number[];
10
10
  constructor(ctx: Context, config: Wbi.Config);
11
11
  protected start(): void | Promise<void>;
12
+ protected stop(): void | Promise<void>;
12
13
  getMixinKey: (orig: any) => string;
13
14
  encWbi(params: any, img_key: any, sub_key: any): string;
14
15
  getWbiKeys(): Promise<{
package/lib/wbi.js CHANGED
@@ -19,7 +19,10 @@ class Wbi extends koishi_1.Service {
19
19
  this.wbiConfig = config;
20
20
  }
21
21
  start() {
22
- // this.logger.info('wbi已被注册到Context中')
22
+ this.logger.info('工作中');
23
+ }
24
+ stop() {
25
+ this.logger.info('已停止工作');
23
26
  }
24
27
  // 对 imgKey 和 subKey 进行字符顺序打乱编码
25
28
  getMixinKey = (orig) => this.mixinKeyEncTab.map(n => orig[n]).join('').slice(0, 32);
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": "1.2.12-alpha.1",
4
+ "version": "1.2.12-alpha.3",
5
5
  "contributors": [
6
6
  "Akokko <admin@akokko.com>"
7
7
  ],
package/readme.md CHANGED
@@ -153,6 +153,8 @@
153
153
  - ver 1.2.11-alpha.1 修复报错 `app TypeError: Cannot read properties of undefined (reading 'toString')`,添加更多日志输出
154
154
  - ver 1.2.12-alpha.0 新增 `sys` 类指令,包括子命令:`start`、`stop`、`restart` 分别为插件的启动、停止和重启,需要权限等级5才能使用。现在,账号出现某些问题后,不会再清除订阅信息,而是停止插件,在排除问题后需要使用指令 `sys start` 手动启动插件。修复一个动态推送的bug
155
155
  - ver 1.2.12-alpha.1 删除直播推送时的多余空格
156
+ - ver 1.2.12-alpha.2 尝试修复版本 `1.2.12-alpha.0 账号出现某些问题后,不会再清除订阅信息` 仍然会清除订阅信息的bug
157
+ - ver 1.2.12-alpha.3 尝试修复订阅时使用 `all` 报错的bug
156
158
 
157
159
  ## 交流群
158
160