koishi-plugin-bilibili-notify 1.2.3-rc.2 → 1.2.3-rc.4

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.
@@ -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,37 +643,56 @@ 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
  });
653
+ biliCom
654
+ .subcommand('.list', '获取机器人加入的所有群组', { hidden: true })
655
+ .usage('获取当前机器人加入的所有群聊')
656
+ .example('bili list 获取当前机器人加入的所有群聊')
657
+ .action(async ({ session }) => {
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}`));
664
+ });
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;
768
696
  }
769
697
  async sendPrivateMsg(bot, content) {
770
698
  if (this.config.master.enable) {
@@ -899,10 +827,10 @@ class ComRegister {
899
827
  // 定义需要发送的数组
900
828
  let sendArr = [];
901
829
  // 判断是否需要推送所有机器人加入的群
902
- if (targets[0] === 'ALL') {
830
+ if (targets[0] === 'all') {
903
831
  // 获取所有guild
904
- for (let guild in (await bot.getGuildList()).data) {
905
- sendArr.push(guild);
832
+ for (let guild of (await bot.getGuildList()).data) {
833
+ sendArr.push(guild.id);
906
834
  }
907
835
  }
908
836
  else {
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.2",
4
+ "version": "1.2.3-rc.4",
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主动态推送,目前实现推送的动态类型有:普通图文动态,转发动态,直播预约动态
@@ -126,7 +126,9 @@
126
126
  - ver 1.2.3-beta.2 功能测试版本,请跳过该版本
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
- - ver 1.2.3-rc.2 修复推送所有群失败的bug
129
+ - ver 1.2.3-rc.2 bug测试版本,请跳过
130
+ - ver 1.2.3-rc.3 bug测试版本,请跳过
131
+ - ver 1.2.3-rc.4 bug测试版本,请跳过
130
132
 
131
133
  ## 交流群
132
134