koishi-plugin-bilibili-notify 1.2.3-rc.3 → 1.2.3-rc.5

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.js CHANGED
@@ -216,8 +216,11 @@ class BiliAPI extends koishi_1.Service {
216
216
  // Get login info from db
217
217
  const { cookies, refresh_token } = await this.getLoginInfoFromDB();
218
218
  // 判断是否有值
219
- if (!cookies || !refresh_token)
219
+ if (!cookies || !refresh_token) {
220
+ // Login info is loaded
221
+ this.loginInfoIsLoaded = true;
220
222
  return;
223
+ }
221
224
  // 定义CSRF Token
222
225
  let csrf;
223
226
  cookies.forEach(cookieData => {
@@ -26,6 +26,7 @@ declare class ComRegister {
26
26
  satoriBot: Bot<Context>;
27
27
  chronocatBot: Bot<Context>;
28
28
  constructor(ctx: Context, config: ComRegister.Config);
29
+ getTheCorrespondingBotBasedOnTheSession(session: Session): Bot<Context, any>;
29
30
  sendPrivateMsg(bot: Bot<Context>, content: string): Promise<void>;
30
31
  sendPrivateMsgAndRebootService(bot: Bot<Context>, ctx: Context, content: string): Promise<void>;
31
32
  dynamicDetect(ctx: Context, bot: Bot<Context>, uid: string, guildId: Array<string>): () => Promise<void>;
@@ -162,6 +162,16 @@ class ComRegister {
162
162
  <img width="10px" height="10px" src="https://koishi.chat/logo.png" />
163
163
  </>
164
164
  )
165
+ })
166
+
167
+ testCom
168
+ .subcommand('.sendmsg', '测试发送消息方法')
169
+ .usage('测试发送消息方法')
170
+ .example('test sendmsg')
171
+ .action(async ({ session }) => {
172
+ // 获得对应bot
173
+ const bot = this.getTheCorrespondingBotBasedOnTheSession(session)
174
+ this.sendMsg(['all'], bot, 'Hello World')
165
175
  }) */
166
176
  const biliCom = ctx.command('bili', 'bili-notify插件相关指令', { permissions: ['authority:3'] });
167
177
  biliCom.subcommand('.login', '登录B站之后才可以进行之后的操作')
@@ -376,9 +386,6 @@ class ComRegister {
376
386
  let targetId;
377
387
  // 判断是否输入了QQ群号
378
388
  if (guildId.length > 0) { // 输入了QQ群号
379
- // 判断是否需要加入的群全部推送
380
- if (guildId[0] === 'ALL' || guildId[0] === 'all')
381
- return ['ALL'];
382
389
  // 定义方法
383
390
  const checkIfGuildHasJoined = async (bot) => {
384
391
  // 获取机器人加入的群组
@@ -401,33 +408,39 @@ class ComRegister {
401
408
  };
402
409
  // 定义可用的群组数组
403
410
  let okGuild;
404
- // 判断是否有群机器人相关Bot
405
- switch (session.event.platform) {
406
- case 'qq': {
407
- okGuild = await checkIfGuildHasJoined(this.qqBot);
408
- break;
409
- }
410
- case 'onebot': {
411
- okGuild = await checkIfGuildHasJoined(this.oneBot);
412
- break;
413
- }
414
- case 'red': {
415
- okGuild = await checkIfGuildHasJoined(this.redBot);
416
- break;
417
- }
418
- case 'satori': {
419
- okGuild = await checkIfGuildHasJoined(this.satoriBot);
420
- break;
421
- }
422
- case 'chronocat': {
423
- okGuild = await checkIfGuildHasJoined(this.chronocatBot);
424
- break;
425
- }
426
- default: {
427
- // 发送错误提示并返回
428
- session.send('您尚未配置任何QQ群相关机器人,不能对QQ群进行操作');
429
- // 直接返回
430
- return;
411
+ // 判断是否需要加入的群全部推送
412
+ if (guildId[0] === 'all') {
413
+ okGuild.push('all');
414
+ }
415
+ else {
416
+ // 判断是否有群机器人相关Bot
417
+ switch (session.event.platform) {
418
+ case 'qq': {
419
+ okGuild = await checkIfGuildHasJoined(this.qqBot);
420
+ break;
421
+ }
422
+ case 'onebot': {
423
+ okGuild = await checkIfGuildHasJoined(this.oneBot);
424
+ break;
425
+ }
426
+ case 'red': {
427
+ okGuild = await checkIfGuildHasJoined(this.redBot);
428
+ break;
429
+ }
430
+ case 'satori': {
431
+ okGuild = await checkIfGuildHasJoined(this.satoriBot);
432
+ break;
433
+ }
434
+ case 'chronocat': {
435
+ okGuild = await checkIfGuildHasJoined(this.chronocatBot);
436
+ break;
437
+ }
438
+ default: {
439
+ // 发送错误提示并返回
440
+ session.send('您尚未配置任何QQ群相关机器人,不能对QQ群进行操作');
441
+ // 直接返回
442
+ return;
443
+ }
431
444
  }
432
445
  }
433
446
  // 将群号用,进行分割
@@ -516,35 +529,8 @@ class ComRegister {
516
529
  // 不存在则直接返回
517
530
  if (index === -1)
518
531
  return '请勿直接调用该指令';
519
- // 获取对应Bot
520
- let bot;
521
- switch (session.event.platform) {
522
- case 'qq':
523
- bot = this.qqBot;
524
- break;
525
- case 'qqguild':
526
- bot = this.qqguildBot;
527
- break;
528
- case 'onebot':
529
- bot = this.oneBot;
530
- break;
531
- case 'red':
532
- bot = this.redBot;
533
- break;
534
- case 'telegram':
535
- bot = this.telegramBot;
536
- break;
537
- case 'satori':
538
- bot = this.satoriBot;
539
- break;
540
- case 'chronocat':
541
- bot = this.chronocatBot;
542
- break;
543
- default: {
544
- this.logger.warn(`${uid}非法调用 dynamic 指令,不支持该平台`);
545
- return '非法调用';
546
- }
547
- }
532
+ // 获得对应bot
533
+ const bot = this.getTheCorrespondingBotBasedOnTheSession(session);
548
534
  // 开始循环检测
549
535
  const dispose = ctx.setInterval(this.dynamicDetect(ctx, bot, uid, guildId), config.dynamicLoopTime * 1000);
550
536
  // 将销毁函数保存到订阅管理对象
@@ -565,35 +551,8 @@ class ComRegister {
565
551
  const index = this.subManager.findIndex(sub => sub.roomId === roomId);
566
552
  if (index === -1)
567
553
  return '请勿直接调用该指令';
568
- // 获取对应Bot
569
- let bot;
570
- switch (session.event.platform) {
571
- case 'qq':
572
- bot = this.qqBot;
573
- break;
574
- case 'qqguild':
575
- bot = this.qqguildBot;
576
- break;
577
- case 'onebot':
578
- bot = this.oneBot;
579
- break;
580
- case 'red':
581
- bot = this.redBot;
582
- break;
583
- case 'telegram':
584
- bot = this.telegramBot;
585
- break;
586
- case 'satori':
587
- bot = this.satoriBot;
588
- break;
589
- case 'chronocat':
590
- bot = this.chronocatBot;
591
- break;
592
- default: {
593
- this.logger.warn(`${roomId}非法调用 dynamic 指令,不支持该平台`);
594
- return `${roomId}非法调用 dynamic 指令`;
595
- }
596
- }
554
+ // 获得对应bot
555
+ const bot = this.getTheCorrespondingBotBasedOnTheSession(session);
597
556
  // 开始循环检测
598
557
  const dispose = ctx.setInterval(this.liveDetect(ctx, bot, roomId, guildId), config.liveLoopTime * 1000);
599
558
  // 保存销毁函数
@@ -660,35 +619,11 @@ class ComRegister {
660
619
  .usage('向主人账号发送一条测试消息')
661
620
  .example('bili private 向主人账号发送一条测试消息')
662
621
  .action(async ({ session }) => {
663
- // 获取对应Bot
664
- let bot;
665
- switch (session.event.platform) {
666
- case 'qq':
667
- bot = this.qqBot;
668
- break;
669
- case 'qqguild':
670
- bot = this.qqguildBot;
671
- break;
672
- case 'onebot':
673
- bot = this.oneBot;
674
- break;
675
- case 'red':
676
- bot = this.redBot;
677
- break;
678
- case 'telegram':
679
- bot = this.telegramBot;
680
- break;
681
- case 'satori':
682
- bot = this.satoriBot;
683
- break;
684
- case 'chronocat':
685
- bot = this.chronocatBot;
686
- break;
687
- default: {
688
- return `暂不支持该平台`;
689
- }
690
- }
622
+ // 获得对应bot
623
+ const bot = this.getTheCorrespondingBotBasedOnTheSession(session);
624
+ // 发送消息
691
625
  await this.sendPrivateMsg(bot, 'Hello World');
626
+ // 发送提示
692
627
  await session.send('已发送消息,如未收到则说明您的机器人不支持发送私聊消息或您的信息填写有误');
693
628
  });
694
629
  biliCom
@@ -698,34 +633,8 @@ class ComRegister {
698
633
  .action(async ({ session }) => {
699
634
  // 发送提示消息
700
635
  await session.send('测试biliAPI等服务自动重启功能');
701
- // 获取对应Bot
702
- let bot;
703
- switch (session.event.platform) {
704
- case 'qq':
705
- bot = this.qqBot;
706
- break;
707
- case 'qqguild':
708
- bot = this.qqguildBot;
709
- break;
710
- case 'onebot':
711
- bot = this.oneBot;
712
- break;
713
- case 'red':
714
- bot = this.redBot;
715
- break;
716
- case 'telegram':
717
- bot = this.telegramBot;
718
- break;
719
- case 'satori':
720
- bot = this.satoriBot;
721
- break;
722
- case 'chronocat':
723
- bot = this.chronocatBot;
724
- break;
725
- default: {
726
- return `暂不支持该平台`;
727
- }
728
- }
636
+ // 获得对应bot
637
+ const bot = this.getTheCorrespondingBotBasedOnTheSession(session);
729
638
  // 发送提示消息,重启服务
730
639
  await this.sendPrivateMsgAndRebootService(bot, ctx, '测试biliAPI等服务自动重启功能');
731
640
  });
@@ -734,35 +643,11 @@ class ComRegister {
734
643
  .usage('测试给机器人加入的所有群发送消息')
735
644
  .example('bili sendall 测试给机器人加入的所有群发送消息')
736
645
  .action(async ({ session }) => {
737
- // 获取对应Bot
738
- let bot;
739
- switch (session.event.platform) {
740
- case 'qq':
741
- bot = this.qqBot;
742
- break;
743
- case 'qqguild':
744
- bot = this.qqguildBot;
745
- break;
746
- case 'onebot':
747
- bot = this.oneBot;
748
- break;
749
- case 'red':
750
- bot = this.redBot;
751
- break;
752
- case 'telegram':
753
- bot = this.telegramBot;
754
- break;
755
- case 'satori':
756
- bot = this.satoriBot;
757
- break;
758
- case 'chronocat':
759
- bot = this.chronocatBot;
760
- break;
761
- default: {
762
- return `暂不支持该平台`;
763
- }
764
- }
765
- await this.sendMsg(['ALL'], bot, 'Hello World');
646
+ // 获得对应bot
647
+ const bot = this.getTheCorrespondingBotBasedOnTheSession(session);
648
+ // 发送消息
649
+ await this.sendMsg(['all'], bot, 'Hello World');
650
+ // 发送提示
766
651
  await session.send('已向机器人加入的所有群发送了消息');
767
652
  });
768
653
  biliCom
@@ -770,36 +655,45 @@ class ComRegister {
770
655
  .usage('获取当前机器人加入的所有群聊')
771
656
  .example('bili list 获取当前机器人加入的所有群聊')
772
657
  .action(async ({ session }) => {
773
- let bot;
774
- switch (session.event.platform) {
775
- case 'qq':
776
- bot = this.qqBot;
777
- break;
778
- case 'qqguild':
779
- bot = this.qqguildBot;
780
- break;
781
- case 'onebot':
782
- bot = this.oneBot;
783
- break;
784
- case 'red':
785
- bot = this.redBot;
786
- break;
787
- case 'telegram':
788
- bot = this.telegramBot;
789
- break;
790
- case 'satori':
791
- bot = this.satoriBot;
792
- break;
793
- case 'chronocat':
794
- bot = this.chronocatBot;
795
- break;
796
- default: {
797
- return `暂不支持该平台`;
798
- }
799
- }
800
- (await bot.getGuildList()).data.map(item => this.logger.info(`已加入${item.id}`));
658
+ // 获取对应Bot
659
+ const bot = this.getTheCorrespondingBotBasedOnTheSession(session);
660
+ // 获取群列表
661
+ const guildList = (await bot.getGuildList()).data;
662
+ // 遍历群列表
663
+ guildList.map(item => this.logger.info(`已加入${item.id}`));
801
664
  });
802
665
  }
666
+ getTheCorrespondingBotBasedOnTheSession(session) {
667
+ // 获取对应Bot
668
+ let bot;
669
+ switch (session.event.platform) {
670
+ case 'qq':
671
+ bot = this.qqBot;
672
+ break;
673
+ case 'qqguild':
674
+ bot = this.qqguildBot;
675
+ break;
676
+ case 'onebot':
677
+ bot = this.oneBot;
678
+ break;
679
+ case 'red':
680
+ bot = this.redBot;
681
+ break;
682
+ case 'telegram':
683
+ bot = this.telegramBot;
684
+ break;
685
+ case 'satori':
686
+ bot = this.satoriBot;
687
+ break;
688
+ case 'chronocat':
689
+ bot = this.chronocatBot;
690
+ break;
691
+ default: {
692
+ session.send('暂不支持该平台!');
693
+ }
694
+ }
695
+ return bot;
696
+ }
803
697
  async sendPrivateMsg(bot, content) {
804
698
  if (this.config.master.enable) {
805
699
  if (this.config.master.masterAccountGuildId) {
@@ -933,7 +827,7 @@ class ComRegister {
933
827
  // 定义需要发送的数组
934
828
  let sendArr = [];
935
829
  // 判断是否需要推送所有机器人加入的群
936
- if (targets[0] === 'ALL') {
830
+ if (targets[0] === 'all') {
937
831
  // 获取所有guild
938
832
  for (let guild of (await bot.getGuildList()).data) {
939
833
  sendArr.push(guild.id);
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.3-rc.3",
4
+ "version": "1.2.3-rc.5",
5
5
  "contributors": [
6
6
  "Akokko <admin@akokko.com>"
7
7
  ],
package/readme.md CHANGED
@@ -36,7 +36,7 @@
36
36
  - 使用指令 `bili sub <uid> [Q群号]` 订阅需要订阅的UP主
37
37
  - 参数说明:
38
38
  - `uid` 为必填参数,为 `up主` 的 `uid`
39
- - `Q群号` 为可选参数,可以添加多个,如果Q群号为 `ALL` 或 `all` 则会向机器人加入的所有群聊推送
39
+ - `Q群号` 为可选参数,可以添加多个,如果Q群号为 `all` 则会向机器人加入的所有群聊推送
40
40
  - 选项说明:`bili sub <uid>` 有两个选项:-l 和 -d
41
41
  - `-l` 为订阅UP主直播间,包括直播开播通知,定时推送直播内容,下播通知
42
42
  - `-d` 为订阅UP主动态推送,目前实现推送的动态类型有:普通图文动态,转发动态,直播预约动态
@@ -127,7 +127,9 @@
127
127
  - ver 1.2.3-rc.0 现已支持向机器人加入的所有群发送推送消息(仅支持Q群,实验性),修复预约动态无法正常推送的bug
128
128
  - ver 1.2.3-rc.1 修复 `1.2.3-rc.0` 出现的重复推送bug
129
129
  - ver 1.2.3-rc.2 bug测试版本,请跳过
130
- - ver 1.2.3-rc.3 修复推送所有群失败的bug
130
+ - ver 1.2.3-rc.3 bug测试版本,请跳过
131
+ - ver 1.2.3-rc.4 bug测试版本,请跳过
132
+ - ver 1.2.3-rc.5 修复了第一次使用插件时,扫码登录后没有任何反应,并且仍提示没有登录的bug
131
133
 
132
134
  ## 交流群
133
135