koishi-plugin-bilibili-notify 1.0.4-rc.1 → 1.0.5-alpha.0
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 +0 -1
- package/lib/comRegister.js +65 -7
- package/lib/generateImg.js +2 -1
- package/package.json +1 -1
- package/readme.md +1 -0
package/lib/biliAPI.js
CHANGED
package/lib/comRegister.js
CHANGED
|
@@ -574,8 +574,20 @@ class ComRegister {
|
|
|
574
574
|
let attempts = 3;
|
|
575
575
|
for (let i = 0; i < attempts; i++) {
|
|
576
576
|
try {
|
|
577
|
+
// 定义变量
|
|
578
|
+
let pic;
|
|
579
|
+
let buffer;
|
|
577
580
|
// 获取动态推送图片
|
|
578
|
-
|
|
581
|
+
try {
|
|
582
|
+
const { pic: gimgPic, buffer: gimgBuffer } = await ctx.gimg.generateDynamicImg(items[num]);
|
|
583
|
+
pic = gimgPic;
|
|
584
|
+
buffer = gimgBuffer;
|
|
585
|
+
}
|
|
586
|
+
catch (e) {
|
|
587
|
+
// 直播开播动态,不做处理
|
|
588
|
+
if (e.message === '直播开播动态,不做处理')
|
|
589
|
+
break;
|
|
590
|
+
}
|
|
579
591
|
// 如果pic存在,则直接返回pic
|
|
580
592
|
if (pic)
|
|
581
593
|
return await bot.sendMessage(guildId, pic);
|
|
@@ -630,12 +642,10 @@ class ComRegister {
|
|
|
630
642
|
}
|
|
631
643
|
return async () => {
|
|
632
644
|
try {
|
|
633
|
-
// console.log('start before' + ' ' + flag);
|
|
634
645
|
// 如果flag为false则说明前面的代码还未执行完,则直接返回
|
|
635
646
|
if (!flag)
|
|
636
647
|
return;
|
|
637
648
|
flag && (flag = false);
|
|
638
|
-
// console.log('start after' + ' ' + flag);
|
|
639
649
|
// 发送请求检测直播状态
|
|
640
650
|
let content;
|
|
641
651
|
try {
|
|
@@ -733,10 +743,8 @@ class ComRegister {
|
|
|
733
743
|
}
|
|
734
744
|
}
|
|
735
745
|
finally {
|
|
736
|
-
// console.log('end before' + ' ' + flag);
|
|
737
746
|
// 执行完方法体不论如何都把flag设置为true
|
|
738
747
|
flag = true;
|
|
739
|
-
// console.log('end after' + ' ' + flag);
|
|
740
748
|
}
|
|
741
749
|
};
|
|
742
750
|
}
|
|
@@ -785,17 +793,67 @@ class ComRegister {
|
|
|
785
793
|
this.num = subData.length;
|
|
786
794
|
// 如果订阅数量超过三个则被非法修改数据库
|
|
787
795
|
// 向管理员发送重新订阅通知
|
|
788
|
-
if (this.num > 3)
|
|
796
|
+
if (this.num > 3) {
|
|
797
|
+
ctx.notifier.create({
|
|
798
|
+
type: 'danger',
|
|
799
|
+
content: '数据库被非法修改,请你删除bilibili表的所有内容后重启插件'
|
|
800
|
+
});
|
|
789
801
|
return;
|
|
802
|
+
}
|
|
790
803
|
// 定义Bot
|
|
791
804
|
let bot;
|
|
792
805
|
// 循环遍历
|
|
793
|
-
subData.forEach(sub => {
|
|
806
|
+
subData.forEach(async (sub) => {
|
|
794
807
|
// 拿到对应bot
|
|
795
808
|
switch (sub.platform) {
|
|
796
809
|
case 'qq': bot = this.qqBot;
|
|
797
810
|
case 'qqguild': bot = this.qqguildBot;
|
|
798
811
|
}
|
|
812
|
+
// 判断数据库是否被篡改
|
|
813
|
+
// 获取用户信息
|
|
814
|
+
let content;
|
|
815
|
+
let attempts = 3;
|
|
816
|
+
for (let i = 0; i < attempts; i++) {
|
|
817
|
+
try {
|
|
818
|
+
content = await ctx.biliAPI.getUserInfo(sub.uid);
|
|
819
|
+
break;
|
|
820
|
+
}
|
|
821
|
+
catch (e) {
|
|
822
|
+
this.logger.error('getSubFromDatabase() getUserInfo() 本次网络请求失败');
|
|
823
|
+
if (i === attempts - 1) { // 已尝试三次
|
|
824
|
+
return bot.sendMessage(sub.targetId, '你的网络可能出现了某些问题,请检查后重启插件');
|
|
825
|
+
}
|
|
826
|
+
}
|
|
827
|
+
}
|
|
828
|
+
// 获取data
|
|
829
|
+
const { data } = content;
|
|
830
|
+
// 定义函数删除数据和发送提示
|
|
831
|
+
const deleteSub = async () => {
|
|
832
|
+
// 从数据库删除该条数据
|
|
833
|
+
await ctx.database.remove('bilibili', { id: sub.id });
|
|
834
|
+
// 给用户发送提示
|
|
835
|
+
bot.sendMessage(sub.targetId, `UID:${sub.uid} 数据库内容被篡改,已取消对该UP主的订阅`);
|
|
836
|
+
};
|
|
837
|
+
// 判断是否有其他问题
|
|
838
|
+
if (content.code !== 0) {
|
|
839
|
+
switch (content.code) {
|
|
840
|
+
case -352:
|
|
841
|
+
case -403:
|
|
842
|
+
bot.sendMessage(sub.targetId, '你的登录信息已过期,请重新登录Bilibili');
|
|
843
|
+
return;
|
|
844
|
+
case -400:
|
|
845
|
+
case -404:
|
|
846
|
+
default:
|
|
847
|
+
deleteSub();
|
|
848
|
+
return;
|
|
849
|
+
}
|
|
850
|
+
}
|
|
851
|
+
// 检测房间号是否被篡改
|
|
852
|
+
if (sub.live && (!data.live_room || data.live_room.roomid.toString() !== sub.room_id)) {
|
|
853
|
+
// 房间号被篡改,删除该订阅
|
|
854
|
+
deleteSub();
|
|
855
|
+
return;
|
|
856
|
+
}
|
|
799
857
|
// 构建订阅对象
|
|
800
858
|
let subManagerItem = {
|
|
801
859
|
id: sub.id,
|
package/lib/generateImg.js
CHANGED
|
@@ -481,7 +481,7 @@ class GenerateImg extends koishi_1.Service {
|
|
|
481
481
|
case DYNAMIC_TYPE_UGC_SEASON: return [`${upName}更新了合集,我暂时无法渲染,请自行查看`, link];
|
|
482
482
|
case DYNAMIC_TYPE_NONE: return [`${upName}发布了一条无效动态`, link];
|
|
483
483
|
// 直播开播,不做处理
|
|
484
|
-
case DYNAMIC_TYPE_LIVE_RCMD:
|
|
484
|
+
case DYNAMIC_TYPE_LIVE_RCMD: throw new Error('直播开播动态,不做处理');
|
|
485
485
|
case DYNAMIC_TYPE_SUBSCRIPTION_NEW:
|
|
486
486
|
case DYNAMIC_TYPE_BANNER:
|
|
487
487
|
case DYNAMIC_TYPE_SUBSCRIPTION:
|
|
@@ -494,6 +494,7 @@ class GenerateImg extends koishi_1.Service {
|
|
|
494
494
|
}
|
|
495
495
|
return [main, link, forwardInfo];
|
|
496
496
|
}
|
|
497
|
+
// 获取动态主要内容
|
|
497
498
|
const [main, link] = await getDynamicMajor(data, false);
|
|
498
499
|
// 加载字体
|
|
499
500
|
const fontURL = (0, url_1.pathToFileURL)((0, path_1.resolve)(__dirname, './HYZhengYuan-55W.ttf'));
|
package/package.json
CHANGED