koishi-plugin-bilibili-notify 3.1.3-alpha.0 → 3.1.4-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -491,8 +491,10 @@ class ComRegister {
491
491
  let detectSetup = true;
492
492
  // 时间线
493
493
  let timeline;
494
- // 第一条动态的动态ID
495
- let dynamicIdStr1st;
494
+ // 当前推送动态时间线
495
+ let currentTimeline;
496
+ // 动态ID
497
+ let dynId;
496
498
  // 定义handler
497
499
  const handler = async () => {
498
500
  // 动态监测启动初始化
@@ -514,7 +516,7 @@ class ComRegister {
514
516
  if (content.code !== 0)
515
517
  return;
516
518
  // 设置第一条动态的动态ID
517
- dynamicIdStr1st = content.data?.items[0]?.id_str || "0";
519
+ dynId = content.data?.items[0]?.id_str || "0";
518
520
  // 设置时间线
519
521
  timeline =
520
522
  content.data?.items[0]?.modules.module_author.pub_ts ||
@@ -590,7 +592,7 @@ class ComRegister {
590
592
  // 获取动态ID
591
593
  const dynamicId = item.id_str;
592
594
  // 动态ID如果一致则结束循环
593
- if (dynamicId === dynamicIdStr1st)
595
+ if (dynamicId === dynId)
594
596
  break;
595
597
  // 获取动态发布时间
596
598
  const postTime = item.modules.module_author.pub_ts;
@@ -643,8 +645,13 @@ class ComRegister {
643
645
  let dUrl = "";
644
646
  // 判断是否需要发送URL
645
647
  if (this.config.dynamicUrl) {
646
- // 生成动态链接
647
- dUrl = `${upName}发布了一条动态:https://t.bilibili.com/${dynamicId}`;
648
+ if (item.type === "DYNAMIC_TYPE_AV") {
649
+ dUrl = `${upName}发布了新视频:${item.modules.module_dynamic.major.archive.jump_url}`;
650
+ }
651
+ else {
652
+ // 生成动态链接
653
+ dUrl = `${upName}发布了一条动态:https://t.bilibili.com/${dynamicId}`;
654
+ }
648
655
  }
649
656
  // logger
650
657
  this.logger.info("推送动态中...");
@@ -661,16 +668,22 @@ class ComRegister {
661
668
  }
662
669
  }
663
670
  }
671
+ // 设置timeline
672
+ currentTimeline = postTime;
664
673
  // logger
665
674
  this.logger.info("动态推送完毕!");
666
675
  }
667
676
  }
668
677
  }
669
- // 更新本次请求第一条动态的动态ID
670
- dynamicIdStr1st = items[0].id_str;
671
678
  // 更新时间线
672
- timeline =
673
- items[0].modules.module_author.pub_ts || luxon_1.DateTime.now().toSeconds();
679
+ if (currentTimeline) {
680
+ timeline = currentTimeline;
681
+ currentTimeline = null;
682
+ }
683
+ // 设置动态ID
684
+ if (items[0].id_str && items[0].id_str !== dynId) {
685
+ dynId = items[0].id_str;
686
+ }
674
687
  };
675
688
  // 返回一个闭包函数
676
689
  return (0, utils_1.withLock)(handler);
