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 +4 -1
- package/lib/comRegister.d.ts +1 -0
- package/lib/comRegister.js +96 -202
- package/package.json +1 -1
- package/readme.md +4 -2
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 => {
|
package/lib/comRegister.d.ts
CHANGED
|
@@ -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>;
|
package/lib/comRegister.js
CHANGED
|
@@ -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
|
-
//
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
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
|
-
//
|
|
520
|
-
|
|
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
|
-
//
|
|
569
|
-
|
|
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
|
-
//
|
|
664
|
-
|
|
665
|
-
|
|
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
|
-
//
|
|
702
|
-
|
|
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
|
-
//
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
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
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
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] === '
|
|
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
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群号为 `
|
|
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
|
|
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
|
|