koishi-plugin-bilibili-notify 1.2.0 → 1.2.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.
@@ -23,6 +23,7 @@ declare class ComRegister {
23
23
  oneBot: Bot<Context>;
24
24
  redBot: Bot<Context>;
25
25
  telegramBot: Bot<Context>;
26
+ satoriBot: Bot<Context>;
26
27
  constructor(ctx: Context, config: ComRegister.Config);
27
28
  dynamicDetect(ctx: Context, bot: Bot<Context>, uid: string, guildId: Array<string>): () => Promise<void>;
28
29
  sendMsg(targets: Array<string>, bot: Bot<Context>, content: any): Promise<void>;
@@ -31,6 +31,8 @@ class ComRegister {
31
31
  redBot;
32
32
  // Telegram机器人
33
33
  telegramBot;
34
+ // Satori机器人
35
+ satoriBot;
34
36
  constructor(ctx, config) {
35
37
  this.logger = ctx.logger('commandRegister');
36
38
  this.config = config;
@@ -52,6 +54,9 @@ class ComRegister {
52
54
  case 'telegram':
53
55
  this.telegramBot = bot;
54
56
  break;
57
+ case 'satori':
58
+ this.satoriBot = bot;
59
+ break;
55
60
  }
56
61
  });
57
62
  // 从数据库获取订阅
@@ -305,6 +310,7 @@ class ComRegister {
305
310
  case 'red':
306
311
  case 'onebot':
307
312
  case 'telegram':
313
+ case 'satori':
308
314
  case 'qq':
309
315
  case 'qqguild': break;
310
316
  default: return '暂不支持该平台';
@@ -394,6 +400,10 @@ class ComRegister {
394
400
  okGuild = await checkIfGuildHasJoined(this.redBot);
395
401
  break;
396
402
  }
403
+ case 'satori': {
404
+ okGuild = await checkIfGuildHasJoined(this.satoriBot);
405
+ break;
406
+ }
397
407
  default: {
398
408
  // 发送错误提示并返回
399
409
  session.send('您尚未配置任何QQ群相关机器人,不能对QQ群进行操作');
@@ -504,6 +514,9 @@ class ComRegister {
504
514
  case 'telegram':
505
515
  bot = this.telegramBot;
506
516
  break;
517
+ case 'satori':
518
+ bot = this.satoriBot;
519
+ break;
507
520
  default: {
508
521
  this.logger.warn(`${uid}非法调用 dynamic 指令,不支持该平台`);
509
522
  return '非法调用';
@@ -547,6 +560,9 @@ class ComRegister {
547
560
  case 'telegram':
548
561
  bot = this.telegramBot;
549
562
  break;
563
+ case 'satori':
564
+ bot = this.satoriBot;
565
+ break;
550
566
  default: {
551
567
  this.logger.warn(`${roomId}非法调用 dynamic 指令,不支持该平台`);
552
568
  return `${roomId}非法调用 dynamic 指令`;
@@ -951,14 +967,19 @@ class ComRegister {
951
967
  this.subNotifier = ctx.notifier.create(table);
952
968
  }
953
969
  async getSubFromDatabase(ctx) {
970
+ this.logger.info('开始执行数据库读取操作');
954
971
  // 如果未登录,则直接返回
955
972
  if (!(await this.checkIfIsLogin(ctx)))
956
973
  return;
974
+ this.logger.info('已登录账号');
957
975
  // 已存在订阅管理对象,不再进行订阅操作
958
976
  if (this.subManager.length !== 0)
959
977
  return;
978
+ this.logger.info('不存在订阅管理对象');
960
979
  // 从数据库中获取数据
961
980
  const subData = await ctx.database.get('bilibili', { id: { $gt: 0 } });
981
+ this.logger.info('已从数据库获取到数据,数据为:');
982
+ this.logger.info(subData);
962
983
  // 设定订阅数量
963
984
  this.num = subData.length;
964
985
  // 如果订阅数量超过三个则数据库被非法修改
@@ -978,6 +999,8 @@ class ComRegister {
978
999
  if (!sub.dynamic && !sub.live) { // 存在未订阅任何项目的数据
979
1000
  // 删除该条数据
980
1001
  ctx.database.remove('bilibili', { id: sub.id });
1002
+ // log
1003
+ this.logger.warn(`UID:${sub.uid} 该条数据没有任何订阅数据,自动取消订阅`);
981
1004
  // 跳过下面的步骤
982
1005
  continue;
983
1006
  }
@@ -998,9 +1021,14 @@ class ComRegister {
998
1021
  case 'telegram':
999
1022
  bot = this.telegramBot;
1000
1023
  break;
1024
+ case 'satori':
1025
+ bot = this.satoriBot;
1026
+ break;
1001
1027
  default: {
1002
1028
  // 本条数据被篡改,删除该条订阅
1003
1029
  ctx.database.remove('bilibili', { id: sub.id });
1030
+ // 不支持的协议
1031
+ this.logger.info(`UID:${sub.uid} 出现不支持的协议,该条数据被篡改,自动取消订阅`);
1004
1032
  // 继续下个循环
1005
1033
  continue;
1006
1034
  }
@@ -1013,7 +1041,10 @@ class ComRegister {
1013
1041
  let attempts = 3;
1014
1042
  for (let i = 0; i < attempts; i++) {
1015
1043
  try {
1044
+ // 获取用户信息
1016
1045
  content = await ctx.biliAPI.getUserInfo(sub.uid);
1046
+ // log
1047
+ this.logger.info(`UID:${sub.uid} 获取到用户信息`);
1017
1048
  // 成功则跳出循环
1018
1049
  break;
1019
1050
  }
@@ -1043,17 +1074,24 @@ class ComRegister {
1043
1074
  }
1044
1075
  case -400:
1045
1076
  case -404:
1046
- default:
1077
+ default: {
1047
1078
  await deleteSub();
1079
+ // log
1080
+ this.logger.info(`UID:${sub.uid} 数据出现问题,自动取消订阅`);
1048
1081
  return;
1082
+ }
1049
1083
  }
1050
1084
  }
1051
1085
  // 检测房间号是否被篡改
1052
1086
  if (sub.live && (!data.live_room || data.live_room.roomid.toString() !== sub.room_id)) {
1053
1087
  // 房间号被篡改,删除该订阅
1054
1088
  await deleteSub();
1089
+ // log
1090
+ this.logger.info(`UID:${sub.uid} 房间号被篡改,自动取消订阅`);
1055
1091
  return;
1056
1092
  }
1093
+ // log
1094
+ this.logger.info(`UID:${sub.uid} 开始构建订阅对象`);
1057
1095
  // 构建订阅对象
1058
1096
  let subManagerItem = {
1059
1097
  id: sub.id,
@@ -1066,24 +1104,34 @@ class ComRegister {
1066
1104
  liveDispose: null,
1067
1105
  dynamicDispose: null
1068
1106
  };
1107
+ // log
1108
+ this.logger.info(`UID:${sub.uid} 订阅对象构建成功,开始进行订阅操作`);
1069
1109
  // 判断需要订阅的服务
1070
1110
  if (sub.dynamic) { // 需要订阅动态
1071
1111
  // 开始循环检测
1072
1112
  const dispose = ctx.setInterval(this.dynamicDetect(ctx, bot, sub.uid, targetArr), this.config.dynamicLoopTime * 1000);
1073
1113
  // 保存销毁函数
1074
1114
  subManagerItem.dynamicDispose = dispose;
1115
+ // log
1116
+ this.logger.info(`UID:${sub.uid} 成功订阅动态`);
1075
1117
  }
1076
- if (sub.live) { // 需要订阅动态
1118
+ if (sub.live) { // 需要订阅直播
1077
1119
  // 开始循环检测
1078
1120
  const dispose = ctx.setInterval(this.liveDetect(ctx, bot, sub.room_id, targetArr), this.config.liveLoopTime * 1000);
1079
1121
  // 保存销毁函数
1080
1122
  subManagerItem.liveDispose = dispose;
1123
+ // log
1124
+ this.logger.info(`UID:${sub.uid} 成功订阅直播`);
1081
1125
  }
1082
1126
  // 保存新订阅对象
1083
1127
  this.subManager.push(subManagerItem);
1128
+ // log
1129
+ this.logger.info(`UID:${sub.uid} 成功保存订阅对象`);
1084
1130
  }
1085
1131
  // 在控制台中显示订阅对象
1086
1132
  this.updateSubNotifier(ctx);
1133
+ // log
1134
+ this.logger.info(`数据库读取操作已完成`);
1087
1135
  }
1088
1136
  unsubSingle(ctx, id /* UID或RoomId */, type /* 0取消Live订阅,1取消Dynamic订阅 */) {
1089
1137
  let index;
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.0",
4
+ "version": "1.2.1",
5
5
  "contributors": [
6
6
  "Akokko <admin@akokko.com>"
7
7
  ],
package/readme.md CHANGED
@@ -114,6 +114,7 @@
114
114
  - ver 1.2.0-rc.4 修复了订阅指令的一个bug
115
115
  - ver 1.2.0-rc.5 屏蔽动态设置新增是否发送动态被屏蔽消息的选项
116
116
  - ver 1.2.0 添加屏蔽转发动态功能,添加发送动态卡片时附带文本信息和动态链接功能,支持订阅哔哩哔哩番剧出差
117
+ - ver 1.2.1 现已支持Satori平台(实验性)
117
118
 
118
119
  ## 交流群
119
120
  801338523 使用问题或bug都可以在群里提出