koishi-plugin-bilibili-notify 3.6.1 → 3.6.3
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/dist/index.js +1 -1
- package/lib/index.cjs +146 -144
- package/lib/index.d.cts +1 -1
- package/lib/index.d.mts +1 -1
- package/lib/index.mjs +146 -144
- package/package.json +7 -7
package/lib/index.cjs
CHANGED
|
@@ -478,8 +478,8 @@ var ComRegister = class ComRegister {
|
|
|
478
478
|
return this.subShow();
|
|
479
479
|
});
|
|
480
480
|
biliCom.subcommand(".private", "向主人账号发送一条测试消息", { hidden: true }).usage("向主人账号发送一条测试消息").example("bili private 向主人账号发送一条测试消息").action(async ({ session }) => {
|
|
481
|
-
await this.sendPrivateMsg("主人~女仆向您问好啦!Ciallo~(∠・ω< )⌒★乖乖打招呼呀
|
|
482
|
-
await session.send("主人~女仆已经发送消息啦~如果主人没收到,可能是机器人不支持发送私聊消息,或者主人填写的信息有误哦
|
|
481
|
+
await this.sendPrivateMsg("主人~女仆向您问好啦!Ciallo~(∠・ω< )⌒★乖乖打招呼呀");
|
|
482
|
+
await session.send("主人~女仆已经发送消息啦~如果主人没收到,可能是机器人不支持发送私聊消息,或者主人填写的信息有误哦");
|
|
483
483
|
});
|
|
484
484
|
biliCom.subcommand(".ll").usage("展示当前正在直播的订阅对象").example("bili ll").action(async () => {
|
|
485
485
|
const { data: { live_users } } = await ctx["bilibili-notify-api"].getTheUserWhoIsLiveStreaming();
|
|
@@ -505,11 +505,11 @@ var ComRegister = class ComRegister {
|
|
|
505
505
|
const i = index && index - 1 || 0;
|
|
506
506
|
const content = await this.ctx["bilibili-notify-api"].getUserSpaceDynamic(uid);
|
|
507
507
|
if (!content || !content.data) {
|
|
508
|
-
this.logger.error("
|
|
508
|
+
this.logger.error("主人呜呜,女仆获取动态内容失败啦~请主人帮女仆看看呀!");
|
|
509
509
|
return;
|
|
510
510
|
}
|
|
511
511
|
if (content.code !== 0) {
|
|
512
|
-
this.logger.error(
|
|
512
|
+
this.logger.error(`主人呜呜,女仆获取动态内容失败啦~请主人帮女仆看看呀!错误码: ${content.code}`);
|
|
513
513
|
return;
|
|
514
514
|
}
|
|
515
515
|
const item = content.data.items[i];
|
|
@@ -517,22 +517,22 @@ var ComRegister = class ComRegister {
|
|
|
517
517
|
return await this.ctx["bilibili-notify-generate-img"].generateDynamicImg(item);
|
|
518
518
|
}, 1).catch(async (e) => {
|
|
519
519
|
if (e.message === "直播开播动态,不做处理") {
|
|
520
|
-
await session.send("主人~女仆发现直播开播动态啦,但女仆不处理哦
|
|
520
|
+
await session.send("主人~女仆发现直播开播动态啦,但女仆不处理哦");
|
|
521
521
|
return;
|
|
522
522
|
}
|
|
523
523
|
if (e.message === "出现关键词,屏蔽该动态") {
|
|
524
|
-
await session.send("主人~女仆已经屏蔽了这条动态啦
|
|
524
|
+
await session.send("主人~女仆已经屏蔽了这条动态啦");
|
|
525
525
|
return;
|
|
526
526
|
}
|
|
527
527
|
if (e.message === "已屏蔽转发动态") {
|
|
528
|
-
await session.send("主人~女仆已经屏蔽了这条转发动态啦
|
|
528
|
+
await session.send("主人~女仆已经屏蔽了这条转发动态啦");
|
|
529
529
|
return;
|
|
530
530
|
}
|
|
531
531
|
if (e.message === "已屏蔽专栏动态") {
|
|
532
|
-
await session.send("主人~女仆已经屏蔽了这条专栏动态啦
|
|
532
|
+
await session.send("主人~女仆已经屏蔽了这条专栏动态啦");
|
|
533
533
|
return;
|
|
534
534
|
}
|
|
535
|
-
this.logger.error(
|
|
535
|
+
this.logger.error(`主人呜呜,女仆在执行 dynamicDetect generateDynamicImg() 时推送卡片发送失败啦~原因:${e.message},请主人帮女仆看看呀!`);
|
|
536
536
|
});
|
|
537
537
|
buffer && await session.send(koishi.h.image(buffer, "image/jpeg"));
|
|
538
538
|
});
|
|
@@ -646,22 +646,22 @@ var ComRegister = class ComRegister {
|
|
|
646
646
|
data: await this.ctx["bilibili-notify-api"].getUserInfo("114514")
|
|
647
647
|
};
|
|
648
648
|
}).then((content) => content.data);
|
|
649
|
-
if (userInfoCode !== -352 || !userInfoData.v_voucher) return "主人~女仆发现不满足验证条件呢~所以这个命令不用执行哦
|
|
649
|
+
if (userInfoCode !== -352 || !userInfoData.v_voucher) return "主人~女仆发现不满足验证条件呢~所以这个命令不用执行哦 如果提示风控,主人可以尝试重启插件看看呀 (*>ω<)b";
|
|
650
650
|
const { data } = await ctx["bilibili-notify-api"].v_voucherCaptcha(userInfoData.v_voucher);
|
|
651
|
-
if (!data.geetest) return "
|
|
651
|
+
if (!data.geetest) return "主人呜呜,女仆发现当前风控无法通过验证解除哦~主人可能需要考虑人工申诉呢";
|
|
652
652
|
await session.send("主人~请到这个网站进行验证操作哦~乖乖跟着做,女仆也会帮主人关注进度呢 (〃>ω<〃) https://kuresaru.github.io/geetest-validator/");
|
|
653
|
-
await session.send("主人~请手动填入 gt 和 challenge,然后点击生成进行验证哦~验证完成后再点击结果,并根据提示输入对应的 validate,女仆会在一旁乖乖等主人完成呢
|
|
653
|
+
await session.send("主人~请手动填入 gt 和 challenge,然后点击生成进行验证哦~验证完成后再点击结果,并根据提示输入对应的 validate,女仆会在一旁乖乖等主人完成呢");
|
|
654
654
|
await session.send(`gt:${data.geetest.gt}`);
|
|
655
655
|
await session.send(`challenge:${data.geetest.challenge}`);
|
|
656
|
-
await session.send("主人~验证完成啦~请直接输入 validate 告诉女仆哦
|
|
656
|
+
await session.send("主人~验证完成啦~请直接输入 validate 告诉女仆哦");
|
|
657
657
|
const validate = await session.prompt();
|
|
658
658
|
const seccode = `${validate}|jordan`;
|
|
659
659
|
const { data: validateCaptchaData } = await ctx["bilibili-notify-api"].validateCaptcha(data.geetest.challenge, data.token, validate, seccode);
|
|
660
|
-
if (validateCaptchaData?.is_valid !== 1) return "
|
|
660
|
+
if (validateCaptchaData?.is_valid !== 1) return "主人呜呜,验证没有成功呢~请主人再试一次呀";
|
|
661
661
|
await this.ctx.sleep(10 * 1e3);
|
|
662
662
|
const { code: validCode, data: validData } = await ctx["bilibili-notify-api"].getUserInfo("114514", validateCaptchaData.grisk_id);
|
|
663
|
-
if (validCode === -352 && validData.v_voucher) return "
|
|
664
|
-
await session.send("主人~验证成功啦!请主人重启插件,女仆会乖乖继续工作哦
|
|
663
|
+
if (validCode === -352 && validData.v_voucher) return "主人呜呜,验证没有成功呢~请主人再试一次呀";
|
|
664
|
+
await session.send("主人~验证成功啦!请主人重启插件,女仆会乖乖继续工作哦");
|
|
665
665
|
});
|
|
666
666
|
biliCom.subcommand(".ai").action(async () => {
|
|
667
667
|
this.logger.info("开始生成AI直播总结");
|
|
@@ -727,17 +727,17 @@ var ComRegister = class ComRegister {
|
|
|
727
727
|
this.config = config;
|
|
728
728
|
this.registeringForEvents();
|
|
729
729
|
this.privateBot = this.ctx.bots.find((bot) => bot.platform === config.master.platform);
|
|
730
|
-
if (!this.privateBot) this.ctx.notifier.create({ content: "
|
|
730
|
+
if (!this.privateBot) this.ctx.notifier.create({ content: "主人呜呜,您还没有配置主人账号呢~女仆没办法向您推送插件运行状态啦,请快点配置哦" });
|
|
731
731
|
this.loginDBData = (await this.ctx.database.get("loginBili", 1, ["dynamic_group_id"]))[0];
|
|
732
732
|
await this.checkIfLoginInfoIsLoaded();
|
|
733
733
|
if (!await this.checkIfIsLogin()) {
|
|
734
|
-
this.logger.info("主人…呜呜 (;>_<) 女仆发现账号还没登录呢,请主人快点登录好让女仆继续工作呀
|
|
734
|
+
this.logger.info("主人…呜呜 (;>_<) 女仆发现账号还没登录呢,请主人快点登录好让女仆继续工作呀");
|
|
735
735
|
return;
|
|
736
736
|
}
|
|
737
737
|
const personalInfo = await this.ctx["bilibili-notify-api"].getMyselfInfo();
|
|
738
738
|
if (personalInfo.code !== 0) this.ctx.emit("bilibili-notify/login-status-report", {
|
|
739
739
|
status: BiliLoginStatus.LOGGED_IN,
|
|
740
|
-
msg: "主人…呜呜 (;>_<) 虽然账号已登录,但女仆获取个人信息失败啦,请主人检查一下呀
|
|
740
|
+
msg: "主人…呜呜 (;>_<) 虽然账号已登录,但女仆获取个人信息失败啦,请主人检查一下呀"
|
|
741
741
|
});
|
|
742
742
|
const myCardInfo = await this.ctx["bilibili-notify-api"].getUserCardInfo(personalInfo.data.mid.toString(), true);
|
|
743
743
|
this.ctx.emit("bilibili-notify/login-status-report", {
|
|
@@ -818,22 +818,22 @@ var ComRegister = class ComRegister {
|
|
|
818
818
|
wordcloudArr
|
|
819
819
|
});
|
|
820
820
|
}
|
|
821
|
-
this.logger.info("主人~女仆正在初始化推送群组/频道信息呢,请稍等一下哦
|
|
821
|
+
this.logger.info("主人~女仆正在初始化推送群组/频道信息呢,请稍等一下哦");
|
|
822
822
|
this.logger.info(this.pushArrMap);
|
|
823
823
|
}
|
|
824
824
|
registeringForEvents() {
|
|
825
825
|
this.ctx.console.addListener("bilibili-notify/start-login", async () => {
|
|
826
|
-
this.logger.info("主人~女仆正在触发登录事件呢,请稍等一下哦
|
|
826
|
+
this.logger.info("主人~女仆正在触发登录事件呢,请稍等一下哦");
|
|
827
827
|
let content;
|
|
828
828
|
try {
|
|
829
829
|
content = await this.ctx["bilibili-notify-api"].getLoginQRCode();
|
|
830
830
|
} catch (_) {
|
|
831
|
-
this.logger.error("
|
|
831
|
+
this.logger.error("主人呜呜,女仆在请求 bili login getLoginQRCode() 的时候网络失败啦,请检查网络后再试呀");
|
|
832
832
|
return;
|
|
833
833
|
}
|
|
834
834
|
if (content.code !== 0) return this.ctx.emit("bilibili-notify/login-status-report", {
|
|
835
835
|
status: BiliLoginStatus.LOGIN_FAILED,
|
|
836
|
-
msg: `主人…呜呜 (;>_<)
|
|
836
|
+
msg: `主人…呜呜 (;>_<) 女仆获取二维码失败啦,请主人再试一次哦`
|
|
837
837
|
});
|
|
838
838
|
qrcode.default.toBuffer(content.data.url, {
|
|
839
839
|
errorCorrectionLevel: "H",
|
|
@@ -845,10 +845,10 @@ var ComRegister = class ComRegister {
|
|
|
845
845
|
}
|
|
846
846
|
}, async (err, buffer) => {
|
|
847
847
|
if (err) {
|
|
848
|
-
this.logger.error(
|
|
848
|
+
this.logger.error(`主人呜呜,女仆生成二维码失败啦~错误信息:${err},请主人帮女仆看看问题呀`);
|
|
849
849
|
return this.ctx.emit("bilibili-notify/login-status-report", {
|
|
850
850
|
status: BiliLoginStatus.LOGIN_FAILED,
|
|
851
|
-
msg: "
|
|
851
|
+
msg: "主人呜呜,女仆生成二维码失败啦~"
|
|
852
852
|
});
|
|
853
853
|
}
|
|
854
854
|
const url = `data:image/png;base64,${Buffer.from(buffer).toString("base64")}`;
|
|
@@ -868,22 +868,22 @@ var ComRegister = class ComRegister {
|
|
|
868
868
|
try {
|
|
869
869
|
loginContent = await this.ctx["bilibili-notify-api"].getLoginStatus(content.data.qrcode_key);
|
|
870
870
|
} catch (e) {
|
|
871
|
-
this.logger.error(`主人…呜呜 (;>_<) 女仆获取登录信息失败啦~错误信息:${e}
|
|
871
|
+
this.logger.error(`主人…呜呜 (;>_<) 女仆获取登录信息失败啦~错误信息:${e},请主人帮女仆检查一下呀`);
|
|
872
872
|
return;
|
|
873
873
|
}
|
|
874
874
|
if (loginContent.data.code === 86101) return this.ctx.emit("bilibili-notify/login-status-report", {
|
|
875
875
|
status: BiliLoginStatus.LOGGING_QR,
|
|
876
|
-
msg: "主人~呜呜 (;>_<) 女仆发现您还没有扫码呢,请主人快点扫码呀
|
|
876
|
+
msg: "主人~呜呜 (;>_<) 女仆发现您还没有扫码呢,请主人快点扫码呀"
|
|
877
877
|
});
|
|
878
878
|
if (loginContent.data.code === 86090) return this.ctx.emit("bilibili-notify/login-status-report", {
|
|
879
879
|
status: BiliLoginStatus.LOGGING_QR,
|
|
880
|
-
msg: "主人~呜呜 (;>_<) 女仆看到二维码已经扫码了,但还没有确认呢,请主人快点确认呀
|
|
880
|
+
msg: "主人~呜呜 (;>_<) 女仆看到二维码已经扫码了,但还没有确认呢,请主人快点确认呀"
|
|
881
881
|
});
|
|
882
882
|
if (loginContent.data.code === 86038) {
|
|
883
883
|
this.loginTimer();
|
|
884
884
|
return this.ctx.emit("bilibili-notify/login-status-report", {
|
|
885
885
|
status: BiliLoginStatus.LOGIN_FAILED,
|
|
886
|
-
msg: "
|
|
886
|
+
msg: "主人呜呜,女仆发现二维码已经失效啦,请主人重新登录好让女仆继续工作呀"
|
|
887
887
|
});
|
|
888
888
|
}
|
|
889
889
|
if (loginContent.data.code === 0) {
|
|
@@ -901,7 +901,7 @@ var ComRegister = class ComRegister {
|
|
|
901
901
|
this.ctx["bilibili-notify-api"].disposeNotifier();
|
|
902
902
|
this.ctx.emit("bilibili-notify/login-status-report", {
|
|
903
903
|
status: BiliLoginStatus.LOGIN_SUCCESS,
|
|
904
|
-
msg: "主人~女仆看到您已登录啦,请点击按钮重启插件哦~女仆也会在5秒后自动帮您重启的
|
|
904
|
+
msg: "主人~女仆看到您已登录啦,请点击按钮重启插件哦~女仆也会在5秒后自动帮您重启的"
|
|
905
905
|
});
|
|
906
906
|
await this.ctx["bilibili-notify"].restartPlugin();
|
|
907
907
|
}
|
|
@@ -909,7 +909,7 @@ var ComRegister = class ComRegister {
|
|
|
909
909
|
this.loginTimer();
|
|
910
910
|
return this.ctx.emit("bilibili-notify/login-status-report", {
|
|
911
911
|
status: BiliLoginStatus.LOGIN_FAILED,
|
|
912
|
-
msg: "
|
|
912
|
+
msg: "主人呜呜,女仆登录失败啦,请主人再试一次,好让女仆继续工作呀"
|
|
913
913
|
});
|
|
914
914
|
}
|
|
915
915
|
} finally {
|
|
@@ -951,23 +951,23 @@ var ComRegister = class ComRegister {
|
|
|
951
951
|
}
|
|
952
952
|
async initAsyncPart(subs) {
|
|
953
953
|
this.ctx["bilibili-notify-live"].clearListeners();
|
|
954
|
-
this.logger.info("主人~女仆已经获取到订阅信息啦,正在乖乖开始加载订阅中哦
|
|
954
|
+
this.logger.info("主人~女仆已经获取到订阅信息啦,正在乖乖开始加载订阅中哦");
|
|
955
955
|
const groupInfoResult = await this.getGroupInfo();
|
|
956
956
|
if (groupInfoResult.code !== 0) {
|
|
957
|
-
this.logger.error("
|
|
957
|
+
this.logger.error("主人呜呜,女仆获取分组信息失败啦,插件初始化失败…请主人帮女仆看看问题呀");
|
|
958
958
|
return;
|
|
959
959
|
}
|
|
960
960
|
this.groupInfo = groupInfoResult.data;
|
|
961
961
|
const { code, message } = await this.loadSubFromConfig(subs);
|
|
962
962
|
if (code !== 0) {
|
|
963
|
-
this.logger.error(
|
|
964
|
-
await this.sendPrivateMsg("
|
|
963
|
+
this.logger.error(`主人呜呜,女仆加载订阅对象失败啦,插件初始化失败~错误信息:${message},请主人帮女仆看看呀!`);
|
|
964
|
+
await this.sendPrivateMsg("主人呜呜,女仆加载订阅对象失败啦,插件初始化失败~");
|
|
965
965
|
return;
|
|
966
966
|
}
|
|
967
967
|
this.initManagerAfterLoadSub();
|
|
968
968
|
this.checkIfDynamicDetectIsNeeded();
|
|
969
969
|
this.updateSubNotifier();
|
|
970
|
-
this.logger.info("主人~女仆插件初始化完毕啦!乖乖准备好为您服务哦
|
|
970
|
+
this.logger.info("主人~女仆插件初始化完毕啦!乖乖准备好为您服务哦");
|
|
971
971
|
}
|
|
972
972
|
mergeStopWords(stopWordsStr) {
|
|
973
973
|
if (!stopWordsStr || stopWordsStr.trim() === "") {
|
|
@@ -1040,7 +1040,7 @@ var ComRegister = class ComRegister {
|
|
|
1040
1040
|
async sendPrivateMsg(content) {
|
|
1041
1041
|
if (this.config.master.enable) {
|
|
1042
1042
|
if (this.privateBot?.status !== koishi.Universal.Status.ONLINE) {
|
|
1043
|
-
this.logger.error(`主人~呜呜 (;>_<) 女仆发现 ${this.privateBot.platform}
|
|
1043
|
+
this.logger.error(`主人~呜呜 (;>_<) 女仆发现 ${this.privateBot.platform} 机器人还没初始化完毕呢,暂时不能进行推送~女仆会乖乖等它准备好`);
|
|
1044
1044
|
return;
|
|
1045
1045
|
}
|
|
1046
1046
|
if (this.config.master.masterAccountGuildId) await this.privateBot.sendPrivateMessage(this.config.master.masterAccount, content, this.config.master.masterAccountGuildId);
|
|
@@ -1049,23 +1049,23 @@ var ComRegister = class ComRegister {
|
|
|
1049
1049
|
}
|
|
1050
1050
|
async sendPrivateMsgAndRebootService() {
|
|
1051
1051
|
if (this.rebootCount >= 3) {
|
|
1052
|
-
this.logger.error("
|
|
1053
|
-
await this.sendPrivateMsg("
|
|
1052
|
+
this.logger.error("主人呜呜,女仆已经重启插件三次啦,请主人检查一下机器人状态,然后输入指令 `bn start` 来启动插件哦");
|
|
1053
|
+
await this.sendPrivateMsg("主人呜呜,女仆已经重启插件三次啦,请主人检查一下机器人状态,然后输入指令 `bn start` 来启动插件哦");
|
|
1054
1054
|
await this.ctx["bilibili-notify"].disposePlugin();
|
|
1055
1055
|
return;
|
|
1056
1056
|
}
|
|
1057
1057
|
this.rebootCount++;
|
|
1058
|
-
this.logger.info("
|
|
1059
|
-
if (await this.ctx["bilibili-notify"].restartPlugin()) this.logger.info("主人~女仆成功重启插件啦!乖乖准备继续为您服务哦
|
|
1058
|
+
this.logger.info("主人呜呜,女仆发现插件出现未知错误啦,正在乖乖重启插件中~请主人稍等哦");
|
|
1059
|
+
if (await this.ctx["bilibili-notify"].restartPlugin()) this.logger.info("主人~女仆成功重启插件啦!乖乖准备继续为您服务哦");
|
|
1060
1060
|
else {
|
|
1061
|
-
this.logger.error("
|
|
1062
|
-
await this.sendPrivateMsg("
|
|
1061
|
+
this.logger.error("主人呜呜,女仆重启插件失败啦,请主人检查机器人状态,然后输入指令 `bn start` 来启动插件哦");
|
|
1062
|
+
await this.sendPrivateMsg("主人呜呜,女仆重启插件失败啦,请主人检查机器人状态,然后输入指令 `bn start` 来启动插件哦");
|
|
1063
1063
|
await this.ctx["bilibili-notify"].disposePlugin();
|
|
1064
1064
|
}
|
|
1065
1065
|
}
|
|
1066
1066
|
async sendPrivateMsgAndStopService() {
|
|
1067
|
-
await this.sendPrivateMsg("
|
|
1068
|
-
this.logger.error("
|
|
1067
|
+
await this.sendPrivateMsg("主人呜呜,女仆发现插件发生未知错误啦,请主人检查机器人状态,然后输入指令 `bn start` 来启动插件哦");
|
|
1068
|
+
this.logger.error("主人呜呜,女仆发现插件发生未知错误啦,请主人检查机器人状态,然后输入指令 `bn start` 来启动插件哦");
|
|
1069
1069
|
await this.ctx["bilibili-notify"].disposePlugin();
|
|
1070
1070
|
}
|
|
1071
1071
|
async sendMessageWithRetry(bot, channelId, content) {
|
|
@@ -1076,8 +1076,8 @@ var ComRegister = class ComRegister {
|
|
|
1076
1076
|
}, 2e3);
|
|
1077
1077
|
return;
|
|
1078
1078
|
}
|
|
1079
|
-
this.logger.error(
|
|
1080
|
-
await this.sendPrivateMsg(
|
|
1079
|
+
this.logger.error(`主人呜呜,女仆发送群组ID: ${channelId} 的消息失败啦~原因:${e.message},请主人帮女仆看看呀!`);
|
|
1080
|
+
await this.sendPrivateMsg(`主人呜呜,女仆发送群组ID: ${channelId} 的消息失败啦~请主人帮女仆看看呀!`);
|
|
1081
1081
|
});
|
|
1082
1082
|
}
|
|
1083
1083
|
async pushMessage(targets, content) {
|
|
@@ -1093,16 +1093,16 @@ var ComRegister = class ComRegister {
|
|
|
1093
1093
|
let num = 0;
|
|
1094
1094
|
const sendMessageByBot = async (channelId, botIndex = 0, retry = 3e3) => {
|
|
1095
1095
|
if (!bots[botIndex]) {
|
|
1096
|
-
this.logger.warn(
|
|
1096
|
+
this.logger.warn(`主人呜呜,女仆发现 ${platform} 没有配置对应机器人呢,暂时无法进行推送哦`);
|
|
1097
1097
|
return;
|
|
1098
1098
|
}
|
|
1099
1099
|
if (bots[botIndex].status !== koishi.Universal.Status.ONLINE) {
|
|
1100
1100
|
if (retry >= 3e3 * 2 ** 5) {
|
|
1101
|
-
this.logger.error(
|
|
1102
|
-
await this.sendPrivateMsg(
|
|
1101
|
+
this.logger.error(`主人呜呜,女仆发现 ${platform} 机器人还没初始化完毕呢~已经重试5次啦,暂时放弃推送了`);
|
|
1102
|
+
await this.sendPrivateMsg(`主人呜呜,女仆发现 ${platform} 机器人还没初始化完毕呢~已经重试5次啦,暂时放弃推送了`);
|
|
1103
1103
|
return;
|
|
1104
1104
|
}
|
|
1105
|
-
this.logger.error(`主人~女仆发现 ${platform} 机器人还没初始化完毕呢,暂时无法推送~${retry / 1e3}
|
|
1105
|
+
this.logger.error(`主人~女仆发现 ${platform} 机器人还没初始化完毕呢,暂时无法推送~${retry / 1e3} 秒后女仆会再试一次哦`);
|
|
1106
1106
|
await this.ctx.sleep(retry);
|
|
1107
1107
|
await sendMessageByBot(channelId, botIndex, retry * 2);
|
|
1108
1108
|
return;
|
|
@@ -1112,7 +1112,7 @@ var ComRegister = class ComRegister {
|
|
|
1112
1112
|
num++;
|
|
1113
1113
|
await this.ctx.sleep(500);
|
|
1114
1114
|
} catch (e) {
|
|
1115
|
-
this.logger.error(
|
|
1115
|
+
this.logger.error(`主人呜呜,女仆遇到错误啦~错误信息:${e},请主人帮女仆看看呀!`);
|
|
1116
1116
|
if (bots.length > 1) await sendMessageByBot(channelId, botIndex++);
|
|
1117
1117
|
}
|
|
1118
1118
|
};
|
|
@@ -1124,34 +1124,34 @@ var ComRegister = class ComRegister {
|
|
|
1124
1124
|
const record = this.pushArrMap.get(uid);
|
|
1125
1125
|
if (!record) return;
|
|
1126
1126
|
if (!(type === PushType.StartBroadcasting && record.liveAtAllArr?.length > 0 || type === PushType.Dynamic && (record.dynamicArr?.length > 0 || record.dynamicAtAllArr?.length > 0) || (type === PushType.Live || type === PushType.StartBroadcasting) && record.liveArr?.length > 0 || type === PushType.LiveGuardBuy && record.liveGuardBuyArr?.length > 0 || type === PushType.Superchat && record.superchatArr?.length > 0 || type === PushType.WordCloudAndLiveSummary && (record.wordcloudArr?.length > 0 || record.liveSummaryArr?.length > 0))) return;
|
|
1127
|
-
this.logger.info(`主人~女仆这次要推送的对象是 ${uid},推送类型是 ${PushTypeMsg[type]}
|
|
1127
|
+
this.logger.info(`主人~女仆这次要推送的对象是 ${uid},推送类型是 ${PushTypeMsg[type]} 哦~乖乖完成任务啦`);
|
|
1128
1128
|
if (type === PushType.StartBroadcasting && record.liveAtAllArr?.length > 0) {
|
|
1129
|
-
this.logger.info(`主人~女仆推送给 @全体 的消息啦~对象列表:${record.liveAtAllArr}
|
|
1129
|
+
this.logger.info(`主人~女仆推送给 @全体 的消息啦~对象列表:${record.liveAtAllArr} 哦`);
|
|
1130
1130
|
const atAllArr = structuredClone(record.liveAtAllArr);
|
|
1131
1131
|
await withRetry(() => this.pushMessage(atAllArr, koishi.h.at("all")), 1);
|
|
1132
1132
|
}
|
|
1133
1133
|
if (type === PushType.Dynamic && record.dynamicArr?.length > 0) {
|
|
1134
1134
|
if (record.dynamicAtAllArr?.length > 0) {
|
|
1135
|
-
this.logger.info(`主人~女仆推送动态给 @全体 哦~对象列表:${record.dynamicAtAllArr}
|
|
1135
|
+
this.logger.info(`主人~女仆推送动态给 @全体 哦~对象列表:${record.dynamicAtAllArr}`);
|
|
1136
1136
|
const dynamicAtAllArr = structuredClone(record.dynamicAtAllArr);
|
|
1137
1137
|
await withRetry(() => this.pushMessage(dynamicAtAllArr, koishi.h.at("all")), 1);
|
|
1138
1138
|
}
|
|
1139
|
-
this.logger.info(`主人~女仆正在推送动态啦~对象列表:${record.dynamicArr}
|
|
1139
|
+
this.logger.info(`主人~女仆正在推送动态啦~对象列表:${record.dynamicArr}`);
|
|
1140
1140
|
const dynamicArr = structuredClone(record.dynamicArr);
|
|
1141
1141
|
await withRetry(() => this.pushMessage(dynamicArr, (0, koishi.h)("message", content)), 1);
|
|
1142
1142
|
}
|
|
1143
1143
|
if ((type === PushType.Live || type === PushType.StartBroadcasting) && record.liveArr?.length > 0) {
|
|
1144
|
-
this.logger.info(`主人~女仆正在推送直播啦~对象列表:${record.liveArr}
|
|
1144
|
+
this.logger.info(`主人~女仆正在推送直播啦~对象列表:${record.liveArr}`);
|
|
1145
1145
|
const liveArr = structuredClone(record.liveArr);
|
|
1146
1146
|
await withRetry(() => this.pushMessage(liveArr, (0, koishi.h)("message", content)), 1);
|
|
1147
1147
|
}
|
|
1148
1148
|
if (type === PushType.LiveGuardBuy && record.liveGuardBuyArr?.length > 0) {
|
|
1149
|
-
this.logger.info(`主人~女仆正在推送直播守护购买消息啦~对象列表:${record.liveGuardBuyArr}
|
|
1149
|
+
this.logger.info(`主人~女仆正在推送直播守护购买消息啦~对象列表:${record.liveGuardBuyArr}`);
|
|
1150
1150
|
const liveGuardBuyArr = structuredClone(record.liveGuardBuyArr);
|
|
1151
1151
|
await withRetry(() => this.pushMessage(liveGuardBuyArr, (0, koishi.h)("message", content)), 1);
|
|
1152
1152
|
}
|
|
1153
1153
|
if (type === PushType.Superchat && record.superchatArr?.length > 0) {
|
|
1154
|
-
this.logger.info(`主人~女仆正在推送 SC 消息啦~对象列表:${record.superchatArr}
|
|
1154
|
+
this.logger.info(`主人~女仆正在推送 SC 消息啦~对象列表:${record.superchatArr}`);
|
|
1155
1155
|
const superchatArr = structuredClone(record.superchatArr);
|
|
1156
1156
|
await withRetry(() => this.pushMessage(superchatArr, (0, koishi.h)("message", content)), 1);
|
|
1157
1157
|
}
|
|
@@ -1162,16 +1162,16 @@ var ComRegister = class ComRegister {
|
|
|
1162
1162
|
const wordcloudOnlyArr = wordcloudArr.filter((item) => !liveSummaryArr.includes(item));
|
|
1163
1163
|
const liveSummaryOnlyArr = liveSummaryArr.filter((item) => !wordcloudArr.includes(item));
|
|
1164
1164
|
if (wordcloudAndLiveSummaryArr.length > 0) {
|
|
1165
|
-
this.logger.info(`主人~女仆正在推送词云和直播总结啦~对象列表:${wordcloudAndLiveSummaryArr}
|
|
1165
|
+
this.logger.info(`主人~女仆正在推送词云和直播总结啦~对象列表:${wordcloudAndLiveSummaryArr}`);
|
|
1166
1166
|
const msgs = content.filter(Boolean);
|
|
1167
1167
|
if (msgs.length > 0) await withRetry(() => this.pushMessage(wordcloudAndLiveSummaryArr, (0, koishi.h)("message", msgs)), 1);
|
|
1168
1168
|
}
|
|
1169
1169
|
if (content[0] && wordcloudOnlyArr.length > 0) {
|
|
1170
|
-
this.logger.info(`主人~女仆正在推送词云啦~对象列表:${wordcloudOnlyArr}
|
|
1170
|
+
this.logger.info(`主人~女仆正在推送词云啦~对象列表:${wordcloudOnlyArr}`);
|
|
1171
1171
|
await withRetry(() => this.pushMessage(wordcloudOnlyArr, (0, koishi.h)("message", content[0])), 1);
|
|
1172
1172
|
}
|
|
1173
1173
|
if (content[1] && liveSummaryOnlyArr.length > 0) {
|
|
1174
|
-
this.logger.info(`主人~女仆正在推送直播总结啦~对象列表:${liveSummaryOnlyArr}
|
|
1174
|
+
this.logger.info(`主人~女仆正在推送直播总结啦~对象列表:${liveSummaryOnlyArr}`);
|
|
1175
1175
|
await withRetry(() => this.pushMessage(liveSummaryOnlyArr, (0, koishi.h)("message", content[1])), 1);
|
|
1176
1176
|
}
|
|
1177
1177
|
}
|
|
@@ -1182,26 +1182,26 @@ var ComRegister = class ComRegister {
|
|
|
1182
1182
|
const content = await withRetry(async () => {
|
|
1183
1183
|
return await this.ctx["bilibili-notify-api"].getAllDynamic();
|
|
1184
1184
|
}, 1).catch((e) => {
|
|
1185
|
-
this.logger.error(
|
|
1185
|
+
this.logger.error(`主人呜呜,女仆在执行 dynamicDetect getAllDynamic() 时发生了错误~错误信息:${e.message},请主人帮女仆看看呀!`);
|
|
1186
1186
|
});
|
|
1187
1187
|
if (!content || !content.data) {
|
|
1188
|
-
this.logger.error("
|
|
1188
|
+
this.logger.error("主人呜呜,女仆在执行 dynamicDetect 时获取动态内容失败啦~请主人帮女仆看看呀!");
|
|
1189
1189
|
return;
|
|
1190
1190
|
}
|
|
1191
1191
|
if (content.code !== 0) switch (content.code) {
|
|
1192
1192
|
case -101:
|
|
1193
|
-
this.logger.error("主人…呜呜,女仆发现您还没登录账号呢 (;>_<)插件已经乖乖停止工作啦…请主人快点登录,让女仆可以继续努力为您服务~
|
|
1194
|
-
await this.sendPrivateMsg("主人…呜呜,女仆发现您还没登录账号呢 (;>_<)插件已经乖乖停止工作啦…请主人快点登录,让女仆可以继续努力为您服务~
|
|
1193
|
+
this.logger.error("主人…呜呜,女仆发现您还没登录账号呢 (;>_<)插件已经乖乖停止工作啦…请主人快点登录,让女仆可以继续努力为您服务~");
|
|
1194
|
+
await this.sendPrivateMsg("主人…呜呜,女仆发现您还没登录账号呢 (;>_<)插件已经乖乖停止工作啦…请主人快点登录,让女仆可以继续努力为您服务~");
|
|
1195
1195
|
await this.ctx["bilibili-notify"].disposePlugin();
|
|
1196
1196
|
break;
|
|
1197
1197
|
case -352:
|
|
1198
|
-
this.logger.error("主人…呜呜 (;>_<) 女仆发现账号被风控啦~插件已经乖乖停止工作了…请主人输入指令 bili cap,然后按照提示来解除风控吧~女仆会在旁边乖乖等您完成的
|
|
1199
|
-
await this.sendPrivateMsg("主人…呜呜 (;>_<) 女仆发现账号被风控啦~插件已经乖乖停止工作了…请主人输入指令 bili cap,然后按照提示来解除风控吧~女仆会在旁边乖乖等您完成的
|
|
1198
|
+
this.logger.error("主人…呜呜 (;>_<) 女仆发现账号被风控啦~插件已经乖乖停止工作了…请主人输入指令 bili cap,然后按照提示来解除风控吧~女仆会在旁边乖乖等您完成的");
|
|
1199
|
+
await this.sendPrivateMsg("主人…呜呜 (;>_<) 女仆发现账号被风控啦~插件已经乖乖停止工作了…请主人输入指令 bili cap,然后按照提示来解除风控吧~女仆会在旁边乖乖等您完成的");
|
|
1200
1200
|
await this.ctx["bilibili-notify"].disposePlugin();
|
|
1201
1201
|
break;
|
|
1202
1202
|
default:
|
|
1203
|
-
this.logger.error(`主人…呜呜 (;>_<) 女仆在获取动态信息时遇到问题啦~错误码:${content.code},错误信息:${content.message},请主人排除问题后输入指令 \`bn start\`
|
|
1204
|
-
await this.sendPrivateMsg(`主人…呜呜 (;>_<) 女仆在获取动态信息时遇到问题啦~错误码:${content.code},错误信息:${content.message},请主人排除问题后输入指令 \`bn start\`
|
|
1203
|
+
this.logger.error(`主人…呜呜 (;>_<) 女仆在获取动态信息时遇到问题啦~错误码:${content.code},错误信息:${content.message},请主人排除问题后输入指令 \`bn start\` 重启插件~女仆会乖乖等着的`);
|
|
1204
|
+
await this.sendPrivateMsg(`主人…呜呜 (;>_<) 女仆在获取动态信息时遇到问题啦~错误码:${content.code},错误信息:${content.message},请主人排除问题后输入指令 \`bn start\` 重启插件~女仆会乖乖等着的`);
|
|
1205
1205
|
await this.ctx["bilibili-notify"].disposePlugin();
|
|
1206
1206
|
break;
|
|
1207
1207
|
}
|
|
@@ -1230,7 +1230,7 @@ var ComRegister = class ComRegister {
|
|
|
1230
1230
|
if (this.config.filter.notify) await this.broadcastToTargets(uid, (0, koishi.h)("message", `${name$2}投稿了一条专栏,已屏蔽`), PushType.Dynamic);
|
|
1231
1231
|
return;
|
|
1232
1232
|
}
|
|
1233
|
-
this.logger.error(
|
|
1233
|
+
this.logger.error(`主人呜呜,女仆在执行 dynamicDetect generateDynamicImg() 时推送卡片发送失败啦~原因:${e.message},请主人帮女仆看看呀!`);
|
|
1234
1234
|
await this.sendPrivateMsgAndStopService();
|
|
1235
1235
|
});
|
|
1236
1236
|
if (!buffer) continue;
|
|
@@ -1242,7 +1242,7 @@ var ComRegister = class ComRegister {
|
|
|
1242
1242
|
else dUrl = `${name$2}发布了一条动态:https://t.bilibili.com/${item.id_str}`;
|
|
1243
1243
|
let aigc = "";
|
|
1244
1244
|
if (this.config.ai.enable) {
|
|
1245
|
-
this.logger.info("主人~女仆正在努力生成 AI 动态推送内容中呢…请稍等一下呀
|
|
1245
|
+
this.logger.info("主人~女仆正在努力生成 AI 动态推送内容中呢…请稍等一下呀");
|
|
1246
1246
|
if (item.type === "DYNAMIC_TYPE_AV") {
|
|
1247
1247
|
const title = item.modules.module_dynamic.major.archive.title;
|
|
1248
1248
|
const desc = item.modules.module_dynamic.major.archive.desc;
|
|
@@ -1253,9 +1253,9 @@ var ComRegister = class ComRegister {
|
|
|
1253
1253
|
const desc = item.modules.module_dynamic.major.opus.summary.text;
|
|
1254
1254
|
aigc = (await this.ctx["bilibili-notify-api"].chatWithAI(`请你根据以下图文动态的标题和内容,帮我写一份简短的动态播报,标题:${title},内容:${desc}`)).choices[0].message.content;
|
|
1255
1255
|
}
|
|
1256
|
-
this.logger.info(`主人~女仆的 AI
|
|
1256
|
+
this.logger.info(`主人~女仆的 AI 动态推送内容生成完毕啦!乖乖准备好发送给大家哦`);
|
|
1257
1257
|
}
|
|
1258
|
-
this.logger.info(
|
|
1258
|
+
this.logger.info(`主人~女仆正在推送动态中呢…请稍等哦`);
|
|
1259
1259
|
await this.broadcastToTargets(uid, (0, koishi.h)("message", [
|
|
1260
1260
|
koishi.h.image(buffer, "image/jpeg"),
|
|
1261
1261
|
koishi.h.text(aigc),
|
|
@@ -1285,38 +1285,38 @@ var ComRegister = class ComRegister {
|
|
|
1285
1285
|
debug_dynamicDetect() {
|
|
1286
1286
|
const handler = async () => {
|
|
1287
1287
|
const currentPushDyn = {};
|
|
1288
|
-
this.logger.info(
|
|
1288
|
+
this.logger.info(`主人~女仆正在开始获取动态信息呢…请稍等一下呀`);
|
|
1289
1289
|
const content = await withRetry(async () => {
|
|
1290
1290
|
return await this.ctx["bilibili-notify-api"].getAllDynamic();
|
|
1291
1291
|
}, 1).catch((e) => {
|
|
1292
|
-
this.logger.error(
|
|
1292
|
+
this.logger.error(`主人呜呜,女仆在执行 dynamicDetect getAllDynamic() 时遇到错误啦~错误信息:${e.message},请主人帮女仆看看呀!`);
|
|
1293
1293
|
});
|
|
1294
1294
|
if (!content) return;
|
|
1295
1295
|
if (content.code !== 0) switch (content.code) {
|
|
1296
1296
|
case -101:
|
|
1297
|
-
this.logger.error(
|
|
1298
|
-
await this.sendPrivateMsg(
|
|
1297
|
+
this.logger.error(`主人呜呜,女仆发现账号还没登录呢,插件已经停止工作啦~请主人快点登录好让女仆继续努力呀`);
|
|
1298
|
+
await this.sendPrivateMsg(`主人呜呜,女仆发现账号还没登录呢,插件已经停止工作啦~请主人快点登录好让女仆继续努力呀`);
|
|
1299
1299
|
await this.ctx["bilibili-notify"].disposePlugin();
|
|
1300
1300
|
break;
|
|
1301
1301
|
case -352:
|
|
1302
|
-
this.logger.error("
|
|
1303
|
-
await this.sendPrivateMsg("
|
|
1302
|
+
this.logger.error("主人呜呜,女仆发现账号被风控啦,插件已经停止工作~请主人输入指令 `bili cap` 并根据提示解除风控呀~女仆会乖乖等您完成的");
|
|
1303
|
+
await this.sendPrivateMsg("主人呜呜,女仆发现账号被风控啦,插件已经停止工作~请主人输入指令 `bili cap` 并根据提示解除风控呀~女仆会乖乖等您完成的");
|
|
1304
1304
|
await this.ctx["bilibili-notify"].disposePlugin();
|
|
1305
1305
|
break;
|
|
1306
1306
|
default:
|
|
1307
|
-
this.logger.error(
|
|
1308
|
-
await this.sendPrivateMsg(
|
|
1307
|
+
this.logger.error(`主人呜呜,女仆在获取动态信息时遇到问题啦~错误码:${content.code},错误信息:${content.message},请主人排除问题后输入指令 \`bn start\` 重启插件呀~女仆会乖乖等着的`);
|
|
1308
|
+
await this.sendPrivateMsg(`主人呜呜,女仆在获取动态信息时遇到问题啦~错误码:${content.code},错误信息:${content.message},请主人排除问题后输入指令 \`bn start\` 重启插件呀~女仆会乖乖等着的`);
|
|
1309
1309
|
await this.ctx["bilibili-notify"].disposePlugin();
|
|
1310
1310
|
break;
|
|
1311
1311
|
}
|
|
1312
|
-
this.logger.info("主人~女仆成功获取动态信息啦!正在乖乖开始处理动态信息呢
|
|
1312
|
+
this.logger.info("主人~女仆成功获取动态信息啦!正在乖乖开始处理动态信息呢");
|
|
1313
1313
|
const items = content.data.items;
|
|
1314
1314
|
for (const item of items) {
|
|
1315
1315
|
if (!item) continue;
|
|
1316
1316
|
const postTime = item.modules.module_author.pub_ts;
|
|
1317
1317
|
const uid = item.modules.module_author.mid.toString();
|
|
1318
1318
|
const name$2 = item.modules.module_author.name;
|
|
1319
|
-
this.logger.info(`主人主人~女仆已经成功拿到动态信息啦!UP主是:${name$2},UID:${uid},动态发布时间是:${luxon.DateTime.fromSeconds(postTime).toFormat("yyyy-MM-dd HH:mm:ss")}
|
|
1319
|
+
this.logger.info(`主人主人~女仆已经成功拿到动态信息啦!UP主是:${name$2},UID:${uid},动态发布时间是:${luxon.DateTime.fromSeconds(postTime).toFormat("yyyy-MM-dd HH:mm:ss")} 哦~女仆超乖地汇报给您呢`);
|
|
1320
1320
|
if (this.dynamicTimelineManager.has(uid)) {
|
|
1321
1321
|
this.logger.info("主人订阅订阅了这位UP主啦…女仆正在努力检查动态时间线呢 (>▽<)ゞ♡");
|
|
1322
1322
|
const timeline = this.dynamicTimelineManager.get(uid);
|
|
@@ -1341,25 +1341,25 @@ var ComRegister = class ComRegister {
|
|
|
1341
1341
|
if (this.config.filter.notify) await this.broadcastToTargets(uid, (0, koishi.h)("message", `${name$2}投稿了一条专栏,已屏蔽`), PushType.Dynamic);
|
|
1342
1342
|
return;
|
|
1343
1343
|
}
|
|
1344
|
-
this.logger.error(
|
|
1344
|
+
this.logger.error(`主人呜呜,女仆在执行 dynamicDetect generateDynamicImg() 时推送卡片发送失败啦~原因:${e.message},请主人帮女仆看看呀!`);
|
|
1345
1345
|
await this.sendPrivateMsgAndStopService();
|
|
1346
1346
|
});
|
|
1347
1347
|
if (!buffer) continue;
|
|
1348
|
-
this.logger.info("主人~女仆渲染推送卡片成功啦!乖乖准备好发送啦
|
|
1348
|
+
this.logger.info("主人~女仆渲染推送卡片成功啦!乖乖准备好发送啦");
|
|
1349
1349
|
let dUrl = "";
|
|
1350
1350
|
if (this.config.dynamicUrl) {
|
|
1351
|
-
this.logger.info("主人~女仆发现需要发送动态链接啦,正在努力生成链接中呢
|
|
1351
|
+
this.logger.info("主人~女仆发现需要发送动态链接啦,正在努力生成链接中呢");
|
|
1352
1352
|
if (item.type === "DYNAMIC_TYPE_AV") if (this.config.dynamicVideoUrlToBV) {
|
|
1353
1353
|
const bv = item.modules.module_dynamic.major.archive.jump_url.match(/BV[0-9A-Za-z]+/);
|
|
1354
1354
|
dUrl = bv ? bv[0] : "";
|
|
1355
1355
|
} else dUrl = `${name$2}发布了新视频:https:${item.modules.module_dynamic.major.archive.jump_url}`;
|
|
1356
1356
|
else dUrl = `${name$2}发布了一条动态:https://t.bilibili.com/${item.id_str}`;
|
|
1357
|
-
this.logger.info("主人~女仆成功生成动态链接啦!准备好发送给大家啦
|
|
1357
|
+
this.logger.info("主人~女仆成功生成动态链接啦!准备好发送给大家啦");
|
|
1358
1358
|
}
|
|
1359
|
-
this.logger.info("主人~女仆正在推送动态中呢…请稍等哦
|
|
1359
|
+
this.logger.info("主人~女仆正在推送动态中呢…请稍等哦");
|
|
1360
1360
|
await this.broadcastToTargets(uid, (0, koishi.h)("message", [koishi.h.image(buffer, "image/jpeg"), koishi.h.text(dUrl)]), PushType.Dynamic);
|
|
1361
1361
|
if (this.config.pushImgsInDynamic) {
|
|
1362
|
-
this.logger.info("主人~女仆发现动态里有图片要发送哦,正在努力发送中呢
|
|
1362
|
+
this.logger.info("主人~女仆发现动态里有图片要发送哦,正在努力发送中呢");
|
|
1363
1363
|
if (item.type === "DYNAMIC_TYPE_DRAW") {
|
|
1364
1364
|
const pics = item.modules?.module_dynamic?.major?.opus?.pics;
|
|
1365
1365
|
if (pics) {
|
|
@@ -1367,20 +1367,20 @@ var ComRegister = class ComRegister {
|
|
|
1367
1367
|
await this.broadcastToTargets(uid, picsMsg, PushType.Dynamic);
|
|
1368
1368
|
}
|
|
1369
1369
|
}
|
|
1370
|
-
this.logger.info("主人~女仆已经把动态中的图片发送完毕啦!乖乖完成任务啦
|
|
1370
|
+
this.logger.info("主人~女仆已经把动态中的图片发送完毕啦!乖乖完成任务啦");
|
|
1371
1371
|
}
|
|
1372
1372
|
if (!currentPushDyn[uid]) currentPushDyn[uid] = item;
|
|
1373
1373
|
this.logger.info("主人~女仆的动态推送完毕啦!乖乖完成任务~(>ω<)♡");
|
|
1374
1374
|
}
|
|
1375
1375
|
}
|
|
1376
1376
|
}
|
|
1377
|
-
this.logger.info("主人~女仆已经把动态信息处理完毕啦!一切都乖乖完成啦
|
|
1377
|
+
this.logger.info("主人~女仆已经把动态信息处理完毕啦!一切都乖乖完成啦");
|
|
1378
1378
|
for (const uid in currentPushDyn) {
|
|
1379
1379
|
const postTime = currentPushDyn[uid].modules.module_author.pub_ts;
|
|
1380
1380
|
this.dynamicTimelineManager.set(uid, postTime);
|
|
1381
|
-
this.logger.info(`主人~女仆成功更新了时间线啦!UP主:${uid},时间线:${luxon.DateTime.fromSeconds(postTime).toFormat("yyyy-MM-dd HH:mm:ss")}
|
|
1381
|
+
this.logger.info(`主人~女仆成功更新了时间线啦!UP主:${uid},时间线:${luxon.DateTime.fromSeconds(postTime).toFormat("yyyy-MM-dd HH:mm:ss")} 哦~女仆超乖地汇报给您呢`);
|
|
1382
1382
|
}
|
|
1383
|
-
this.logger.info(`主人~女仆这次要推送的动态数量是:${Object.keys(currentPushDyn).length}
|
|
1383
|
+
this.logger.info(`主人~女仆这次要推送的动态数量是:${Object.keys(currentPushDyn).length} 条哦~乖乖完成任务啦`);
|
|
1384
1384
|
};
|
|
1385
1385
|
return withLock(handler);
|
|
1386
1386
|
}
|
|
@@ -1411,7 +1411,7 @@ var ComRegister = class ComRegister {
|
|
|
1411
1411
|
}
|
|
1412
1412
|
async getLiveRoomInfo(roomId) {
|
|
1413
1413
|
const data = await withRetry(async () => await this.ctx["bilibili-notify-api"].getLiveRoomInfo(roomId)).then((content) => content.data).catch((e) => {
|
|
1414
|
-
this.logger.error(
|
|
1414
|
+
this.logger.error(`主人呜呜,女仆在执行 liveDetect getLiveRoomInfo 时遇到错误啦~错误信息:${e.message},请主人帮女仆看看呀!`);
|
|
1415
1415
|
});
|
|
1416
1416
|
if (!data) {
|
|
1417
1417
|
await this.sendPrivateMsgAndStopService();
|
|
@@ -1423,7 +1423,7 @@ var ComRegister = class ComRegister {
|
|
|
1423
1423
|
const buffer = await withRetry(async () => {
|
|
1424
1424
|
return await this.ctx["bilibili-notify-generate-img"].generateLiveImg(liveInfo.liveRoomInfo, liveInfo.masterInfo.username, liveInfo.masterInfo.userface, liveData, liveType, liveInfo.cardStyle.enable ? liveInfo.cardStyle : void 0);
|
|
1425
1425
|
}, 1).catch((e) => {
|
|
1426
|
-
this.logger.error(
|
|
1426
|
+
this.logger.error(`主人呜呜,女仆在执行 liveDetect generateLiveImg() 时推送卡片生成失败啦~原因:${e.message},请主人帮女仆看看呀!`);
|
|
1427
1427
|
});
|
|
1428
1428
|
if (!buffer) return await this.sendPrivateMsgAndStopService();
|
|
1429
1429
|
const msg = (0, koishi.h)("message", [koishi.h.image(buffer, "image/jpeg"), koishi.h.text(liveNotifyMsg || "")]);
|
|
@@ -1453,32 +1453,32 @@ var ComRegister = class ComRegister {
|
|
|
1453
1453
|
const liveData = { likedNum: "0" };
|
|
1454
1454
|
const sendDanmakuWordCloudAndLiveSummary = async (customLiveSummary) => {
|
|
1455
1455
|
this.logger.info("主人~女仆正在开始制作弹幕词云呢~请稍等一下呀 (〃ノωノ)♡");
|
|
1456
|
-
this.logger.info("主人~女仆正在努力获取前90热词呢~请稍等哦
|
|
1456
|
+
this.logger.info("主人~女仆正在努力获取前90热词呢~请稍等哦");
|
|
1457
1457
|
const words = Object.entries(danmakuWeightRecord);
|
|
1458
1458
|
const danmaker = Object.entries(danmakuSenderRecord);
|
|
1459
1459
|
const img = await (async () => {
|
|
1460
1460
|
if (words.length < 50) {
|
|
1461
|
-
this.logger.info("
|
|
1461
|
+
this.logger.info("主人呜呜,女仆发现热词不足50个呢,本次弹幕词云只好放弃啦");
|
|
1462
1462
|
return;
|
|
1463
1463
|
}
|
|
1464
1464
|
const top90Words = words.sort((a, b) => b[1] - a[1]).slice(0, 90);
|
|
1465
|
-
this.logger.info("主人~女仆整理好了弹幕词云前90词及权重啦~请主人过目哦
|
|
1465
|
+
this.logger.info("主人~女仆整理好了弹幕词云前90词及权重啦~请主人过目哦");
|
|
1466
1466
|
this.logger.info(top90Words);
|
|
1467
|
-
this.logger.info("主人~女仆正在准备生成弹幕词云呢~请稍等一下呀
|
|
1467
|
+
this.logger.info("主人~女仆正在准备生成弹幕词云呢~请稍等一下呀");
|
|
1468
1468
|
const buffer = await this.ctx["bilibili-notify-generate-img"].generateWordCloudImg(top90Words, masterInfo.username);
|
|
1469
1469
|
return koishi.h.image(buffer, "image/jpeg");
|
|
1470
1470
|
})();
|
|
1471
1471
|
const summary = await (async () => {
|
|
1472
1472
|
if (danmaker.length < 5) {
|
|
1473
|
-
this.logger.info("
|
|
1473
|
+
this.logger.info("主人呜呜,女仆发现发言人数不足5位呢,本次弹幕词云只好放弃啦");
|
|
1474
1474
|
return;
|
|
1475
1475
|
}
|
|
1476
|
-
this.logger.info("主人~女仆正在开始构建弹幕发送排行榜消息呢~请稍等呀
|
|
1476
|
+
this.logger.info("主人~女仆正在开始构建弹幕发送排行榜消息呢~请稍等呀");
|
|
1477
1477
|
const danmakuSenderCount = Object.keys(danmakuSenderRecord).length;
|
|
1478
1478
|
const danmakuCount = Object.values(danmakuSenderRecord).reduce((sum, val) => sum + val, 0);
|
|
1479
1479
|
const top5DanmakuSender = Object.entries(danmakuSenderRecord).sort((a, b) => b[1] - a[1]).slice(0, 5);
|
|
1480
1480
|
if (this.config.ai.enable) {
|
|
1481
|
-
this.logger.info("主人~女仆发现 AI 直播总结功能已开启啦,正在努力生成 AI 直播总结呢
|
|
1481
|
+
this.logger.info("主人~女仆发现 AI 直播总结功能已开启啦,正在努力生成 AI 直播总结呢");
|
|
1482
1482
|
const top10Words = words.sort((a, b) => b[1] - a[1]).slice(0, 10);
|
|
1483
1483
|
const liveSummaryData = {
|
|
1484
1484
|
medalName: masterInfo.medalName,
|
|
@@ -1503,7 +1503,7 @@ var ComRegister = class ComRegister {
|
|
|
1503
1503
|
别以为发这么点弹幕就能糊弄过去,本兔可是盯着你们的!下次再偷懒小心被我踹飞!🐰🥕
|
|
1504
1504
|
|
|
1505
1505
|
以下是直播数据:${JSON.stringify(liveSummaryData)}`);
|
|
1506
|
-
this.logger.info("主人~女仆生成好了 AI 直播总结啦,请主人过目哦
|
|
1506
|
+
this.logger.info("主人~女仆生成好了 AI 直播总结啦,请主人过目哦");
|
|
1507
1507
|
this.logger.info(res.choices[0].message.content);
|
|
1508
1508
|
return res.choices[0].message.content;
|
|
1509
1509
|
}
|
|
@@ -1519,13 +1519,13 @@ var ComRegister = class ComRegister {
|
|
|
1519
1519
|
};
|
|
1520
1520
|
const pushAtTimeFunc = async () => {
|
|
1521
1521
|
if (!await useLiveRoomInfo(LiveType.LiveBroadcast) && !await useMasterInfo(LiveType.LiveBroadcast)) {
|
|
1522
|
-
await this.sendPrivateMsg("
|
|
1522
|
+
await this.sendPrivateMsg("主人呜呜,女仆获取直播间信息失败啦,推送直播卡片也失败了~请主人帮女仆看看呀!");
|
|
1523
1523
|
return await this.sendPrivateMsgAndStopService();
|
|
1524
1524
|
}
|
|
1525
1525
|
if (liveRoomInfo.live_status === 0 || liveRoomInfo.live_status === 2) {
|
|
1526
1526
|
liveStatus = false;
|
|
1527
1527
|
pushAtTimeTimer?.();
|
|
1528
|
-
await this.sendPrivateMsg("主人~女仆发现直播间已下播啦!可能与直播间的连接断开了,请主人使用指令 `bn restart` 重启插件呀
|
|
1528
|
+
await this.sendPrivateMsg("主人~女仆发现直播间已下播啦!可能与直播间的连接断开了,请主人使用指令 `bn restart` 重启插件呀");
|
|
1529
1529
|
return;
|
|
1530
1530
|
}
|
|
1531
1531
|
liveTime = liveRoomInfo.live_time;
|
|
@@ -1570,8 +1570,8 @@ var ComRegister = class ComRegister {
|
|
|
1570
1570
|
pushAtTimeTimer?.();
|
|
1571
1571
|
pushAtTimeTimer = null;
|
|
1572
1572
|
this.ctx["bilibili-notify-live"].closeListener(sub.roomid);
|
|
1573
|
-
await this.sendPrivateMsg(
|
|
1574
|
-
this.logger.error(
|
|
1573
|
+
await this.sendPrivateMsg(`主人呜呜,女仆发现 [${sub.roomid}] 直播间连接发生错误啦,请主人帮女仆看看呀!`);
|
|
1574
|
+
this.logger.error(`主人呜呜,女仆发现 [${sub.roomid}] 直播间连接发生错误啦,请主人帮女仆看看呀!`);
|
|
1575
1575
|
},
|
|
1576
1576
|
onIncomeDanmu: ({ body }) => {
|
|
1577
1577
|
this.segmentDanmaku(body.content, danmakuWeightRecord);
|
|
@@ -1624,21 +1624,21 @@ var ComRegister = class ComRegister {
|
|
|
1624
1624
|
onLiveStart: async () => {
|
|
1625
1625
|
const now = Date.now();
|
|
1626
1626
|
if (now - lastLiveStart < LIVE_EVENT_COOLDOWN) {
|
|
1627
|
-
this.logger.warn(`主人~女仆发现 [${sub.roomid}]
|
|
1627
|
+
this.logger.warn(`主人~女仆发现 [${sub.roomid}] 的开播事件在冷却期内,所以被忽略啦`);
|
|
1628
1628
|
return;
|
|
1629
1629
|
}
|
|
1630
1630
|
lastLiveStart = now;
|
|
1631
1631
|
if (liveStatus) {
|
|
1632
|
-
this.logger.warn(`主人~女仆发现 [${sub.roomid}]
|
|
1632
|
+
this.logger.warn(`主人~女仆发现 [${sub.roomid}] 已经是开播状态啦,所以忽略了重复的开播事件哦`);
|
|
1633
1633
|
return;
|
|
1634
1634
|
}
|
|
1635
1635
|
liveStatus = true;
|
|
1636
1636
|
if (!await useLiveRoomInfo(LiveType.StartBroadcasting) && !await useMasterInfo(LiveType.StartBroadcasting)) {
|
|
1637
1637
|
liveStatus = false;
|
|
1638
|
-
await this.sendPrivateMsg("
|
|
1638
|
+
await this.sendPrivateMsg("主人呜呜,女仆获取直播间信息失败啦,推送直播开播卡片也失败了,请主人帮女仆看看呀!");
|
|
1639
1639
|
return await this.sendPrivateMsgAndStopService();
|
|
1640
1640
|
}
|
|
1641
|
-
this.logger.info(`主人~女仆查到房间号是:${masterInfo.roomId},开播时的粉丝数有:${masterInfo.liveOpenFollowerNum}
|
|
1641
|
+
this.logger.info(`主人~女仆查到房间号是:${masterInfo.roomId},开播时的粉丝数有:${masterInfo.liveOpenFollowerNum} 哦~女仆乖乖汇报完毕`);
|
|
1642
1642
|
liveTime = liveRoomInfo?.live_time || luxon.DateTime.now().toFormat("yyyy-MM-dd HH:mm:ss");
|
|
1643
1643
|
const diffTime = await this.ctx["bilibili-notify-generate-img"].getTimeDifference(liveTime);
|
|
1644
1644
|
const followerNum = masterInfo.liveOpenFollowerNum >= 1e4 ? `${(masterInfo.liveOpenFollowerNum / 1e4).toFixed(1)}万` : masterInfo.liveOpenFollowerNum.toString();
|
|
@@ -1657,12 +1657,12 @@ var ComRegister = class ComRegister {
|
|
|
1657
1657
|
onLiveEnd: async () => {
|
|
1658
1658
|
const now = Date.now();
|
|
1659
1659
|
if (now - lastLiveEnd < LIVE_EVENT_COOLDOWN) {
|
|
1660
|
-
this.logger.warn(`主人~女仆发现 [${sub.roomid}]
|
|
1660
|
+
this.logger.warn(`主人~女仆发现 [${sub.roomid}] 的下播事件在冷却期内,所以被忽略啦`);
|
|
1661
1661
|
return;
|
|
1662
1662
|
}
|
|
1663
1663
|
lastLiveEnd = now;
|
|
1664
1664
|
if (!liveStatus) {
|
|
1665
|
-
this.logger.warn(`主人~女仆发现 [${sub.roomid}]
|
|
1665
|
+
this.logger.warn(`主人~女仆发现 [${sub.roomid}] 已经是下播状态啦,所以忽略了重复的下播事件哦`);
|
|
1666
1666
|
return;
|
|
1667
1667
|
}
|
|
1668
1668
|
if (pushAtTimeTimer) {
|
|
@@ -1672,11 +1672,11 @@ var ComRegister = class ComRegister {
|
|
|
1672
1672
|
}
|
|
1673
1673
|
if (!await useLiveRoomInfo(LiveType.StopBroadcast) && !await useMasterInfo(LiveType.StopBroadcast)) {
|
|
1674
1674
|
liveStatus = false;
|
|
1675
|
-
await this.sendPrivateMsg("
|
|
1675
|
+
await this.sendPrivateMsg("主人呜呜,女仆获取直播间信息失败啦,推送直播开播卡片也失败了,请主人帮女仆看看呀!");
|
|
1676
1676
|
return await this.sendPrivateMsgAndStopService();
|
|
1677
1677
|
}
|
|
1678
1678
|
liveStatus = false;
|
|
1679
|
-
this.logger.info(`主人~女仆报告开播时粉丝数:${masterInfo.liveOpenFollowerNum},下播时粉丝数:${masterInfo.liveEndFollowerNum},粉丝数变化:${masterInfo.liveFollowerChange}
|
|
1679
|
+
this.logger.info(`主人~女仆报告开播时粉丝数:${masterInfo.liveOpenFollowerNum},下播时粉丝数:${masterInfo.liveEndFollowerNum},粉丝数变化:${masterInfo.liveFollowerChange} 哦~女仆乖乖汇报完毕`);
|
|
1680
1680
|
liveTime = liveRoomInfo?.live_time || luxon.DateTime.now().toFormat("yyyy-MM-dd HH:mm:ss");
|
|
1681
1681
|
const diffTime = await this.ctx["bilibili-notify-generate-img"].getTimeDifference(liveTime);
|
|
1682
1682
|
const followerChange = (() => {
|
|
@@ -1696,8 +1696,8 @@ var ComRegister = class ComRegister {
|
|
|
1696
1696
|
}
|
|
1697
1697
|
}
|
|
1698
1698
|
});
|
|
1699
|
-
if (!await useLiveRoomInfo(LiveType.FirstLiveBroadcast) && !await useMasterInfo(LiveType.FirstLiveBroadcast)) return this.sendPrivateMsg("
|
|
1700
|
-
this.logger.info(`主人~女仆查到当前粉丝数是:${masterInfo.liveOpenFollowerNum}
|
|
1699
|
+
if (!await useLiveRoomInfo(LiveType.FirstLiveBroadcast) && !await useMasterInfo(LiveType.FirstLiveBroadcast)) return this.sendPrivateMsg("主人呜呜,女仆获取直播间信息失败啦,所以启动直播间弹幕检测也失败了,请主人帮女仆看看呀!");
|
|
1700
|
+
this.logger.info(`主人~女仆查到当前粉丝数是:${masterInfo.liveOpenFollowerNum} 哦~乖乖报告完毕`);
|
|
1701
1701
|
if (liveRoomInfo.live_status === 1) {
|
|
1702
1702
|
liveTime = liveRoomInfo.live_time;
|
|
1703
1703
|
const watched = liveData.watchedNum || "暂未获取到";
|
|
@@ -1766,7 +1766,7 @@ var ComRegister = class ComRegister {
|
|
|
1766
1766
|
}
|
|
1767
1767
|
return {
|
|
1768
1768
|
code: 0,
|
|
1769
|
-
message: "主人~女仆发现这个分组已经存在啦
|
|
1769
|
+
message: "主人~女仆发现这个分组已经存在啦"
|
|
1770
1770
|
};
|
|
1771
1771
|
};
|
|
1772
1772
|
const resp = await checkGroupIsReady();
|
|
@@ -1788,7 +1788,7 @@ var ComRegister = class ComRegister {
|
|
|
1788
1788
|
}
|
|
1789
1789
|
return {
|
|
1790
1790
|
code: 0,
|
|
1791
|
-
message: "主人~女仆获取分组明细成功啦~乖乖汇报完毕
|
|
1791
|
+
message: "主人~女仆获取分组明细成功啦~乖乖汇报完毕",
|
|
1792
1792
|
data: relationGroupDetailData.data
|
|
1793
1793
|
};
|
|
1794
1794
|
};
|
|
@@ -1799,68 +1799,68 @@ var ComRegister = class ComRegister {
|
|
|
1799
1799
|
};
|
|
1800
1800
|
return {
|
|
1801
1801
|
code: 0,
|
|
1802
|
-
message: "主人~女仆获取分组明细成功啦~乖乖汇报完毕
|
|
1802
|
+
message: "主人~女仆获取分组明细成功啦~乖乖汇报完毕",
|
|
1803
1803
|
data
|
|
1804
1804
|
};
|
|
1805
1805
|
}
|
|
1806
1806
|
async subUserInBili(mid) {
|
|
1807
1807
|
for (const user of this.groupInfo) if (user.mid.toString() === mid) return {
|
|
1808
1808
|
code: 0,
|
|
1809
|
-
message: "主人~女仆发现订阅对象已经在分组里啦
|
|
1809
|
+
message: "主人~女仆发现订阅对象已经在分组里啦"
|
|
1810
1810
|
};
|
|
1811
1811
|
const subUserData = await this.ctx["bilibili-notify-api"].follow(mid);
|
|
1812
1812
|
return await ({
|
|
1813
1813
|
[-101]: () => {
|
|
1814
1814
|
return {
|
|
1815
1815
|
code: subUserData.code,
|
|
1816
|
-
message: "
|
|
1816
|
+
message: "主人呜呜,女仆发现账号未登录哦~请主人使用指令 `bili login` 登录后再进行订阅操作呀"
|
|
1817
1817
|
};
|
|
1818
1818
|
},
|
|
1819
1819
|
[-102]: () => {
|
|
1820
1820
|
return {
|
|
1821
1821
|
code: subUserData.code,
|
|
1822
|
-
message: "
|
|
1822
|
+
message: "主人呜呜,女仆发现账号被封停啦,所以无法进行订阅操作呀"
|
|
1823
1823
|
};
|
|
1824
1824
|
},
|
|
1825
1825
|
22002: () => {
|
|
1826
1826
|
return {
|
|
1827
1827
|
code: subUserData.code,
|
|
1828
|
-
message: "
|
|
1828
|
+
message: "主人呜呜,女仆发现因为对方隐私设置,无法进行订阅操作呀"
|
|
1829
1829
|
};
|
|
1830
1830
|
},
|
|
1831
1831
|
22003: () => {
|
|
1832
1832
|
return {
|
|
1833
1833
|
code: subUserData.code,
|
|
1834
|
-
message: "
|
|
1834
|
+
message: "主人呜呜,女仆发现您已经把对方拉黑啦,所以无法进行订阅操作呀"
|
|
1835
1835
|
};
|
|
1836
1836
|
},
|
|
1837
1837
|
22013: () => {
|
|
1838
1838
|
return {
|
|
1839
1839
|
code: subUserData.code,
|
|
1840
|
-
message: "
|
|
1840
|
+
message: "主人呜呜,女仆发现账号已注销啦,所以无法进行订阅操作呀"
|
|
1841
1841
|
};
|
|
1842
1842
|
},
|
|
1843
1843
|
40061: () => {
|
|
1844
1844
|
return {
|
|
1845
1845
|
code: subUserData.code,
|
|
1846
|
-
message: "
|
|
1846
|
+
message: "主人呜呜,女仆发现账号不存在哦~请主人检查 UID 输入是否正确,或者用户是否真的存在呀"
|
|
1847
1847
|
};
|
|
1848
1848
|
},
|
|
1849
1849
|
22001: () => {
|
|
1850
1850
|
return {
|
|
1851
1851
|
code: 0,
|
|
1852
|
-
message: "主人~女仆发现订阅对象是主人自己呢~所以不用添加到分组啦
|
|
1852
|
+
message: "主人~女仆发现订阅对象是主人自己呢~所以不用添加到分组啦"
|
|
1853
1853
|
};
|
|
1854
1854
|
},
|
|
1855
1855
|
22014: async () => {
|
|
1856
1856
|
const copyUserToGroupData = await this.ctx["bilibili-notify-api"].copyUserToGroup(mid, this.loginDBData.dynamic_group_id);
|
|
1857
1857
|
if (copyUserToGroupData.code !== 0) return {
|
|
1858
1858
|
code: copyUserToGroupData.code,
|
|
1859
|
-
message: "
|
|
1859
|
+
message: "主人呜呜,女仆尝试把订阅对象添加到分组失败啦~请主人稍后再试哦"
|
|
1860
1860
|
};
|
|
1861
1861
|
return {
|
|
1862
1862
|
code: 0,
|
|
1863
|
-
message: "主人~女仆已经成功把订阅对象添加到分组啦
|
|
1863
|
+
message: "主人~女仆已经成功把订阅对象添加到分组啦"
|
|
1864
1864
|
};
|
|
1865
1865
|
},
|
|
1866
1866
|
22015: async () => {
|
|
@@ -1873,11 +1873,11 @@ var ComRegister = class ComRegister {
|
|
|
1873
1873
|
const copyUserToGroupData = await this.ctx["bilibili-notify-api"].copyUserToGroup(mid, this.loginDBData.dynamic_group_id);
|
|
1874
1874
|
if (copyUserToGroupData.code !== 0) return {
|
|
1875
1875
|
code: copyUserToGroupData.code,
|
|
1876
|
-
message: "
|
|
1876
|
+
message: "主人呜呜,女仆尝试把订阅对象添加到分组失败啦~请主人稍后再试哦"
|
|
1877
1877
|
};
|
|
1878
1878
|
return {
|
|
1879
1879
|
code: 0,
|
|
1880
|
-
message: "主人~女仆已经成功把订阅对象添加到分组啦
|
|
1880
|
+
message: "主人~女仆已经成功把订阅对象添加到分组啦"
|
|
1881
1881
|
};
|
|
1882
1882
|
}
|
|
1883
1883
|
}[subUserData.code] || (() => {
|
|
@@ -1890,10 +1890,10 @@ var ComRegister = class ComRegister {
|
|
|
1890
1890
|
async loadSubFromConfig(subs) {
|
|
1891
1891
|
this.preInitConfig(subs);
|
|
1892
1892
|
for (const sub of Object.values(subs)) {
|
|
1893
|
-
this.logger.info(`主人~女仆正在加载订阅 UID:${sub.uid}
|
|
1893
|
+
this.logger.info(`主人~女仆正在加载订阅 UID:${sub.uid} 中呢~请稍等呀`);
|
|
1894
1894
|
const subInfo = await this.subUserInBili(sub.uid);
|
|
1895
1895
|
if (subInfo.code !== 0 && subInfo.code !== 22015) return subInfo;
|
|
1896
|
-
if (subInfo.code === 22015) this.logger.warn(
|
|
1896
|
+
if (subInfo.code === 22015) this.logger.warn(`主人呜呜,女仆发现账号异常,无法自动订阅 UID:${sub.uid} 哦~请主人手动订阅,然后把订阅移动到 "订阅" 分组里呀`);
|
|
1897
1897
|
this.subManager.set(sub.uid, {
|
|
1898
1898
|
uname: sub.uname,
|
|
1899
1899
|
roomId: sub.roomid,
|
|
@@ -1905,19 +1905,19 @@ var ComRegister = class ComRegister {
|
|
|
1905
1905
|
customLiveSummary: sub.customLiveSummary
|
|
1906
1906
|
});
|
|
1907
1907
|
if (sub.live && !sub.roomid) {
|
|
1908
|
-
this.logger.info(`主人~女仆发现 UID:${sub.uid}
|
|
1908
|
+
this.logger.info(`主人~女仆发现 UID:${sub.uid} 请求了用户接口哦~女仆乖乖记录啦`);
|
|
1909
1909
|
const { code: userInfoCode, message: userInfoMsg, data: userInfoData } = await withRetry(async () => {
|
|
1910
1910
|
return await this.ctx["bilibili-notify-api"].getUserInfo(sub.uid);
|
|
1911
1911
|
}).catch((e) => {
|
|
1912
|
-
this.logger.error(
|
|
1912
|
+
this.logger.error(`主人呜呜,女仆在执行 loadSubFromConfig() 的 getUserInfo() 时发生错误啦~错误信息:${e.message},请主人帮女仆看看呀!`);
|
|
1913
1913
|
return {
|
|
1914
1914
|
code: -1,
|
|
1915
|
-
message:
|
|
1915
|
+
message: `主人呜呜,女仆加载订阅 UID:${sub.uid} 失败啦~请主人帮女仆看看呀!`
|
|
1916
1916
|
};
|
|
1917
1917
|
});
|
|
1918
1918
|
if (userInfoCode === -352 && userInfoData.v_voucher) {
|
|
1919
|
-
this.logger.info("
|
|
1920
|
-
await this.sendPrivateMsg("
|
|
1919
|
+
this.logger.info("主人呜呜,女仆发现账号被风控啦~请主人使用指令 `bili cap` 进行风控验证呀");
|
|
1920
|
+
await this.sendPrivateMsg("主人呜呜,女仆发现账号被风控啦~请主人使用指令 `bili cap` 进行风控验证呀");
|
|
1921
1921
|
return {
|
|
1922
1922
|
code: userInfoCode,
|
|
1923
1923
|
message: userInfoMsg
|
|
@@ -1929,15 +1929,15 @@ var ComRegister = class ComRegister {
|
|
|
1929
1929
|
};
|
|
1930
1930
|
if (sub.live && !userInfoData.live_room) {
|
|
1931
1931
|
sub.live = false;
|
|
1932
|
-
this.logger.warn(`主人~女仆发现 UID:${sub.uid}
|
|
1932
|
+
this.logger.warn(`主人~女仆发现 UID:${sub.uid} 的用户没有开通直播间哦,所以无法订阅直播啦`);
|
|
1933
1933
|
}
|
|
1934
1934
|
sub.roomid = userInfoData.live_room?.roomid;
|
|
1935
1935
|
}
|
|
1936
1936
|
if (sub.live && sub.roomid) await this.liveDetectWithListener(sub);
|
|
1937
|
-
this.logger.info(`主人~女仆订阅 UID:${sub.uid}
|
|
1937
|
+
this.logger.info(`主人~女仆订阅 UID:${sub.uid} 已经加载完毕啦~乖乖完成任务啦`);
|
|
1938
1938
|
if (sub !== Object.values(subs).pop()) {
|
|
1939
1939
|
const randomDelay = Math.floor(Math.random() * 3) + 1;
|
|
1940
|
-
this.logger.info(`主人~女仆设置了随机延迟哦~延迟时间:${randomDelay}
|
|
1940
|
+
this.logger.info(`主人~女仆设置了随机延迟哦~延迟时间:${randomDelay} 秒呢`);
|
|
1941
1941
|
await this.ctx.sleep(randomDelay * 1e3);
|
|
1942
1942
|
}
|
|
1943
1943
|
}
|
|
@@ -1951,7 +1951,7 @@ var ComRegister = class ComRegister {
|
|
|
1951
1951
|
}
|
|
1952
1952
|
enableDynamicDetect() {
|
|
1953
1953
|
this.dynamicJob = new cron.CronJob(this.config.dynamicCron, this.config.dynamicDebugMode ? this.debug_dynamicDetect() : this.dynamicDetect());
|
|
1954
|
-
this.logger.info("主人~女仆的动态监测已经开启啦~开始乖乖监控动态呢
|
|
1954
|
+
this.logger.info("主人~女仆的动态监测已经开启啦~开始乖乖监控动态呢");
|
|
1955
1955
|
this.dynamicJob.start();
|
|
1956
1956
|
}
|
|
1957
1957
|
async checkIfIsLogin() {
|
|
@@ -4606,6 +4606,8 @@ const usage = `
|
|
|
4606
4606
|
不用着急,女仆会一直在这里陪着您,一步一步完成设置~
|
|
4607
4607
|
主人只要乖乖填好这些信息,就能让女仆变得超级听话、超级勤快啦 (>///<)♡
|
|
4608
4608
|
|
|
4609
|
+
想要重新登录的话,只需要点击个人名片的“Bilibili”Logo哦~
|
|
4610
|
+
|
|
4609
4611
|
主人~注意事项要仔细看呀 (>_<)♡
|
|
4610
4612
|
- 如果主人使用的是 onebot 机器人,平台名请填写 onebot,而不是 qq 哦~
|
|
4611
4613
|
- 同样的呀,如果是 onebot 机器人,请务必填写 onebot,不要写成 qq 哦~
|