koishi-plugin-bilibili-notify 3.6.0 → 3.6.2

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/index.cjs CHANGED
@@ -5,7 +5,7 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (all, symbols) => {
8
+ var __exportAll = (all, symbols) => {
9
9
  let target = {};
10
10
  for (var name$2 in all) {
11
11
  __defProp(target, name$2, {
@@ -40,7 +40,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
40
40
  //#endregion
41
41
  let koishi = require("koishi");
42
42
  require("@koishijs/plugin-notifier");
43
- let __koishijs_plugin_console = require("@koishijs/plugin-console");
43
+ let _koishijs_plugin_console = require("@koishijs/plugin-console");
44
44
  let node_path = require("node:path");
45
45
  require("@koishijs/plugin-help");
46
46
  let blive_message_listener = require("blive-message-listener");
@@ -48,8 +48,8 @@ let qrcode = require("qrcode");
48
48
  qrcode = __toESM(qrcode);
49
49
  let cron = require("cron");
50
50
  let luxon = require("luxon");
51
- let __node_rs_jieba = require("@node-rs/jieba");
52
- let __node_rs_jieba_dict = require("@node-rs/jieba/dict");
51
+ let _node_rs_jieba = require("@node-rs/jieba");
52
+ let _node_rs_jieba_dict = require("@node-rs/jieba/dict");
53
53
  require("koishi-plugin-puppeteer");
54
54
  let node_url = require("node:url");
55
55
  let md5 = require("md5");
@@ -209,7 +209,7 @@ let BiliLoginStatus = /* @__PURE__ */ function(BiliLoginStatus$1) {
209
209
  //#endregion
210
210
  //#region src/data_server.ts
211
211
  /** biome-ignore-all assist/source/organizeImports: <import> */
212
- var BilibiliNotifyDataServer = class extends __koishijs_plugin_console.DataService {
212
+ var BilibiliNotifyDataServer = class extends _koishijs_plugin_console.DataService {
213
213
  biliData = {
214
214
  status: BiliLoginStatus.LOADING_LOGIN_INFO,
215
215
  msg: "正在加载登录信息..."
@@ -444,7 +444,7 @@ var ComRegister = class ComRegister {
444
444
  privateBot;
445
445
  dynamicJob;
446
446
  liveAPIJob;
447
- _jieba = __node_rs_jieba.Jieba.withDict(__node_rs_jieba_dict.dict);
447
+ _jieba = _node_rs_jieba.Jieba.withDict(_node_rs_jieba_dict.dict);
448
448
  stopwords;
449
449
  reciveSubTimes = 0;
450
450
  groupInfo = null;
@@ -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(`主人呜呜 (;>_<) 女仆获取动态内容失败啦~请主人帮女仆看看呀 (>ω<)♡ 错误码: ${content.code}`);
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(`主人呜呜 (;>_<) 女仆在执行 dynamicDetect generateDynamicImg() 时推送卡片发送失败啦~原因:${e.message},请主人帮女仆看看呀 (>ω<)♡`);
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 "主人~女仆发现不满足验证条件呢~所以这个命令不用执行哦 (>ω<)♡ 如果提示风控,主人可以尝试重启插件看看呀 (*>ω<)b";
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("主人呜呜 (;>_<) 女仆在请求 bili login getLoginQRCode() 的时候网络失败啦,请检查网络后再试呀 (>ω<)♡");
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(`主人呜呜 (;>_<) 女仆生成二维码失败啦~错误信息:${err},请主人帮女仆看看问题呀 (>ω<)♡`);
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(`主人呜呜 (;>_<) 女仆加载订阅对象失败啦,插件初始化失败~错误信息:${message},请主人帮女仆看看呀 (>ω<)♡`);
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("主人呜呜 (;>_<) 女仆已经重启插件三次啦,请主人检查一下机器人状态,然后输入指令 `bn start` 来启动插件哦 (>ω<)♡");
1053
- await this.sendPrivateMsg("主人呜呜 (;>_<) 女仆已经重启插件三次啦,请主人检查一下机器人状态,然后输入指令 `bn start` 来启动插件哦 (>ω<)♡");
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("主人呜呜 (;>_<) 女仆重启插件失败啦,请主人检查机器人状态,然后输入指令 `bn start` 来启动插件哦 (>ω<)♡");
1062
- await this.sendPrivateMsg("主人呜呜 (;>_<) 女仆重启插件失败啦,请主人检查机器人状态,然后输入指令 `bn start` 来启动插件哦 (>ω<)♡");
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("主人呜呜 (;>_<) 女仆发现插件发生未知错误啦,请主人检查机器人状态,然后输入指令 `bn start` 来启动插件哦 (>ω<)♡");
1068
- this.logger.error("主人呜呜 (;>_<) 女仆发现插件发生未知错误啦,请主人检查机器人状态,然后输入指令 `bn start` 来启动插件哦 (>ω<)♡");
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(`主人呜呜 (;>_<) 女仆发送群组ID: ${channelId} 的消息失败啦~原因:${e.message},请主人帮女仆看看呀 (>ω<)♡`);
1080
- await this.sendPrivateMsg(`主人呜呜 (;>_<) 女仆发送群组ID: ${channelId} 的消息失败啦~请主人帮女仆看看呀 (>ω<)♡`);
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(`主人呜呜 (;>_<) 女仆发现 ${platform} 没有配置对应机器人呢,暂时无法进行推送哦 (>ω<)♡`);
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(`主人呜呜 (;>_<) 女仆发现 ${platform} 机器人还没初始化完毕呢~已经重试5次啦,暂时放弃推送了 (>ω<)♡`);
1102
- await this.sendPrivateMsg(`主人呜呜 (;>_<) 女仆发现 ${platform} 机器人还没初始化完毕呢~已经重试5次啦,暂时放弃推送了 (>ω<)♡`);
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(`主人呜呜 (;>_<) 女仆遇到错误啦~错误信息:${e},请主人帮女仆看看呀 (>ω<)♡`);
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(`主人呜呜 (;>_<) 女仆在执行 dynamicDetect getAllDynamic() 时发生了错误~错误信息:${e.message},请主人帮女仆看看呀 (>ω<)♡`);
1185
+ this.logger.error(`主人呜呜,女仆在执行 dynamicDetect getAllDynamic() 时发生了错误~错误信息:${e.message},请主人帮女仆看看呀!`);
1186
1186
  });
1187
1187
  if (!content || !content.data) {
1188
- this.logger.error("主人呜呜 (;>_<) 女仆在执行 dynamicDetect 时获取动态内容失败啦~请主人帮女仆看看呀 (>ω<)♡");
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(`主人呜呜 (;>_<) 女仆在执行 dynamicDetect generateDynamicImg() 时推送卡片发送失败啦~原因:${e.message},请主人帮女仆看看呀 (>ω<)♡`);
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(`主人呜呜 (;>_<) 女仆在执行 dynamicDetect getAllDynamic() 时遇到错误啦~错误信息:${e.message},请主人帮女仆看看呀 (>ω<)♡`);
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("主人呜呜 (;>_<) 女仆发现账号被风控啦,插件已经停止工作~请主人输入指令 `bili cap` 并根据提示解除风控呀~女仆会乖乖等您完成的 (>ω<)♡");
1303
- await this.sendPrivateMsg("主人呜呜 (;>_<) 女仆发现账号被风控啦,插件已经停止工作~请主人输入指令 `bili cap` 并根据提示解除风控呀~女仆会乖乖等您完成的 (>ω<)♡");
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(`主人呜呜 (;>_<) 女仆在获取动态信息时遇到问题啦~错误码:${content.code},错误信息:${content.message},请主人排除问题后输入指令 \`bn start\` 重启插件呀~女仆会乖乖等着的 (>ω<)♡`);
1308
- await this.sendPrivateMsg(`主人呜呜 (;>_<) 女仆在获取动态信息时遇到问题啦~错误码:${content.code},错误信息:${content.message},请主人排除问题后输入指令 \`bn start\` 重启插件呀~女仆会乖乖等着的 (>ω<)♡`);
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(`主人呜呜 (;>_<) 女仆在执行 dynamicDetect generateDynamicImg() 时推送卡片发送失败啦~原因:${e.message},请主人帮女仆看看呀 (>ω<)♡`);
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(`主人呜呜 (;>_<) 女仆在执行 liveDetect getLiveRoomInfo 时遇到错误啦~错误信息:${e.message},请主人帮女仆看看呀 (>ω<)♡`);
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(`主人呜呜 (;>_<) 女仆在执行 liveDetect generateLiveImg() 时推送卡片生成失败啦~原因:${e.message},请主人帮女仆看看呀 (>ω<)♡`);
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("主人呜呜 (;>_<) 女仆发现热词不足50个呢,本次弹幕词云只好放弃啦 (>ω<)♡");
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("主人呜呜 (;>_<) 女仆发现发言人数不足5位呢,本次弹幕词云只好放弃啦 (>ω<)♡");
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(`主人呜呜 (;>_<) 女仆发现 [${sub.roomid}] 直播间连接发生错误啦,请主人帮女仆看看呀 (>ω<)♡`);
1574
- this.logger.error(`主人呜呜 (;>_<) 女仆发现 [${sub.roomid}] 直播间连接发生错误啦,请主人帮女仆看看呀 (>ω<)♡`);
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,21 +1657,26 @@ 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
+ if (pushAtTimeTimer) {
1669
+ pushAtTimeTimer();
1670
+ pushAtTimeTimer = null;
1671
+ this.liveWSManager.delete(sub.roomid);
1672
+ }
1668
1673
  if (!await useLiveRoomInfo(LiveType.StopBroadcast) && !await useMasterInfo(LiveType.StopBroadcast)) {
1669
1674
  liveStatus = false;
1670
- await this.sendPrivateMsg("主人呜呜 (;>_<) 女仆获取直播间信息失败啦,推送直播开播卡片也失败了,请主人帮女仆看看呀 (>ω<)♡");
1675
+ await this.sendPrivateMsg("主人呜呜,女仆获取直播间信息失败啦,推送直播开播卡片也失败了,请主人帮女仆看看呀!");
1671
1676
  return await this.sendPrivateMsgAndStopService();
1672
1677
  }
1673
1678
  liveStatus = false;
1674
- this.logger.info(`主人~女仆报告开播时粉丝数:${masterInfo.liveOpenFollowerNum},下播时粉丝数:${masterInfo.liveEndFollowerNum},粉丝数变化:${masterInfo.liveFollowerChange} 哦~女仆乖乖汇报完毕 (>ω<)♡`);
1679
+ this.logger.info(`主人~女仆报告开播时粉丝数:${masterInfo.liveOpenFollowerNum},下播时粉丝数:${masterInfo.liveEndFollowerNum},粉丝数变化:${masterInfo.liveFollowerChange} 哦~女仆乖乖汇报完毕`);
1675
1680
  liveTime = liveRoomInfo?.live_time || luxon.DateTime.now().toFormat("yyyy-MM-dd HH:mm:ss");
1676
1681
  const diffTime = await this.ctx["bilibili-notify-generate-img"].getTimeDifference(liveTime);
1677
1682
  const followerChange = (() => {
@@ -1689,15 +1694,10 @@ var ComRegister = class ComRegister {
1689
1694
  }, sub.uid, liveEndMsg);
1690
1695
  await sendDanmakuWordCloudAndLiveSummary(sub.customLiveSummary.liveSummary);
1691
1696
  }
1692
- if (pushAtTimeTimer) {
1693
- pushAtTimeTimer();
1694
- pushAtTimeTimer = null;
1695
- this.liveWSManager.delete(sub.roomid);
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: "主人呜呜 (;>_<) 女仆发现账号未登录哦~请主人使用指令 `bili login` 登录后再进行订阅操作呀 (>ω<)♡"
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: "主人呜呜 (;>_<) 女仆发现账号不存在哦~请主人检查 UID 输入是否正确,或者用户是否真的存在呀 (>ω<)♡"
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(`主人呜呜 (;>_<) 女仆发现账号异常,无法自动订阅 UID:${sub.uid} 哦~请主人手动订阅,然后把订阅移动到 "订阅" 分组里呀 (>ω<)♡`);
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(`主人呜呜 (;>_<) 女仆在执行 loadSubFromConfig() 的 getUserInfo() 时发生错误啦~错误信息:${e.message},请主人帮女仆看看呀 (>ω<)♡`);
1912
+ this.logger.error(`主人呜呜,女仆在执行 loadSubFromConfig() 的 getUserInfo() 时发生错误啦~错误信息:${e.message},请主人帮女仆看看呀!`);
1913
1913
  return {
1914
1914
  code: -1,
1915
- message: `主人呜呜 (;>_<) 女仆加载订阅 UID:${sub.uid} 失败啦~请主人帮女仆看看呀 (>ω<)♡`
1915
+ message: `主人呜呜,女仆加载订阅 UID:${sub.uid} 失败啦~请主人帮女仆看看呀!`
1916
1916
  };
1917
1917
  });
1918
1918
  if (userInfoCode === -352 && userInfoData.v_voucher) {
1919
- this.logger.info("主人呜呜 (;>_<) 女仆发现账号被风控啦~请主人使用指令 `bili cap` 进行风控验证呀 (>ω<)♡");
1920
- await this.sendPrivateMsg("主人呜呜 (;>_<) 女仆发现账号被风控啦~请主人使用指令 `bili cap` 进行风控验证呀 (>ω<)♡");
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() {
@@ -2023,7 +2023,7 @@ var command_register_default = ComRegister;
2023
2023
 
2024
2024
  //#endregion
2025
2025
  //#region src/database.ts
2026
- var database_exports = /* @__PURE__ */ __export({
2026
+ var database_exports = /* @__PURE__ */ __exportAll({
2027
2027
  apply: () => apply$1,
2028
2028
  name: () => name$1
2029
2029
  });
@@ -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 哦~