koishi-plugin-bilibili-notify 1.2.2-beta.1 → 1.2.3-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.
- package/lib/biliAPI.d.ts +1 -0
- package/lib/biliAPI.js +5 -1
- package/lib/comRegister.d.ts +7 -0
- package/lib/comRegister.js +92 -18
- package/lib/font/HYZhengYuan-75W.ttf +0 -0
- package/lib/generateImg.d.ts +1 -0
- package/lib/generateImg.js +4 -1
- package/lib/index.d.ts +16 -1
- package/lib/index.js +64 -20
- package/lib/serverManager.d.ts +0 -0
- package/lib/serverManager.js +0 -0
- package/package.json +1 -1
- package/readme.md +2 -0
package/lib/biliAPI.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ declare class BiliAPI extends Service {
|
|
|
16
16
|
loginInfoIsLoaded: boolean;
|
|
17
17
|
constructor(ctx: Context);
|
|
18
18
|
protected start(): void | Promise<void>;
|
|
19
|
+
protected stop(): void | Promise<void>;
|
|
19
20
|
getServerUTCTime(): Promise<number>;
|
|
20
21
|
getTimeNow(): Promise<any>;
|
|
21
22
|
getUserSpaceDynamic(mid: string): Promise<any>;
|
package/lib/biliAPI.js
CHANGED
|
@@ -38,7 +38,11 @@ class BiliAPI extends koishi_1.Service {
|
|
|
38
38
|
this.createNewClient();
|
|
39
39
|
// 从数据库加载cookies
|
|
40
40
|
this.loadCookiesFromDatabase();
|
|
41
|
-
//
|
|
41
|
+
// logger
|
|
42
|
+
// this.logger.info('工作中')
|
|
43
|
+
}
|
|
44
|
+
stop() {
|
|
45
|
+
// this.logger.info('已停止工作')
|
|
42
46
|
}
|
|
43
47
|
async getServerUTCTime() {
|
|
44
48
|
try {
|
package/lib/comRegister.d.ts
CHANGED
|
@@ -26,6 +26,8 @@ declare class ComRegister {
|
|
|
26
26
|
satoriBot: Bot<Context>;
|
|
27
27
|
chronocatBot: Bot<Context>;
|
|
28
28
|
constructor(ctx: Context, config: ComRegister.Config);
|
|
29
|
+
sendErr(guildId: Array<string>, bot: Bot<Context>, content: string): Promise<void>;
|
|
30
|
+
sendErrAndRebootService(guildId: Array<string>, bot: Bot<Context>, ctx: Context, content: string): void;
|
|
29
31
|
dynamicDetect(ctx: Context, bot: Bot<Context>, uid: string, guildId: Array<string>): () => Promise<void>;
|
|
30
32
|
sendMsg(targets: Array<string>, bot: Bot<Context>, content: any): Promise<void>;
|
|
31
33
|
liveDetect(ctx: Context, bot: Bot<Context>, roomId: string, guildId: Array<string>): () => Promise<void>;
|
|
@@ -39,6 +41,11 @@ declare class ComRegister {
|
|
|
39
41
|
}
|
|
40
42
|
declare namespace ComRegister {
|
|
41
43
|
interface Config {
|
|
44
|
+
master: {
|
|
45
|
+
enable: boolean;
|
|
46
|
+
masterAccount: string;
|
|
47
|
+
masterAccountGuildId: string;
|
|
48
|
+
};
|
|
42
49
|
unlockSubLimits: boolean;
|
|
43
50
|
liveStartAtAll: boolean;
|
|
44
51
|
pushTime: number;
|
package/lib/comRegister.js
CHANGED
|
@@ -14,7 +14,7 @@ var LiveType;
|
|
|
14
14
|
LiveType[LiveType["LiveBroadcast"] = 2] = "LiveBroadcast";
|
|
15
15
|
})(LiveType || (LiveType = {}));
|
|
16
16
|
class ComRegister {
|
|
17
|
-
static inject = ['biliAPI', 'gimg', 'wbi', 'database'];
|
|
17
|
+
static inject = ['biliAPI', 'gimg', 'wbi', 'database', 'sm'];
|
|
18
18
|
logger;
|
|
19
19
|
config;
|
|
20
20
|
loginTimer;
|
|
@@ -360,7 +360,7 @@ class ComRegister {
|
|
|
360
360
|
msg = '请求错误';
|
|
361
361
|
break;
|
|
362
362
|
case -403:
|
|
363
|
-
msg = '
|
|
363
|
+
msg = '访问权限不足,请尝试重新登录';
|
|
364
364
|
break;
|
|
365
365
|
case -404:
|
|
366
366
|
msg = '用户不存在';
|
|
@@ -479,7 +479,8 @@ class ComRegister {
|
|
|
479
479
|
userData = data;
|
|
480
480
|
}
|
|
481
481
|
catch (e) {
|
|
482
|
-
|
|
482
|
+
this.logger.error('bili sub指令 getMasterInfo() 网络请求失败,原因:' + e.toString());
|
|
483
|
+
return '订阅出错啦,请重试';
|
|
483
484
|
}
|
|
484
485
|
// 需要订阅直播
|
|
485
486
|
if (liveMsg) {
|
|
@@ -625,7 +626,7 @@ class ComRegister {
|
|
|
625
626
|
session.send('未找到该房间');
|
|
626
627
|
}
|
|
627
628
|
else {
|
|
628
|
-
session.send('
|
|
629
|
+
session.send('未知错误');
|
|
629
630
|
}
|
|
630
631
|
return;
|
|
631
632
|
}
|
|
@@ -652,6 +653,30 @@ class ComRegister {
|
|
|
652
653
|
});
|
|
653
654
|
});
|
|
654
655
|
}
|
|
656
|
+
async sendErr(guildId, bot, content) {
|
|
657
|
+
if (this.config.master.enable) {
|
|
658
|
+
if (this.config.master.masterAccountGuildId) {
|
|
659
|
+
// 向机器人主人发送消息
|
|
660
|
+
await bot.sendPrivateMessage(this.config.master.masterAccount, content, this.config.master.masterAccountGuildId);
|
|
661
|
+
}
|
|
662
|
+
else {
|
|
663
|
+
// 向机器人主人发送消息
|
|
664
|
+
await bot.sendPrivateMessage(this.config.master.masterAccount, content);
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
else {
|
|
668
|
+
await this.sendMsg(guildId, bot, content);
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
sendErrAndRebootService(guildId, bot, ctx, content) {
|
|
672
|
+
this.sendErr(guildId, bot, content);
|
|
673
|
+
// 停用插件
|
|
674
|
+
ctx.sm.disposePlugin();
|
|
675
|
+
// 隔一秒启动插件
|
|
676
|
+
ctx.setTimeout(() => {
|
|
677
|
+
ctx.sm.registerPlugin();
|
|
678
|
+
}, 1000);
|
|
679
|
+
}
|
|
655
680
|
dynamicDetect(ctx, bot, uid, guildId) {
|
|
656
681
|
let firstSubscription = true;
|
|
657
682
|
let timePoint;
|
|
@@ -731,11 +756,11 @@ class ComRegister {
|
|
|
731
756
|
// 如果pic存在,则直接返回pic
|
|
732
757
|
if (pic) {
|
|
733
758
|
// pic存在,使用的是render模式
|
|
734
|
-
await this.sendMsg(guildId, bot, pic +
|
|
759
|
+
await this.sendMsg(guildId, bot, pic + dUrl);
|
|
735
760
|
}
|
|
736
761
|
else {
|
|
737
762
|
// pic不存在,说明使用的是page模式
|
|
738
|
-
await this.sendMsg(guildId, bot, koishi_1.h.image(buffer, 'image/png' +
|
|
763
|
+
await this.sendMsg(guildId, bot, koishi_1.h.image(buffer, 'image/png' + dUrl));
|
|
739
764
|
}
|
|
740
765
|
// 如果成功,那么跳出循环
|
|
741
766
|
break;
|
|
@@ -743,7 +768,12 @@ class ComRegister {
|
|
|
743
768
|
catch (e) {
|
|
744
769
|
this.logger.error('dynamicDetect generateLiveImg() 推送卡片发送失败,原因:' + e.toString());
|
|
745
770
|
if (i === attempts - 1) { // 如果已经尝试了三次,那么抛出错误
|
|
746
|
-
return this.sendMsg(
|
|
771
|
+
/* return this.sendMsg(
|
|
772
|
+
guildId,
|
|
773
|
+
bot,
|
|
774
|
+
'插件可能出现某些未知错误,请尝试重启插件,如果仍然发生该错误,请带着日志向作者反馈'
|
|
775
|
+
) */
|
|
776
|
+
this.sendErrAndRebootService(guildId, bot, ctx, '插件可能出现某些未知错误,请尝试重启插件,如果仍然发生该错误,请带着日志向作者反馈');
|
|
747
777
|
}
|
|
748
778
|
}
|
|
749
779
|
}
|
|
@@ -794,14 +824,14 @@ class ComRegister {
|
|
|
794
824
|
if (pic)
|
|
795
825
|
return await this.sendMsg(guildId, bot, pic + (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("at", { type: "all" }), " ", liveStartMsg, " "] }));
|
|
796
826
|
// pic不存在,说明使用的是page模式
|
|
797
|
-
await this.sendMsg(guildId, bot, koishi_1.h.image(buffer, 'image/png' +
|
|
827
|
+
await this.sendMsg(guildId, bot, koishi_1.h.image(buffer, 'image/png' + (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("at", { type: "all" }), " ", liveStartMsg] })));
|
|
798
828
|
}
|
|
799
829
|
else {
|
|
800
830
|
// pic 存在,使用的是render模式
|
|
801
831
|
if (pic)
|
|
802
832
|
return await this.sendMsg(guildId, bot, pic + liveStartMsg);
|
|
803
833
|
// pic不存在,说明使用的是page模式
|
|
804
|
-
await this.sendMsg(guildId, bot, koishi_1.h.image(buffer, 'image/png' +
|
|
834
|
+
await this.sendMsg(guildId, bot, koishi_1.h.image(buffer, 'image/png' + liveStartMsg));
|
|
805
835
|
}
|
|
806
836
|
// 成功则跳出循环
|
|
807
837
|
break;
|
|
@@ -809,7 +839,12 @@ class ComRegister {
|
|
|
809
839
|
catch (e) {
|
|
810
840
|
this.logger.error('liveDetect generateLiveImg() 推送卡片发送失败,原因:' + e.toString());
|
|
811
841
|
if (i === attempts - 1) { // 已尝试三次
|
|
812
|
-
return this.sendMsg(
|
|
842
|
+
/* return this.sendMsg(
|
|
843
|
+
guildId,
|
|
844
|
+
bot,
|
|
845
|
+
'插件可能出现某些未知错误,已自动重启插件,如果仍然发生该错误,请带着日志向作者反馈'
|
|
846
|
+
) */
|
|
847
|
+
this.sendErrAndRebootService(guildId, bot, ctx, '插件可能出现某些未知错误,请尝试重启插件,如果仍然发生该错误,请带着日志向作者反馈');
|
|
813
848
|
}
|
|
814
849
|
}
|
|
815
850
|
}
|
|
@@ -833,7 +868,12 @@ class ComRegister {
|
|
|
833
868
|
catch (e) {
|
|
834
869
|
this.logger.error('liveDetect getLiveRoomInfo 网络请求失败');
|
|
835
870
|
if (i === attempts - 1) { // 已尝试三次
|
|
836
|
-
return await this.sendMsg(
|
|
871
|
+
/* return await this.sendMsg(
|
|
872
|
+
guildId,
|
|
873
|
+
bot,
|
|
874
|
+
'你的网络可能出现了某些问题,请检查后重启插件',
|
|
875
|
+
) */
|
|
876
|
+
this.sendErrAndRebootService(guildId, bot, ctx, '插件可能出现某些未知错误,请尝试重启插件,如果仍然发生该错误,请带着日志向作者反馈');
|
|
837
877
|
}
|
|
838
878
|
}
|
|
839
879
|
}
|
|
@@ -855,7 +895,12 @@ class ComRegister {
|
|
|
855
895
|
catch (e) {
|
|
856
896
|
this.logger.error('liveDetect getMasterInfo() 本次网络请求失败');
|
|
857
897
|
if (i === attempts - 1) { // 已尝试三次
|
|
858
|
-
return await this.sendMsg(
|
|
898
|
+
/* return await this.sendMsg(
|
|
899
|
+
guildId,
|
|
900
|
+
bot,
|
|
901
|
+
'你的网络可能出现了某些问题,请检查后重启插件',
|
|
902
|
+
) */
|
|
903
|
+
this.sendErrAndRebootService(guildId, bot, ctx, '插件可能出现某些未知错误,请尝试重启插件,如果仍然发生该错误,请带着日志向作者反馈');
|
|
859
904
|
}
|
|
860
905
|
}
|
|
861
906
|
}
|
|
@@ -911,7 +956,12 @@ class ComRegister {
|
|
|
911
956
|
catch (e) {
|
|
912
957
|
this.logger.error('liveDetect open getMasterInfo() 网络请求错误');
|
|
913
958
|
if (i === attempts - 1) { // 已尝试三次
|
|
914
|
-
return this.sendMsg(
|
|
959
|
+
/* return this.sendMsg(
|
|
960
|
+
guildId,
|
|
961
|
+
bot,
|
|
962
|
+
'你的网络可能出现了某些问题,请检查后重启插件',
|
|
963
|
+
) */
|
|
964
|
+
this.sendErrAndRebootService(guildId, bot, ctx, '插件可能出现某些未知错误,请尝试重启插件,如果仍然发生该错误,请带着日志向作者反馈');
|
|
915
965
|
}
|
|
916
966
|
}
|
|
917
967
|
}
|
|
@@ -1068,6 +1118,8 @@ class ComRegister {
|
|
|
1068
1118
|
// 跳过下面的步骤
|
|
1069
1119
|
continue;
|
|
1070
1120
|
}
|
|
1121
|
+
// 获取推送目标数组
|
|
1122
|
+
const targetArr = sub.targetId.split(' ');
|
|
1071
1123
|
// 拿到对应bot
|
|
1072
1124
|
switch (sub.platform) {
|
|
1073
1125
|
case 'qq':
|
|
@@ -1096,12 +1148,12 @@ class ComRegister {
|
|
|
1096
1148
|
ctx.database.remove('bilibili', { id: sub.id });
|
|
1097
1149
|
// 不支持的协议
|
|
1098
1150
|
this.logger.info(`UID:${sub.uid} 出现不支持的协议,该条数据被篡改,自动取消订阅`);
|
|
1151
|
+
// 发送消息
|
|
1152
|
+
await this.sendErr(targetArr, bot, `UID:${sub.uid} 出现不支持的协议,该条数据被篡改,自动取消订阅`);
|
|
1099
1153
|
// 继续下个循环
|
|
1100
1154
|
continue;
|
|
1101
1155
|
}
|
|
1102
1156
|
}
|
|
1103
|
-
// 获取推送目标数组
|
|
1104
|
-
const targetArr = sub.targetId.split(' ');
|
|
1105
1157
|
// 判断数据库是否被篡改
|
|
1106
1158
|
// 获取用户信息
|
|
1107
1159
|
let content;
|
|
@@ -1116,7 +1168,12 @@ class ComRegister {
|
|
|
1116
1168
|
catch (e) {
|
|
1117
1169
|
this.logger.error('getSubFromDatabase() getUserInfo() 本次网络请求失败');
|
|
1118
1170
|
if (i === attempts - 1) { // 已尝试三次
|
|
1119
|
-
return await this.sendMsg(
|
|
1171
|
+
/* return await this.sendMsg(
|
|
1172
|
+
targetArr,
|
|
1173
|
+
bot,
|
|
1174
|
+
'你的网络可能出现了某些问题,请检查后重启插件'
|
|
1175
|
+
) */
|
|
1176
|
+
this.sendErrAndRebootService(targetArr, bot, ctx, '你的网络可能出现了某些问题,请检查后重启插件');
|
|
1120
1177
|
}
|
|
1121
1178
|
}
|
|
1122
1179
|
}
|
|
@@ -1127,14 +1184,24 @@ class ComRegister {
|
|
|
1127
1184
|
// 从数据库删除该条数据
|
|
1128
1185
|
await ctx.database.remove('bilibili', { id: sub.id });
|
|
1129
1186
|
// 给用户发送提示
|
|
1130
|
-
this.
|
|
1187
|
+
await this.sendErr(targetArr, bot, `UID:${sub.uid} 数据库内容被篡改,已取消对该UP主的订阅`);
|
|
1188
|
+
/* await this.sendMsg(
|
|
1189
|
+
targetArr,
|
|
1190
|
+
bot,
|
|
1191
|
+
`UID:${sub.uid} 数据库内容被篡改,已取消对该UP主的订阅`
|
|
1192
|
+
) */
|
|
1131
1193
|
};
|
|
1132
1194
|
// 判断是否有其他问题
|
|
1133
1195
|
if (content.code !== 0) {
|
|
1134
1196
|
switch (content.code) {
|
|
1135
1197
|
case -352:
|
|
1136
1198
|
case -403: {
|
|
1137
|
-
this.
|
|
1199
|
+
await this.sendErr(targetArr, bot, '你的登录信息已过期,请重新登录Bilibili');
|
|
1200
|
+
/* this.sendMsg(
|
|
1201
|
+
targetArr,
|
|
1202
|
+
bot,
|
|
1203
|
+
'你的登录信息已过期,请重新登录Bilibili'
|
|
1204
|
+
) */
|
|
1138
1205
|
return;
|
|
1139
1206
|
}
|
|
1140
1207
|
case -400:
|
|
@@ -1153,6 +1220,8 @@ class ComRegister {
|
|
|
1153
1220
|
await deleteSub();
|
|
1154
1221
|
// log
|
|
1155
1222
|
this.logger.info(`UID:${sub.uid} 房间号被篡改,自动取消订阅`);
|
|
1223
|
+
// Send msg
|
|
1224
|
+
await this.sendErr(targetArr, bot, `UID:${sub.uid} 房间号被篡改,自动取消订阅`);
|
|
1156
1225
|
return;
|
|
1157
1226
|
}
|
|
1158
1227
|
// 构建订阅对象
|
|
@@ -1261,6 +1330,11 @@ class ComRegister {
|
|
|
1261
1330
|
}
|
|
1262
1331
|
(function (ComRegister) {
|
|
1263
1332
|
ComRegister.Config = koishi_1.Schema.object({
|
|
1333
|
+
master: koishi_1.Schema.object({
|
|
1334
|
+
enable: koishi_1.Schema.boolean(),
|
|
1335
|
+
masterAccount: koishi_1.Schema.string(),
|
|
1336
|
+
masterAccountGuildId: koishi_1.Schema.string()
|
|
1337
|
+
}),
|
|
1264
1338
|
unlockSubLimits: koishi_1.Schema.boolean().required(),
|
|
1265
1339
|
liveStartAtAll: koishi_1.Schema.boolean().required(),
|
|
1266
1340
|
pushTime: koishi_1.Schema.number().required(),
|
|
Binary file
|
package/lib/generateImg.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ declare class GenerateImg extends Service {
|
|
|
10
10
|
giConfig: GenerateImg.Config;
|
|
11
11
|
constructor(ctx: Context, config: GenerateImg.Config);
|
|
12
12
|
protected start(): void | Promise<void>;
|
|
13
|
+
protected stop(): void | Promise<void>;
|
|
13
14
|
generateLiveImg(data: any, userData: any, liveStatus: number): Promise<{
|
|
14
15
|
buffer: Buffer;
|
|
15
16
|
pic?: undefined;
|
package/lib/generateImg.js
CHANGED
|
@@ -44,7 +44,10 @@ class GenerateImg extends koishi_1.Service {
|
|
|
44
44
|
this.giConfig = config;
|
|
45
45
|
}
|
|
46
46
|
start() {
|
|
47
|
-
// this.logger.info('
|
|
47
|
+
// this.logger.info('工作中');
|
|
48
|
+
}
|
|
49
|
+
stop() {
|
|
50
|
+
// this.logger.info('已停止工作')
|
|
48
51
|
}
|
|
49
52
|
async generateLiveImg(data, userData, liveStatus /*0未开播 1刚开播 2已开播 */) {
|
|
50
53
|
const [titleStatus, liveTime, cover] = await this.getLiveStatus(data.live_time, liveStatus);
|
package/lib/index.d.ts
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
import { Context, Schema } from 'koishi';
|
|
1
|
+
import { Context, ForkScope, Schema, Service } from 'koishi';
|
|
2
2
|
export declare const inject: string[];
|
|
3
3
|
export declare const name = "bilibili-notify";
|
|
4
|
+
declare module 'koishi' {
|
|
5
|
+
interface Context {
|
|
6
|
+
sm: ServerManager;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
4
9
|
export interface Config {
|
|
5
10
|
require: {};
|
|
6
11
|
key: string;
|
|
12
|
+
master: {};
|
|
7
13
|
basicSettings: {};
|
|
8
14
|
unlockSubLimits: boolean;
|
|
9
15
|
renderType: 'render' | 'page';
|
|
@@ -25,4 +31,13 @@ export interface Config {
|
|
|
25
31
|
filter: {};
|
|
26
32
|
}
|
|
27
33
|
export declare const Config: Schema<Config>;
|
|
34
|
+
declare class ServerManager extends Service {
|
|
35
|
+
servers: ForkScope[];
|
|
36
|
+
renderType: number;
|
|
37
|
+
constructor(ctx: Context);
|
|
38
|
+
protected start(): void | Promise<void>;
|
|
39
|
+
registerPlugin: () => void;
|
|
40
|
+
disposePlugin: () => void;
|
|
41
|
+
}
|
|
28
42
|
export declare function apply(ctx: Context, config: Config): void;
|
|
43
|
+
export {};
|
package/lib/index.js
CHANGED
|
@@ -39,6 +39,7 @@ const generateImg_1 = __importDefault(require("./generateImg"));
|
|
|
39
39
|
const biliAPI_1 = __importDefault(require("./biliAPI"));
|
|
40
40
|
exports.inject = ['puppeteer', 'database', 'notifier'];
|
|
41
41
|
exports.name = 'bilibili-notify';
|
|
42
|
+
let globalConfig;
|
|
42
43
|
exports.Config = koishi_1.Schema.object({
|
|
43
44
|
require: koishi_1.Schema.object({}).description('必填设置'),
|
|
44
45
|
key: koishi_1.Schema.string()
|
|
@@ -46,6 +47,27 @@ exports.Config = koishi_1.Schema.object({
|
|
|
46
47
|
.role('secret')
|
|
47
48
|
.required()
|
|
48
49
|
.description('请输入一个32位小写字母的十六进制密钥(例如:9b8db7ae562b9864efefe06289cc5530),使用此密钥将你的B站登录信息存储在数据库中,请一定保存好此密钥。如果你忘记了此密钥,必须重新登录。你可以自行生成,或到这个网站生成:https://www.sexauth.com/'),
|
|
50
|
+
master: koishi_1.Schema.intersect([
|
|
51
|
+
koishi_1.Schema.object({
|
|
52
|
+
enable: koishi_1.Schema.boolean()
|
|
53
|
+
.default(false)
|
|
54
|
+
.description('是否开启主人账号功能')
|
|
55
|
+
.experimental()
|
|
56
|
+
}).description('主人账号'),
|
|
57
|
+
koishi_1.Schema.union([
|
|
58
|
+
koishi_1.Schema.object({
|
|
59
|
+
enable: koishi_1.Schema.const(true).required(),
|
|
60
|
+
masterAccount: koishi_1.Schema.string()
|
|
61
|
+
.role('secret')
|
|
62
|
+
.required()
|
|
63
|
+
.description('主人账号,在Q群使用可直接使用QQ号,若在其他平台使用,请使用inspect插件获取自身ID'),
|
|
64
|
+
masterAccountGuildId: koishi_1.Schema.string()
|
|
65
|
+
.role('secret')
|
|
66
|
+
.description('主人账号所在的群组ID,只有在QQ频道、Discord这样的环境才需要填写,请使用inspect插件获取群组ID'),
|
|
67
|
+
}),
|
|
68
|
+
koishi_1.Schema.object({})
|
|
69
|
+
])
|
|
70
|
+
]),
|
|
49
71
|
basicSettings: koishi_1.Schema.object({}).description('基本设置'),
|
|
50
72
|
unlockSubLimits: koishi_1.Schema.boolean()
|
|
51
73
|
.default(false)
|
|
@@ -126,7 +148,47 @@ exports.Config = koishi_1.Schema.object({
|
|
|
126
148
|
])
|
|
127
149
|
]),
|
|
128
150
|
});
|
|
151
|
+
class ServerManager extends koishi_1.Service {
|
|
152
|
+
servers = [];
|
|
153
|
+
// 渲染模式
|
|
154
|
+
renderType;
|
|
155
|
+
constructor(ctx) {
|
|
156
|
+
super(ctx, 'sm');
|
|
157
|
+
}
|
|
158
|
+
start() {
|
|
159
|
+
this.registerPlugin();
|
|
160
|
+
switch (globalConfig.renderType) {
|
|
161
|
+
case 'render':
|
|
162
|
+
this.renderType = 0;
|
|
163
|
+
break;
|
|
164
|
+
case 'page':
|
|
165
|
+
this.renderType = 1;
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
registerPlugin = () => {
|
|
170
|
+
const biliApi = this.ctx.plugin(biliAPI_1.default);
|
|
171
|
+
const generateImg = this.ctx.plugin(generateImg_1.default, {
|
|
172
|
+
renderType: this.renderType,
|
|
173
|
+
filter: globalConfig.filter,
|
|
174
|
+
removeBorder: globalConfig.removeBorder,
|
|
175
|
+
cardColorStart: globalConfig.cardColorStart,
|
|
176
|
+
cardColorEnd: globalConfig.cardColorEnd,
|
|
177
|
+
enableLargeFont: globalConfig.enableLargeFont,
|
|
178
|
+
font: globalConfig.font
|
|
179
|
+
});
|
|
180
|
+
this.servers.push(biliApi);
|
|
181
|
+
this.servers.push(generateImg);
|
|
182
|
+
};
|
|
183
|
+
disposePlugin = () => {
|
|
184
|
+
this.servers.forEach(fork => {
|
|
185
|
+
fork.dispose();
|
|
186
|
+
});
|
|
187
|
+
};
|
|
188
|
+
}
|
|
129
189
|
function apply(ctx, config) {
|
|
190
|
+
// 设置config
|
|
191
|
+
globalConfig = config;
|
|
130
192
|
// 设置提示
|
|
131
193
|
ctx.notifier.create({
|
|
132
194
|
content: '请记得使用Auth插件创建超级管理员账号,没有权限将无法使用该插件提供的指令。'
|
|
@@ -155,31 +217,13 @@ function apply(ctx, config) {
|
|
|
155
217
|
dynamicLoopTime = 300;
|
|
156
218
|
break;
|
|
157
219
|
}
|
|
158
|
-
// 渲染模式
|
|
159
|
-
let renderType;
|
|
160
|
-
switch (config.renderType) {
|
|
161
|
-
case 'render':
|
|
162
|
-
renderType = 0;
|
|
163
|
-
break;
|
|
164
|
-
case 'page':
|
|
165
|
-
renderType = 1;
|
|
166
|
-
break;
|
|
167
|
-
}
|
|
168
220
|
// load database
|
|
169
221
|
ctx.plugin(Database);
|
|
170
222
|
// Regist server
|
|
171
223
|
ctx.plugin(wbi_1.default, { key: config.key });
|
|
172
|
-
ctx.plugin(
|
|
173
|
-
ctx.plugin(generateImg_1.default, {
|
|
174
|
-
renderType,
|
|
175
|
-
filter: config.filter,
|
|
176
|
-
removeBorder: config.removeBorder,
|
|
177
|
-
cardColorStart: config.cardColorStart,
|
|
178
|
-
cardColorEnd: config.cardColorEnd,
|
|
179
|
-
enableLargeFont: config.enableLargeFont,
|
|
180
|
-
font: config.font
|
|
181
|
-
});
|
|
224
|
+
ctx.plugin(ServerManager);
|
|
182
225
|
ctx.plugin(comRegister_1.default, {
|
|
226
|
+
master: config.master,
|
|
183
227
|
unlockSubLimits: config.unlockSubLimits,
|
|
184
228
|
liveStartAtAll: config.liveStartAtAll,
|
|
185
229
|
pushTime: config.pushTime,
|
|
File without changes
|
|
File without changes
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -118,6 +118,8 @@
|
|
|
118
118
|
- ver 1.2.2-alpha.0 bug测试
|
|
119
119
|
- ver 1.2.2-beta.0 修复重启koishi后,提示没有任何订阅的bug,新增对chronocat的支持(实验性)
|
|
120
120
|
- ver 1.2.2-beta.1 现已支持直播开播发送链接(实验性)
|
|
121
|
+
- ver 1.2.2-beta.2 修复了动态推送时图片下方出现空行的情况
|
|
122
|
+
- ver 1.2.3-alpha.0 新增主人账号功能,开启后,会将插件的错误消息向主人账号发送(实验性)。修复订阅消息推送失败刷屏的bug
|
|
121
123
|
|
|
122
124
|
## 交流群
|
|
123
125
|
801338523 使用问题或bug都可以在群里提出
|