koishi-plugin-bilibili-notify 3.0.0-alpha.2 → 3.0.0-alpha.20

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/blive.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Awaitable, Context, Schema, Service } from "koishi";
1
+ import { Awaitable, Context, Service } from "koishi";
2
2
  import { type MsgHandler } from 'blive-message-listener';
3
3
  declare module 'koishi' {
4
4
  interface Context {
@@ -7,18 +7,10 @@ declare module 'koishi' {
7
7
  }
8
8
  declare class BLive extends Service {
9
9
  static inject: string[];
10
- private blConfig;
11
10
  private listenerRecord;
12
- private timerRecord;
13
- constructor(ctx: Context, config: BLive.Config);
11
+ constructor(ctx: Context);
14
12
  protected stop(): Awaitable<void>;
15
- startLiveRoomListener(roomId: string, handler: MsgHandler, danmakuPushTime: () => void): Promise<void>;
13
+ startLiveRoomListener(roomId: string, handler: MsgHandler): Promise<void>;
16
14
  closeListener(roomId: string): void;
17
15
  }
18
- declare namespace BLive {
19
- interface Config {
20
- danmakuPushTime: number;
21
- }
22
- const Config: Schema<Config>;
23
- }
24
16
  export default BLive;
package/lib/blive.js CHANGED
@@ -5,16 +5,11 @@ const blive_message_listener_1 = require("blive-message-listener");
5
5
  class BLive extends koishi_1.Service {
6
6
  // 必要服务
7
7
  static inject = ['ba'];
8
- // 配置
9
- blConfig;
10
8
  // 定义类属性
11
9
  listenerRecord = {};
12
- timerRecord = {};
13
- constructor(ctx, config) {
10
+ constructor(ctx) {
14
11
  // Extends super
15
12
  super(ctx, 'bl');
16
- // 将config赋值给类属性
17
- this.blConfig = config;
18
13
  }
19
14
  // 注册插件dispose逻辑
20
15
  stop() {
@@ -23,7 +18,7 @@ class BLive extends koishi_1.Service {
23
18
  this.closeListener(key);
24
19
  }
25
20
  }
26
- async startLiveRoomListener(roomId, handler, danmakuPushTime) {
21
+ async startLiveRoomListener(roomId, handler) {
27
22
  // 获取cookieStr
28
23
  const cookiesStr = await this.ctx.ba.getCookiesForHeader();
29
24
  // 获取自身信息
@@ -37,8 +32,6 @@ class BLive extends koishi_1.Service {
37
32
  uid: mySelfInfo.data.mid
38
33
  }
39
34
  });
40
- // 默认30s推送一次弹幕消息到群组并将dispose函数保存到Record中
41
- this.timerRecord[roomId] = this.ctx.setInterval(danmakuPushTime, this.blConfig.danmakuPushTime * 1000 * 60);
42
35
  // logger
43
36
  this.logger.info(`${roomId}直播间弹幕监听已开启`);
44
37
  }
@@ -48,21 +41,12 @@ class BLive extends koishi_1.Service {
48
41
  // 输出logger
49
42
  this.logger.info(`${roomId}直播间弹幕监听器无需关闭`);
50
43
  }
51
- // 判断消息发送定时器是否关闭
52
- if (!this.timerRecord || !this.timerRecord[roomId]) {
53
- // 输出logger
54
- this.logger.info(`${roomId}直播间消息发送定时器无需关闭`);
55
- }
56
44
  // 关闭直播间监听器
57
45
  this.listenerRecord[roomId].close();
58
- // 关闭消息发送定时器
59
- this.timerRecord[roomId]();
60
46
  // 判断是否关闭成功
61
47
  if (this.listenerRecord[roomId].closed) {
62
48
  // 删除直播间监听器
63
49
  delete this.listenerRecord[roomId];
64
- // 删除消息发送定时器
65
- delete this.timerRecord[roomId];
66
50
  // 输出logger
67
51
  this.logger.info(`${roomId}直播间弹幕监听已关闭`);
68
52
  // 直接返回
@@ -72,10 +56,4 @@ class BLive extends koishi_1.Service {
72
56
  this.logger.warn(`${roomId}直播间弹幕监听未成功关闭`);
73
57
  }
74
58
  }
75
- // eslint-disable-next-line @typescript-eslint/no-namespace
76
- (function (BLive) {
77
- BLive.Config = koishi_1.Schema.object({
78
- danmakuPushTime: koishi_1.Schema.number().required()
79
- });
80
- })(BLive || (BLive = {}));
81
59
  exports.default = BLive;
@@ -1,40 +1,13 @@
1
- import { Bot, Context, FlatPick, Logger, Schema, Session } from "koishi";
2
- import { Notifier } from "@koishijs/plugin-notifier";
3
- import { LoginBili } from "./database";
4
- declare enum LiveType {
5
- NotLiveBroadcast = 0,
6
- StartBroadcasting = 1,
7
- LiveBroadcast = 2,
8
- StopBroadcast = 3
9
- }
10
- type ChannelIdArr = Array<{
11
- channelId: string;
12
- dynamic: boolean;
13
- live: boolean;
14
- liveDanmaku: boolean;
15
- atAll: boolean;
16
- }>;
17
- type TargetItem = {
18
- channelIdArr: ChannelIdArr;
19
- platform: string;
20
- };
21
- type Target = Array<TargetItem>;
22
- type SubItem = {
23
- id: number;
24
- uid: string;
25
- roomId: string;
26
- target: Target;
27
- platform: string;
28
- live: boolean;
29
- dynamic: boolean;
30
- };
31
- type SubManager = Array<SubItem>;
1
+ import { type Bot, type Context, type FlatPick, type Logger, Schema } from "koishi";
2
+ import type { Notifier } from "@koishijs/plugin-notifier";
3
+ import type { LoginBili } from "./database";
4
+ import { LiveType, type MasterInfo, type SubManager, type Target } from "./type";
32
5
  declare class ComRegister {
33
6
  static inject: string[];
34
7
  qqRelatedBotList: Array<string>;
35
8
  logger: Logger;
36
9
  config: ComRegister.Config;
37
- loginTimer: Function;
10
+ loginTimer: () => void;
38
11
  num: number;
39
12
  rebootCount: number;
40
13
  subNotifier: Notifier;
@@ -42,12 +15,13 @@ declare class ComRegister {
42
15
  subManager: SubManager;
43
16
  loginDBData: FlatPick<LoginBili, "dynamic_group_id">;
44
17
  privateBot: Bot<Context>;
45
- dynamicDispose: Function;
18
+ dynamicDispose: () => void;
19
+ liveDispose: () => void;
46
20
  sendMsgFunc: (bot: Bot<Context, any>, channelId: string, content: any) => Promise<void>;
47
21
  constructor(ctx: Context, config: ComRegister.Config);
48
22
  init(config: ComRegister.Config): Promise<void>;
49
- splitMultiPlatformStr(str: string): Target;
50
23
  getBot(pf: string): Bot<Context, any>;
24
+ test_wordCloud(): Promise<void>;
51
25
  sendPrivateMsg(content: string): Promise<void>;
52
26
  sendPrivateMsgAndRebootService(): Promise<void>;
53
27
  sendPrivateMsgAndStopService(): Promise<void>;
@@ -59,17 +33,11 @@ declare class ComRegister {
59
33
  userface: string;
60
34
  target: Target;
61
35
  data: any;
62
- }, liveType: LiveType, liveNotifyMsg?: string): Promise<void>;
63
- useMasterInfo(uid: string): Promise<{
64
- username: string;
65
- userface: string;
66
- roomId: number;
67
- }>;
36
+ }, liveType: LiveType, followerDisplay: string, liveNotifyMsg?: string): Promise<void>;
37
+ useMasterInfo(uid: string, masterInfo: MasterInfo, liveType: LiveType): Promise<MasterInfo>;
68
38
  useLiveRoomInfo(roomId: string): Promise<any>;
69
- liveDetectWithAPI(): Promise<() => Promise<void>>;
70
39
  liveDetectWithListener(roomId: string, target: Target): Promise<void>;
71
40
  subShow(): string;
72
- checkIfNeedSub(liveSub: boolean, dynamicSub: boolean, session: Session, liveRoomData: any): Promise<Array<boolean>>;
73
41
  updateSubNotifier(): void;
74
42
  checkIfLoginInfoIsLoaded(): Promise<unknown>;
75
43
  subUserInBili(mid: string): Promise<{
@@ -77,12 +45,8 @@ declare class ComRegister {
77
45
  msg: string;
78
46
  }>;
79
47
  loadSubFromConfig(subs: ComRegister.Config["sub"]): Promise<void>;
80
- loadSubFromDatabase(): Promise<void>;
81
48
  checkIfDynamicDetectIsNeeded(): void;
82
49
  enableDynamicDetect(): void;
83
- unsubSingle(id: string, type: number): string;
84
- checkIfUserIsTheLastOneWhoSubDyn(): void;
85
- unsubAll(uid: string): void;
86
50
  checkIfIsLogin(): Promise<boolean>;
87
51
  }
88
52
  declare namespace ComRegister {
@@ -96,7 +60,7 @@ declare namespace ComRegister {
96
60
  channelId: string;
97
61
  dynamic: boolean;
98
62
  live: boolean;
99
- liveDanmaku: boolean;
63
+ liveGuardBuy: boolean;
100
64
  atAll: boolean;
101
65
  }>;
102
66
  platform: string;
@@ -108,8 +72,8 @@ declare namespace ComRegister {
108
72
  masterAccount: string;
109
73
  masterAccountGuildId: string;
110
74
  };
111
- unlockSubLimits: boolean;
112
75
  automaticResend: boolean;
76
+ liveDetectMode: "API" | "WS";
113
77
  restartPush: boolean;
114
78
  pushTime: number;
115
79
  liveLoopTime: number;
@@ -118,7 +82,6 @@ declare namespace ComRegister {
118
82
  customLiveEnd: string;
119
83
  dynamicUrl: boolean;
120
84
  dynamicLoopTime: number;
121
- dynamicCheckNumber: number;
122
85
  filter: {
123
86
  enable: boolean;
124
87
  notify: boolean;