@@ -680,8 +693,10 @@ class ComRegister {
680
693
  let detectSetup = true;
681
694
  // 时间线
682
695
  let timeline;
683
- // 第一条动态的动态ID
684
- let dynamicIdStr1st;
696
+ // 当前推送动态时间线
697
+ let currentTimeline;
698
+ // 动态ID
699
+ let dynId;
685
700
  // 定义handler
686
701
  const handler = async () => {
687
702
  // 动态监测启动初始化
@@ -711,9 +726,9 @@ class ComRegister {
711
726
  return;
712
727
  }
713
728
  // 设置第一条动态的动态ID
714
- dynamicIdStr1st = content.data?.items[0]?.id_str || "0";
729
+ dynId = content.data?.items[0]?.id_str || "0";
715
730
  // logger
716
- this.logger.info(`获取到第一条动态ID:${dynamicIdStr1st}`);
731
+ this.logger.info(`获取到第一条动态ID:${dynId}`);
717
732
  // 设置时间线
718
733
  timeline =
719
734
  content.data?.items[0]?.modules.module_author.pub_ts ||
@@ -803,11 +818,12 @@ class ComRegister {
803
818
  const dynamicId = item.id_str;
804
819
  // logger
805
820
  this.logger.info(`当前动态ID:${dynamicId}`);
806
- this.logger.info(`上一次获取到第一条动态ID:${dynamicId}`);
821
+ this.logger.info(`上次第一条推送的动态ID:${dynId}`);
807
822
  // 动态ID如果一致则结束循环
808
- if (dynamicId === dynamicIdStr1st) {
823
+ if (dynamicId === dynId) {
809
824
  // logger
810
- this.logger.info("动态ID与上一次获取第一条一致,结束循环");
825
+ this.logger.info("动态ID与上次第一条推送动态一致,结束循环");
826
+ // 结束循环
811
827
  break;
812
828
  }
813
829
  // 获取动态发布时间
@@ -828,7 +844,7 @@ class ComRegister {
828
844
  break;
829
845
  }
830
846
  // logger
831
- this.logger.info("动态时间线大于上一次获取到第一条动态时间线,开始判断是否是订阅的UP主...");
847
+ this.logger.info("动态时间线大于最后推送动态时间线,开始判断是否是订阅的UP主...");
832
848
  // 从动态数据中取出UP主名称、UID
833
849
  const upUID = item.modules.module_author.mid.toString();
834
850
  const upName = item.modules.module_author.name;
@@ -885,8 +901,13 @@ class ComRegister {
885
901
  if (this.config.dynamicUrl) {
886
902
  // logger
887
903
  this.logger.info("生成动态链接中...");
888
- // 生成动态链接
889
- dUrl = `${upName}发布了一条动态:https://t.bilibili.com/${dynamicId}`;
904
+ if (item.type === "DYNAMIC_TYPE_AV") {
905
+ dUrl = `${upName}发布了新视频:${item.modules.module_dynamic.major.archive.jump_url}`;
906
+ }
907
+ else {
908
+ // 生成动态链接
909
+ dUrl = `${upName}发布了一条动态:https://t.bilibili.com/${item.id_str}`;
910
+ }
890
911
  }
891
912
  // logger
892
913
  this.logger.info("推送动态中...");
@@ -907,6 +928,8 @@ class ComRegister {
907
928
  // logger
908
929
  this.logger.info("图片推送完毕!");
909
930
  }
931
+ // 设置timeline
932
+ currentTimeline = postTime;
910
933
  // logger
911
934
  this.logger.info("动态推送完毕!");
912
935
  }
@@ -916,15 +939,22 @@ class ComRegister {
916
939
  this.logger.info("不是关注的UP主,跳过该动态");
917
940
  }
918
941
  }
919
- // 更新本次请求第一条动态的动态ID
920
- dynamicIdStr1st = items[0].id_str;
921
- // logger
922
- this.logger.info(`更新本次请求第一条动态的动态ID:${dynamicIdStr1st}`);
923
942
  // 更新时间线
924
- timeline =
925
- items[0].modules.module_author.pub_ts || luxon_1.DateTime.now().toSeconds();
926
- // logger
927
- this.logger.info(`更新时间线:${timeline}`);
943
+ if (currentTimeline) {
944
+ timeline = currentTimeline;
945
+ currentTimeline = null;
946
+ // logger
947
+ this.logger.info(`更新时间线:${timeline}`);
948
+ }
949
+ else {
950
+ this.logger.info("时间线无需更新!");
951
+ }
952
+ // 更新动态ID
953
+ if (items[0].id_str && items[0].id_str !== dynId) {
954
+ dynId = items[0].id_str;
955
+ // logger
956
+ this.logger.info(`更新动态ID:${dynId}`);
957
+ }
928
958
  // logger
929
959
  this.logger.info(`时间线格式化:${luxon_1.DateTime.fromSeconds(timeline).toFormat("yyyy-MM-dd HH:mm:ss")}`);
930
960
  // logger
@@ -1427,10 +1457,8 @@ class ComRegister {
1427
1457
  return { code: 0, msg: "订阅对象添加成功" };
1428
1458
  },
1429
1459
  };
1430
- // 获取函数
1431
- const func = subUserMatchPattern[subUserData.code];
1432
1460
  // 执行函数并返回
1433
- return await func();
1461
+ return await subUserMatchPattern[subUserData.code]();
1434
1462
  }
1435
1463
  async loadSubFromConfig(subs) {
1436
1464
  for (const sub of subs) {
@@ -75,12 +75,25 @@ export type AllDynamicInfo = {
75
75
  };
76
76
  module_dynamic: {
77
77
  major: {
78
- draw: {
78
+ draw?: {
79
79
  items: Array<{
80
80
  src: string;
81
81
  alt: string;
82
82
  }>;
83
83
  };
84
+ archive?: {
85
+ aid: string;
86
+ badge: Object;
87
+ bvid: string;
88
+ cover: string;
89
+ desc: string;
90
+ disable_preview: number;
91
+ duration_text: string;
92
+ jump_url: string;
93
+ stat: string;
94
+ title: string;
95
+ type: number;
96
+ };
84
97
  };
85
98
  };
86
99
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "koishi-plugin-bilibili-notify",
3
3
  "description": "Koishi bilibili notify plugin",
4
- "version": "3.1.3-alpha.0",
4
+ "version": "3.1.4-alpha.0",
5
5
  "contributors": [
6
6
  "Akokko <admin@akokko.com>"
7
7
  ],
package/readme.md CHANGED
@@ -236,6 +236,7 @@ uid为必填参数,为要推送的UP主的UID,index为可选参数,为要
236
236
  - ver 3.1.1-alpha.0 修复:稿件重投后,会将之前日期的动态一起推送; 优化:加强动态debug输出; 移除:不必要选项 `live.liveDetectMode`
237
237
  - ver 3.1.2-alpha.0 重构:对消息发送模块进行小型重构,多群多平台推送将不再支持艾特全体成员,仅单平台单群聊支持; 移除:群聊 `all` 选项
238
238
  - ver 3.1.3-alpha.0 移除:订阅超时; 新增:屏蔽专栏动态功能; 优化:改进了加载插件的错误提示;
239
+ - ver 3.1.4-alpha.0 修复:动态只推送视频; 优化:动态视频链接将直接发送为视频链接;
239
240
 
240
241
  ## 交流群
241
242