koishi-plugin-bilibili-notify 2.0.0-alpha.1 → 2.0.0-alpha.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.
@@ -179,6 +179,7 @@
179
179
 
180
180
  - ver 2.0.0-alpha.0 重构:对动态订阅进行了重构,优化了订阅流程
181
181
  - ver 2.0.0-alpha.1 修复bug:无法成功取消订阅自己、用户没有直播间订阅直播出错。对直播订阅进行了限制,继承自以前的unlockSubLimits配置项。优化了一些配置项
182
+ - ver 2.0.0-alpha.2 新增:支持Discord平台。优化了下播通知
182
183
 
183
184
  ## 交流群
184
185
 
@@ -10,12 +10,12 @@ const jsx_runtime_1 = require("@satorijs/element/jsx-runtime");
10
10
  const koishi_1 = require("koishi");
11
11
  // 导入qrcode
12
12
  const qrcode_1 = __importDefault(require("qrcode"));
13
- const jimp_1 = require("jimp");
14
13
  var LiveType;
15
14
  (function (LiveType) {
16
15
  LiveType[LiveType["NotLiveBroadcast"] = 0] = "NotLiveBroadcast";
17
16
  LiveType[LiveType["StartBroadcasting"] = 1] = "StartBroadcasting";
18
17
  LiveType[LiveType["LiveBroadcast"] = 2] = "LiveBroadcast";
18
+ LiveType[LiveType["StopBroadcast"] = 3] = "StopBroadcast";
19
19
  })(LiveType || (LiveType = {}));
20
20
  class ComRegister {
21
21
  static inject = ['ba', 'gi', 'database', 'sm'];
@@ -283,7 +283,8 @@ class ComRegister {
283
283
  case 'satori':
284
284
  case 'chronocat':
285
285
  case 'qq':
286
- case 'qqguild': break;
286
+ case 'qqguild':
287
+ case 'discord': break;
287
288
  default: return '暂不支持该平台';
288
289
  }
289
290
  // 检查是否登录
@@ -1217,22 +1218,8 @@ class ComRegister {
1217
1218
  const liveEndMsg = this.config.customLiveEnd
1218
1219
  .replace('-name', username)
1219
1220
  .replace('-time', await ctx.gi.getTimeDifference(liveTime));
1220
- // 获取头像并缩放
1221
- let resizedImage;
1222
- // Jimp无法处理Webp格式,直接跳过
1223
- try {
1224
- resizedImage = await jimp_1.Jimp.read(userface).then(async (image) => {
1225
- return await image.resize({ w: 100, h: 100 }).getBuffer(jimp_1.JimpMime.png);
1226
- });
1227
- }
1228
- catch (e) {
1229
- if (e.message === 'Unsupported MIME type: image/webp')
1230
- console.log('主播使用的是webp格式头像,无法进行渲染');
1231
- else
1232
- console.log(e);
1233
- }
1234
- // 发送下播通知
1235
- await this.sendMsg(guildId, (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [resizedImage && koishi_1.h.image(resizedImage, 'image/png'), " ", liveEndMsg] }));
1221
+ // 发送@全体成员通知
1222
+ await sendLiveNotifyCard(data, LiveType.StartBroadcasting, liveEndMsg);
1236
1223
  }
1237
1224
  // 未进循环,还未开播,继续循环
1238
1225
  break;
@@ -44,14 +44,7 @@ class GenerateImg extends koishi_1.Service {
44
44
  super(ctx, 'gi');
45
45
  this.giConfig = config;
46
46
  }
47
- /* protected start(): void | Promise<void> {
48
- this.logger.info('工作中');
49
- }
50
-
51
- protected stop(): void | Promise<void> {
52
- this.logger.info('已停止工作')
53
- } */
54
- async generateLiveImg(data, username, userface, liveStatus /*0未开播 1刚开播 2已开播 */) {
47
+ async generateLiveImg(data, username, userface, liveStatus /*0未开播 1刚开播 2已开播 3停止直播*/) {
55
48
  const [titleStatus, liveTime, cover] = await this.getLiveStatus(data.live_time, liveStatus);
56
49
  // 加载字体
57
50
  const fontURL = (0, url_1.pathToFileURL)((0, path_1.resolve)(__dirname, 'font/HYZhengYuan-75W.ttf'));
@@ -1437,6 +1430,12 @@ class GenerateImg extends koishi_1.Service {
1437
1430
  cover = false;
1438
1431
  break;
1439
1432
  }
1433
+ case 3: {
1434
+ titleStatus = '下播啦';
1435
+ liveTime = `直播时长:${await this.getTimeDifference(time)}`;
1436
+ cover = true;
1437
+ break;
1438
+ }
1440
1439
  }
1441
1440
  return [titleStatus, liveTime, cover];
1442
1441
  }
package/lib/index.d.ts CHANGED
@@ -9,7 +9,7 @@ declare module 'koishi' {
9
9
  export interface Config {
10
10
  require: {};
11
11
  key: string;
12
- platform: 'qq' | 'qqguild' | 'onebot' | 'red' | 'telegram' | 'satori' | 'chronocat' | 'lark';
12
+ platform: 'qq' | 'qqguild' | 'onebot' | 'discord' | 'red' | 'telegram' | 'satori' | 'chronocat' | 'lark';
13
13
  master: {};
14
14
  basicSettings: {};
15
15
  unlockSubLimits: boolean;
package/lib/index.js CHANGED
@@ -57,10 +57,10 @@ exports.Config = koishi_1.Schema.object({
57
57
  .role('secret')
58
58
  .required()
59
59
  .description('请输入一个32位小写字母的十六进制密钥(例如:9b8db7ae562b9864efefe06289cc5530),使用此密钥将你的B站登录信息存储在数据库中,请一定保存好此密钥。如果你忘记了此密钥,必须重新登录。你可以自行生成,或到这个网站生成:https://www.sexauth.com/'),
60
- platform: koishi_1.Schema.union(['qq', 'qqguild', 'onebot', 'red', 'telegram', 'satori', 'chronocat', 'lark'])
60
+ platform: koishi_1.Schema.union(['qq', 'qqguild', 'onebot', 'discord', 'red', 'telegram', 'satori', 'chronocat', 'lark'])
61
61
  .role('')
62
62
  .required()
63
- .description('请选择你的机器人平台,目前支持QQ、QQ群、OneBot、RedBot、Telegram、Satori、ChronoCat、Lark。从2.0版本开始,只能在一个平台下使用本插件'),
63
+ .description('请选择你的机器人平台,目前支持QQ、QQ群、OneBot、Discord、RedBot、Telegram、Satori、ChronoCat、Lark。从2.0版本开始,只能在一个平台下使用本插件'),
64
64
  master: koishi_1.Schema.intersect([
65
65
  koishi_1.Schema.object({
66
66
  enable: koishi_1.Schema.boolean()
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": "2.0.0-alpha.1",
4
+ "version": "2.0.0-alpha.2",
5
5
  "contributors": [
6
6
  "Akokko <admin@akokko.com>"
7
7
  ],
@@ -29,7 +29,6 @@
29
29
  "dependencies": {
30
30
  "axios": "^1.7.9",
31
31
  "axios-cookiejar-support": "^5.0.5",
32
- "jimp": "^1.6.0",
33
32
  "jsdom": "^24.1.3",
34
33
  "luxon": "^3.5.0",
35
34
  "md5": "^2.3.0",