node-karin 0.0.3 → 0.1.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/LICENSE +674 -674
- package/README.md +57 -57
- package/config/defSet/App.yaml +37 -37
- package/config/defSet/config.yaml +43 -43
- package/config/defSet/group.yaml +18 -18
- package/config/defSet/pm2.yaml +21 -21
- package/config/defSet/server.yaml +42 -42
- package/config/view/App.yaml +74 -74
- package/config/view/config.yaml +100 -100
- package/config/view/group.yaml +62 -62
- package/config/view/pm2.yaml +41 -41
- package/config/view/redis.yaml +25 -25
- package/config/view/server.yaml +93 -93
- package/lib/adapter/onebot/onebot11.d.ts +430 -430
- package/lib/adapter/onebot/onebot11.js +1265 -1302
- package/lib/core/init.js +4 -4
- package/lib/core/karin.d.ts +72 -72
- package/lib/core/karin.js +51 -51
- package/lib/core/listener.d.ts +121 -121
- package/lib/core/listener.js +178 -178
- package/lib/core/plugin.app.d.ts +15 -15
- package/lib/core/plugin.app.js +18 -18
- package/lib/core/plugin.d.ts +182 -182
- package/lib/core/plugin.js +132 -132
- package/lib/core/plugin.loader.d.ts +149 -149
- package/lib/core/plugin.loader.js +451 -451
- package/lib/core/server.d.ts +26 -26
- package/lib/core/server.js +209 -209
- package/lib/db/level.d.ts +20 -20
- package/lib/db/level.js +36 -36
- package/lib/db/redis.d.ts +41 -41
- package/lib/db/redis.js +131 -131
- package/lib/db/redis_level.d.ts +113 -113
- package/lib/db/redis_level.js +274 -274
- package/lib/event/event.d.ts +138 -138
- package/lib/event/event.handler.d.ts +29 -29
- package/lib/event/event.handler.js +138 -138
- package/lib/event/event.js +120 -120
- package/lib/event/message.d.ts +102 -102
- package/lib/event/message.handler.d.ts +25 -25
- package/lib/event/message.handler.js +237 -237
- package/lib/event/message.js +69 -69
- package/lib/event/notice.d.ts +49 -49
- package/lib/event/notice.js +14 -14
- package/lib/event/request.d.ts +49 -49
- package/lib/event/request.js +14 -14
- package/lib/event/review.handler.d.ts +54 -54
- package/lib/event/review.handler.js +374 -374
- package/lib/index.d.ts +23 -23
- package/lib/index.js +39 -40
- package/lib/renderer/app.d.ts +53 -53
- package/lib/renderer/app.js +88 -88
- package/lib/renderer/base.d.ts +30 -30
- package/lib/renderer/base.js +68 -68
- package/lib/renderer/client.d.ts +30 -30
- package/lib/renderer/client.js +155 -155
- package/lib/renderer/http.d.ts +19 -19
- package/lib/renderer/http.js +50 -50
- package/lib/renderer/server.d.ts +42 -42
- package/lib/renderer/server.js +110 -110
- package/lib/renderer/wormhole.d.ts +1 -1
- package/lib/renderer/wormhole.js +154 -154
- package/lib/types/adapter.d.ts +575 -575
- package/lib/types/adapter.js +1 -1
- package/lib/types/config.d.ts +327 -327
- package/lib/types/config.js +1 -1
- package/lib/types/element.d.ts +576 -576
- package/lib/types/element.js +1 -1
- package/lib/types/index.d.ts +8 -8
- package/lib/types/index.js +8 -8
- package/lib/types/logger.d.ts +109 -109
- package/lib/types/logger.js +1 -1
- package/lib/types/onebots11.d.ts +1371 -1371
- package/lib/types/onebots11.js +1 -1
- package/lib/types/plugin.d.ts +282 -282
- package/lib/types/plugin.js +1 -1
- package/lib/types/render.d.ts +111 -111
- package/lib/types/render.js +1 -1
- package/lib/types/reply.d.ts +40 -40
- package/lib/types/reply.js +1 -1
- package/lib/types/types.d.ts +898 -898
- package/lib/types/types.js +1 -1
- package/lib/utils/YamlEditor.d.ts +62 -62
- package/lib/utils/YamlEditor.js +197 -197
- package/lib/utils/button.d.ts +49 -49
- package/lib/utils/button.js +75 -75
- package/lib/utils/common.d.ts +123 -123
- package/lib/utils/common.js +396 -396
- package/lib/utils/config.d.ts +72 -72
- package/lib/utils/config.js +254 -254
- package/lib/utils/exec.d.ts +22 -22
- package/lib/utils/exec.js +36 -36
- package/lib/utils/ffmpeg.d.ts +12 -12
- package/lib/utils/ffmpeg.js +25 -25
- package/lib/utils/handler.d.ts +76 -76
- package/lib/utils/handler.js +98 -98
- package/lib/utils/logger.d.ts +3 -3
- package/lib/utils/logger.js +104 -104
- package/lib/utils/segment.d.ts +276 -276
- package/lib/utils/segment.js +420 -420
- package/lib/utils/update.d.ts +69 -69
- package/lib/utils/update.js +145 -145
- package/lib/utils/updateVersion.d.ts +33 -33
- package/lib/utils/updateVersion.js +140 -140
- package/package.json +92 -91
|
@@ -1,382 +1,382 @@
|
|
|
1
|
-
import Config from '../utils/config.js'
|
|
2
|
-
import logger from '../utils/logger.js'
|
|
3
|
-
/**
|
|
4
|
-
* 事件拦截器
|
|
5
|
-
* 利用可执行函数的特性,热更新所有拦截器
|
|
6
|
-
* 所有拦截器返回的都是布尔值 为true说明通过 为false则未通过
|
|
7
|
-
*/
|
|
8
|
-
export default new (class Review {
|
|
9
|
-
GroupCD
|
|
10
|
-
GroupUserCD
|
|
11
|
-
App = Config['App']
|
|
12
|
-
Config = Config['Config']
|
|
13
|
-
CD
|
|
14
|
-
mode
|
|
15
|
-
alias
|
|
16
|
-
GroupEnable
|
|
17
|
-
UserEnable
|
|
18
|
-
GroupMsgPrint
|
|
19
|
-
PluginEnable
|
|
20
|
-
constructor () {
|
|
21
|
-
/** 群聊所有消息cd */
|
|
22
|
-
this.GroupCD = {}
|
|
23
|
-
/** 群聊个人cd */
|
|
24
|
-
this.GroupUserCD = {}
|
|
25
|
-
/** 事件cd */
|
|
26
|
-
this.CD = (e, config) => true
|
|
27
|
-
/** 响应模式 */
|
|
28
|
-
this.mode = (e, config) => true
|
|
29
|
-
/** 前缀、别名 */
|
|
30
|
-
this.alias = (e, config) => true
|
|
31
|
-
/** 群聊黑白名单 哪个群可以触发事件 */
|
|
32
|
-
this.GroupEnable = e => true
|
|
33
|
-
/** 用户黑白名单 谁可以触发事件 */
|
|
34
|
-
this.UserEnable = e => true
|
|
35
|
-
/** 群聊事件日志 哪个群可以打印日志 */
|
|
36
|
-
this.GroupMsgPrint = e => true
|
|
37
|
-
/** 插件黑白名单 哪个插件可以被触发 */
|
|
38
|
-
this.PluginEnable = (app, config) => true
|
|
39
|
-
// 延迟1秒执行
|
|
40
|
-
setTimeout(() => {
|
|
41
|
-
this.main()
|
|
42
|
-
}, 1000)
|
|
1
|
+
import Config from '../utils/config.js'
|
|
2
|
+
import logger from '../utils/logger.js'
|
|
3
|
+
/**
|
|
4
|
+
* 事件拦截器
|
|
5
|
+
* 利用可执行函数的特性,热更新所有拦截器
|
|
6
|
+
* 所有拦截器返回的都是布尔值 为true说明通过 为false则未通过
|
|
7
|
+
*/
|
|
8
|
+
export default new (class Review {
|
|
9
|
+
GroupCD
|
|
10
|
+
GroupUserCD
|
|
11
|
+
App = Config['App']
|
|
12
|
+
Config = Config['Config']
|
|
13
|
+
CD
|
|
14
|
+
mode
|
|
15
|
+
alias
|
|
16
|
+
GroupEnable
|
|
17
|
+
UserEnable
|
|
18
|
+
GroupMsgPrint
|
|
19
|
+
PluginEnable
|
|
20
|
+
constructor () {
|
|
21
|
+
/** 群聊所有消息cd */
|
|
22
|
+
this.GroupCD = {}
|
|
23
|
+
/** 群聊个人cd */
|
|
24
|
+
this.GroupUserCD = {}
|
|
25
|
+
/** 事件cd */
|
|
26
|
+
this.CD = (e, config) => true
|
|
27
|
+
/** 响应模式 */
|
|
28
|
+
this.mode = (e, config) => true
|
|
29
|
+
/** 前缀、别名 */
|
|
30
|
+
this.alias = (e, config) => true
|
|
31
|
+
/** 群聊黑白名单 哪个群可以触发事件 */
|
|
32
|
+
this.GroupEnable = e => true
|
|
33
|
+
/** 用户黑白名单 谁可以触发事件 */
|
|
34
|
+
this.UserEnable = e => true
|
|
35
|
+
/** 群聊事件日志 哪个群可以打印日志 */
|
|
36
|
+
this.GroupMsgPrint = e => true
|
|
37
|
+
/** 插件黑白名单 哪个插件可以被触发 */
|
|
38
|
+
this.PluginEnable = (app, config) => true
|
|
39
|
+
// 延迟1秒执行
|
|
40
|
+
setTimeout(() => {
|
|
41
|
+
this.main()
|
|
42
|
+
}, 1000)
|
|
43
43
|
}
|
|
44
|
-
|
|
45
|
-
main () {
|
|
46
|
-
this.App = Config.App
|
|
47
|
-
this.Config = Config.Config
|
|
48
|
-
this.#CD()
|
|
49
|
-
this.#mode()
|
|
50
|
-
this.#alias()
|
|
51
|
-
this.#GroupEnable()
|
|
52
|
-
this.#UserEnable()
|
|
53
|
-
this.#GroupMsgPrint()
|
|
54
|
-
this.#PluginEnable()
|
|
44
|
+
|
|
45
|
+
main () {
|
|
46
|
+
this.App = Config.App
|
|
47
|
+
this.Config = Config.Config
|
|
48
|
+
this.#CD()
|
|
49
|
+
this.#mode()
|
|
50
|
+
this.#alias()
|
|
51
|
+
this.#GroupEnable()
|
|
52
|
+
this.#UserEnable()
|
|
53
|
+
this.#GroupMsgPrint()
|
|
54
|
+
this.#PluginEnable()
|
|
55
55
|
}
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* 群聊黑白名单 允许哪个群触发事件
|
|
59
|
-
*/
|
|
60
|
-
#GroupEnable () {
|
|
61
|
-
/** 同时启用 */
|
|
62
|
-
if (this.App.WhiteList.groups && this.App.BlackList.groups) {
|
|
63
|
-
this.GroupEnable = e => {
|
|
64
|
-
/** 白名单不为空 */
|
|
65
|
-
if (Array.isArray(this.Config.WhiteList.groups) && this.Config.WhiteList.groups.length) {
|
|
66
|
-
const group_id = (Number(e.group_id) || String(e.group_id))
|
|
67
|
-
return this.Config.WhiteList.groups.includes(group_id)
|
|
68
|
-
}
|
|
69
|
-
/** 白名单为空 检查黑名单是否为空 */
|
|
70
|
-
if (Array.isArray(this.Config.BlackList.groups) && this.Config.BlackList.groups.length) {
|
|
71
|
-
const group_id = (Number(e.group_id) || String(e.group_id))
|
|
72
|
-
return !this.Config.BlackList.groups.includes(group_id)
|
|
73
|
-
}
|
|
74
|
-
/** 黑白名单都为空 */
|
|
75
|
-
return true
|
|
76
|
-
}
|
|
77
|
-
return true
|
|
78
|
-
}
|
|
79
|
-
/** 白名单启用 */
|
|
80
|
-
if (this.App.WhiteList.groups) {
|
|
81
|
-
this.GroupEnable = e => {
|
|
82
|
-
if (Array.isArray(this.Config.WhiteList.groups) && this.Config.WhiteList.groups.length) {
|
|
83
|
-
const group_id = (Number(e.group_id) || String(e.group_id))
|
|
84
|
-
return this.Config.WhiteList.groups.includes(group_id)
|
|
85
|
-
}
|
|
86
|
-
return true
|
|
87
|
-
}
|
|
88
|
-
return true
|
|
89
|
-
}
|
|
90
|
-
/** 黑名单启用 */
|
|
91
|
-
if (this.App.BlackList.groups) {
|
|
92
|
-
this.GroupEnable = e => {
|
|
93
|
-
if (Array.isArray(this.Config.BlackList.groups) && this.Config.BlackList.groups.length) {
|
|
94
|
-
const group_id = (Number(e.group_id) || String(e.group_id))
|
|
95
|
-
return !this.Config.BlackList.groups.includes(group_id)
|
|
96
|
-
}
|
|
97
|
-
return true
|
|
98
|
-
}
|
|
99
|
-
return true
|
|
100
|
-
}
|
|
101
|
-
/** 都没有启用 */
|
|
102
|
-
this.GroupEnable = () => true
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* 群聊黑白名单 允许哪个群触发事件
|
|
59
|
+
*/
|
|
60
|
+
#GroupEnable () {
|
|
61
|
+
/** 同时启用 */
|
|
62
|
+
if (this.App.WhiteList.groups && this.App.BlackList.groups) {
|
|
63
|
+
this.GroupEnable = e => {
|
|
64
|
+
/** 白名单不为空 */
|
|
65
|
+
if (Array.isArray(this.Config.WhiteList.groups) && this.Config.WhiteList.groups.length) {
|
|
66
|
+
const group_id = (Number(e.group_id) || String(e.group_id))
|
|
67
|
+
return this.Config.WhiteList.groups.includes(group_id)
|
|
68
|
+
}
|
|
69
|
+
/** 白名单为空 检查黑名单是否为空 */
|
|
70
|
+
if (Array.isArray(this.Config.BlackList.groups) && this.Config.BlackList.groups.length) {
|
|
71
|
+
const group_id = (Number(e.group_id) || String(e.group_id))
|
|
72
|
+
return !this.Config.BlackList.groups.includes(group_id)
|
|
73
|
+
}
|
|
74
|
+
/** 黑白名单都为空 */
|
|
75
|
+
return true
|
|
76
|
+
}
|
|
77
|
+
return true
|
|
78
|
+
}
|
|
79
|
+
/** 白名单启用 */
|
|
80
|
+
if (this.App.WhiteList.groups) {
|
|
81
|
+
this.GroupEnable = e => {
|
|
82
|
+
if (Array.isArray(this.Config.WhiteList.groups) && this.Config.WhiteList.groups.length) {
|
|
83
|
+
const group_id = (Number(e.group_id) || String(e.group_id))
|
|
84
|
+
return this.Config.WhiteList.groups.includes(group_id)
|
|
85
|
+
}
|
|
86
|
+
return true
|
|
87
|
+
}
|
|
88
|
+
return true
|
|
89
|
+
}
|
|
90
|
+
/** 黑名单启用 */
|
|
91
|
+
if (this.App.BlackList.groups) {
|
|
92
|
+
this.GroupEnable = e => {
|
|
93
|
+
if (Array.isArray(this.Config.BlackList.groups) && this.Config.BlackList.groups.length) {
|
|
94
|
+
const group_id = (Number(e.group_id) || String(e.group_id))
|
|
95
|
+
return !this.Config.BlackList.groups.includes(group_id)
|
|
96
|
+
}
|
|
97
|
+
return true
|
|
98
|
+
}
|
|
99
|
+
return true
|
|
100
|
+
}
|
|
101
|
+
/** 都没有启用 */
|
|
102
|
+
this.GroupEnable = () => true
|
|
103
103
|
}
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* 用户黑白名单 允许那个用户触发事件
|
|
107
|
-
*/
|
|
108
|
-
#UserEnable () {
|
|
109
|
-
/** 同时启用 */
|
|
110
|
-
if (this.App.WhiteList.users && this.App.BlackList.users) {
|
|
111
|
-
this.UserEnable = e => {
|
|
112
|
-
/** 白名单不为空 */
|
|
113
|
-
if (Array.isArray(this.Config.WhiteList.users) && this.Config.WhiteList.users.length) {
|
|
114
|
-
const user_id = (Number(e.user_id) || String(e.user_id))
|
|
115
|
-
return this.Config.WhiteList.users.includes(user_id)
|
|
116
|
-
}
|
|
117
|
-
/** 白名单为空 检查黑名单是否为空 */
|
|
118
|
-
if (Array.isArray(this.Config.BlackList.users) && this.Config.BlackList.users.length) {
|
|
119
|
-
const user_id = (Number(e.user_id) || String(e.user_id))
|
|
120
|
-
return !this.Config.BlackList.users.includes(user_id)
|
|
121
|
-
}
|
|
122
|
-
/** 黑白名单都为空 */
|
|
123
|
-
return true
|
|
124
|
-
}
|
|
125
|
-
return true
|
|
126
|
-
}
|
|
127
|
-
/** 白名单启用 */
|
|
128
|
-
if (this.App.WhiteList.users) {
|
|
129
|
-
this.UserEnable = e => {
|
|
130
|
-
if (Array.isArray(this.Config.WhiteList.users) && this.Config.WhiteList.users.length) {
|
|
131
|
-
const user_id = (Number(e.user_id) || String(e.user_id))
|
|
132
|
-
return this.Config.WhiteList.users.includes(user_id)
|
|
133
|
-
}
|
|
134
|
-
return true
|
|
135
|
-
}
|
|
136
|
-
return true
|
|
137
|
-
}
|
|
138
|
-
/** 黑名单启用 */
|
|
139
|
-
if (this.App.BlackList.users) {
|
|
140
|
-
this.UserEnable = e => {
|
|
141
|
-
if (Array.isArray(this.Config.BlackList.users) && this.Config.BlackList.users.length) {
|
|
142
|
-
const user_id = (Number(e.user_id) || String(e.user_id))
|
|
143
|
-
return !this.Config.BlackList.users.includes(user_id)
|
|
144
|
-
}
|
|
145
|
-
return true
|
|
146
|
-
}
|
|
147
|
-
return true
|
|
148
|
-
}
|
|
149
|
-
/** 都没有启用 */
|
|
150
|
-
this.UserEnable = () => true
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* 用户黑白名单 允许那个用户触发事件
|
|
107
|
+
*/
|
|
108
|
+
#UserEnable () {
|
|
109
|
+
/** 同时启用 */
|
|
110
|
+
if (this.App.WhiteList.users && this.App.BlackList.users) {
|
|
111
|
+
this.UserEnable = e => {
|
|
112
|
+
/** 白名单不为空 */
|
|
113
|
+
if (Array.isArray(this.Config.WhiteList.users) && this.Config.WhiteList.users.length) {
|
|
114
|
+
const user_id = (Number(e.user_id) || String(e.user_id))
|
|
115
|
+
return this.Config.WhiteList.users.includes(user_id)
|
|
116
|
+
}
|
|
117
|
+
/** 白名单为空 检查黑名单是否为空 */
|
|
118
|
+
if (Array.isArray(this.Config.BlackList.users) && this.Config.BlackList.users.length) {
|
|
119
|
+
const user_id = (Number(e.user_id) || String(e.user_id))
|
|
120
|
+
return !this.Config.BlackList.users.includes(user_id)
|
|
121
|
+
}
|
|
122
|
+
/** 黑白名单都为空 */
|
|
123
|
+
return true
|
|
124
|
+
}
|
|
125
|
+
return true
|
|
126
|
+
}
|
|
127
|
+
/** 白名单启用 */
|
|
128
|
+
if (this.App.WhiteList.users) {
|
|
129
|
+
this.UserEnable = e => {
|
|
130
|
+
if (Array.isArray(this.Config.WhiteList.users) && this.Config.WhiteList.users.length) {
|
|
131
|
+
const user_id = (Number(e.user_id) || String(e.user_id))
|
|
132
|
+
return this.Config.WhiteList.users.includes(user_id)
|
|
133
|
+
}
|
|
134
|
+
return true
|
|
135
|
+
}
|
|
136
|
+
return true
|
|
137
|
+
}
|
|
138
|
+
/** 黑名单启用 */
|
|
139
|
+
if (this.App.BlackList.users) {
|
|
140
|
+
this.UserEnable = e => {
|
|
141
|
+
if (Array.isArray(this.Config.BlackList.users) && this.Config.BlackList.users.length) {
|
|
142
|
+
const user_id = (Number(e.user_id) || String(e.user_id))
|
|
143
|
+
return !this.Config.BlackList.users.includes(user_id)
|
|
144
|
+
}
|
|
145
|
+
return true
|
|
146
|
+
}
|
|
147
|
+
return true
|
|
148
|
+
}
|
|
149
|
+
/** 都没有启用 */
|
|
150
|
+
this.UserEnable = () => true
|
|
151
151
|
}
|
|
152
|
-
|
|
153
|
-
/**
|
|
154
|
-
* 群聊事件日志 是否打印
|
|
155
|
-
*/
|
|
156
|
-
#GroupMsgPrint () {
|
|
157
|
-
/** 同时启用 */
|
|
158
|
-
if (this.App.WhiteList.GroupMsgLog && this.App.BlackList.GroupMsgLog) {
|
|
159
|
-
this.GroupMsgPrint = e => {
|
|
160
|
-
/** 白名单不为空 */
|
|
161
|
-
if (Array.isArray(this.Config.WhiteList.GroupMsgLog) && this.Config.WhiteList.GroupMsgLog.length) {
|
|
162
|
-
const group_id = (Number(e.group_id) || String(e.group_id))
|
|
163
|
-
return this.Config.WhiteList.GroupMsgLog.includes(group_id)
|
|
164
|
-
}
|
|
165
|
-
/** 白名单为空 检查黑名单是否为空 */
|
|
166
|
-
if (Array.isArray(this.Config.BlackList.GroupMsgLog) && this.Config.BlackList.GroupMsgLog.length) {
|
|
167
|
-
const group_id = (Number(e.group_id) || String(e.group_id))
|
|
168
|
-
return !this.Config.BlackList.GroupMsgLog.includes(group_id)
|
|
169
|
-
}
|
|
170
|
-
/** 黑白名单都为空 */
|
|
171
|
-
return true
|
|
172
|
-
}
|
|
173
|
-
return true
|
|
174
|
-
}
|
|
175
|
-
/** 白名单启用 */
|
|
176
|
-
if (this.App.WhiteList.GroupMsgLog) {
|
|
177
|
-
this.GroupMsgPrint = e => {
|
|
178
|
-
if (Array.isArray(this.Config.WhiteList.GroupMsgLog) && this.Config.WhiteList.GroupMsgLog.length) {
|
|
179
|
-
const group_id = (Number(e.group_id) || String(e.group_id))
|
|
180
|
-
return this.Config.WhiteList.GroupMsgLog.includes(group_id)
|
|
181
|
-
}
|
|
182
|
-
return true
|
|
183
|
-
}
|
|
184
|
-
return true
|
|
185
|
-
}
|
|
186
|
-
/** 黑名单启用 */
|
|
187
|
-
if (this.App.BlackList.GroupMsgLog) {
|
|
188
|
-
this.GroupMsgPrint = e => {
|
|
189
|
-
if (Array.isArray(this.Config.BlackList.GroupMsgLog) && this.Config.BlackList.GroupMsgLog.length) {
|
|
190
|
-
const group_id = (Number(e.group_id) || String(e.group_id))
|
|
191
|
-
return !this.Config.BlackList.GroupMsgLog.includes(group_id)
|
|
192
|
-
}
|
|
193
|
-
return true
|
|
194
|
-
}
|
|
195
|
-
return true
|
|
196
|
-
}
|
|
197
|
-
/** 都没有启用 */
|
|
198
|
-
this.GroupMsgPrint = () => true
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* 群聊事件日志 是否打印
|
|
155
|
+
*/
|
|
156
|
+
#GroupMsgPrint () {
|
|
157
|
+
/** 同时启用 */
|
|
158
|
+
if (this.App.WhiteList.GroupMsgLog && this.App.BlackList.GroupMsgLog) {
|
|
159
|
+
this.GroupMsgPrint = e => {
|
|
160
|
+
/** 白名单不为空 */
|
|
161
|
+
if (Array.isArray(this.Config.WhiteList.GroupMsgLog) && this.Config.WhiteList.GroupMsgLog.length) {
|
|
162
|
+
const group_id = (Number(e.group_id) || String(e.group_id))
|
|
163
|
+
return this.Config.WhiteList.GroupMsgLog.includes(group_id)
|
|
164
|
+
}
|
|
165
|
+
/** 白名单为空 检查黑名单是否为空 */
|
|
166
|
+
if (Array.isArray(this.Config.BlackList.GroupMsgLog) && this.Config.BlackList.GroupMsgLog.length) {
|
|
167
|
+
const group_id = (Number(e.group_id) || String(e.group_id))
|
|
168
|
+
return !this.Config.BlackList.GroupMsgLog.includes(group_id)
|
|
169
|
+
}
|
|
170
|
+
/** 黑白名单都为空 */
|
|
171
|
+
return true
|
|
172
|
+
}
|
|
173
|
+
return true
|
|
174
|
+
}
|
|
175
|
+
/** 白名单启用 */
|
|
176
|
+
if (this.App.WhiteList.GroupMsgLog) {
|
|
177
|
+
this.GroupMsgPrint = e => {
|
|
178
|
+
if (Array.isArray(this.Config.WhiteList.GroupMsgLog) && this.Config.WhiteList.GroupMsgLog.length) {
|
|
179
|
+
const group_id = (Number(e.group_id) || String(e.group_id))
|
|
180
|
+
return this.Config.WhiteList.GroupMsgLog.includes(group_id)
|
|
181
|
+
}
|
|
182
|
+
return true
|
|
183
|
+
}
|
|
184
|
+
return true
|
|
185
|
+
}
|
|
186
|
+
/** 黑名单启用 */
|
|
187
|
+
if (this.App.BlackList.GroupMsgLog) {
|
|
188
|
+
this.GroupMsgPrint = e => {
|
|
189
|
+
if (Array.isArray(this.Config.BlackList.GroupMsgLog) && this.Config.BlackList.GroupMsgLog.length) {
|
|
190
|
+
const group_id = (Number(e.group_id) || String(e.group_id))
|
|
191
|
+
return !this.Config.BlackList.GroupMsgLog.includes(group_id)
|
|
192
|
+
}
|
|
193
|
+
return true
|
|
194
|
+
}
|
|
195
|
+
return true
|
|
196
|
+
}
|
|
197
|
+
/** 都没有启用 */
|
|
198
|
+
this.GroupMsgPrint = () => true
|
|
199
199
|
}
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* 黑白名单插件 哪个插件可以被触发
|
|
203
|
-
*/
|
|
204
|
-
#PluginEnable () {
|
|
205
|
-
/** 同时启用 */
|
|
206
|
-
if (this.App.GroupConfig.enable && this.App.GroupConfig.disable) {
|
|
207
|
-
this.PluginEnable = (app, config) => {
|
|
208
|
-
/** 白名单不为空 */
|
|
209
|
-
if (Array.isArray(config.enable) && config.enable.length) {
|
|
210
|
-
/** 插件包是否处于功能白名单 */
|
|
211
|
-
if (config.enable.includes(app.file.dir)) { return true }
|
|
212
|
-
/** 插件是否处于功能白名单 */
|
|
213
|
-
if (config.enable.includes(`${app.file.dir}/${app.file.name}`)) { return true }
|
|
214
|
-
/** 插件名称是否处于功能白名单 */
|
|
215
|
-
if (config.enable.includes(app.name)) { return true }
|
|
216
|
-
logger.debug(logger.green(`[功能白名单] 插件名称 [${app.name}] 不存在功能白名单中`))
|
|
217
|
-
return false
|
|
218
|
-
}
|
|
219
|
-
/** 白名单为空 检查黑名单是否为空 */
|
|
220
|
-
if (Array.isArray(config.disable) && config.disable.length) {
|
|
221
|
-
/** 插件包是否处于功能黑名单 */
|
|
222
|
-
if (config.disable.includes(app.file.dir)) {
|
|
223
|
-
logger.debug(logger.red(`[功能黑名单] 插件包 [${app.file.dir}] 处于功能黑名单`))
|
|
224
|
-
return false
|
|
225
|
-
}
|
|
226
|
-
/** 插件是否处于功能黑名单 */
|
|
227
|
-
if (config.disable.includes(`${app.file.dir}/${app.file.name}`)) {
|
|
228
|
-
logger.debug(logger.red(`[功能黑名单] 插件 [${app.file.dir}/${app.file.name}] 处于功能黑名单`))
|
|
229
|
-
return false
|
|
230
|
-
}
|
|
231
|
-
/** 插件名称是否处于功能黑名单 */
|
|
232
|
-
if (config.disable.includes(app.name)) {
|
|
233
|
-
logger.debug(logger.red(`[功能黑名单] 插件名称 [${app.name}] 处于功能黑名单`))
|
|
234
|
-
return false
|
|
235
|
-
}
|
|
236
|
-
return true
|
|
237
|
-
}
|
|
238
|
-
/** 黑白名单都为空 */
|
|
239
|
-
return true
|
|
240
|
-
}
|
|
241
|
-
return true
|
|
242
|
-
}
|
|
243
|
-
/** 白名单启用 */
|
|
244
|
-
if (this.App.GroupConfig.enable) {
|
|
245
|
-
this.PluginEnable = (app, config) => {
|
|
246
|
-
if (Array.isArray(config.enable) && config.enable.length) {
|
|
247
|
-
if (config.enable.includes(app.file.dir)) { return true }
|
|
248
|
-
if (config.enable.includes(`${app.file.dir}/${app.file.name}`)) { return true }
|
|
249
|
-
if (config.enable.includes(app.name)) { return true }
|
|
250
|
-
logger.debug(logger.green(`[功能白名单] 插件名称 [${app.name}] 不存在功能白名单中`))
|
|
251
|
-
return false
|
|
252
|
-
}
|
|
253
|
-
return true
|
|
254
|
-
}
|
|
255
|
-
return true
|
|
256
|
-
}
|
|
257
|
-
/** 黑名单启用 */
|
|
258
|
-
if (this.App.GroupConfig.disable) {
|
|
259
|
-
this.PluginEnable = (app, config) => {
|
|
260
|
-
if (Array.isArray(config.disable) && config.disable.length) {
|
|
261
|
-
if (config.disable.includes(app.file.dir)) {
|
|
262
|
-
logger.debug(logger.red(`[功能黑名单] 插件包 [${app.file.dir}] 处于功能黑名单`))
|
|
263
|
-
return false
|
|
264
|
-
}
|
|
265
|
-
if (config.disable.includes(`${app.file.dir}/${app.file.name}`)) {
|
|
266
|
-
logger.debug(logger.red(`[功能黑名单] 插件 [${app.file.dir}/${app.file.name}] 处于功能黑名单`))
|
|
267
|
-
return false
|
|
268
|
-
}
|
|
269
|
-
if (config.disable.includes(app.name)) {
|
|
270
|
-
logger.debug(logger.red(`[功能黑名单] 插件名称 [${app.name}] 处于功能黑名单`))
|
|
271
|
-
return false
|
|
272
|
-
}
|
|
273
|
-
return true
|
|
274
|
-
}
|
|
275
|
-
return true
|
|
276
|
-
}
|
|
277
|
-
return true
|
|
278
|
-
}
|
|
279
|
-
/** 都没有启用 */
|
|
280
|
-
this.PluginEnable = () => true
|
|
281
|
-
return true
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* 黑白名单插件 哪个插件可以被触发
|
|
203
|
+
*/
|
|
204
|
+
#PluginEnable () {
|
|
205
|
+
/** 同时启用 */
|
|
206
|
+
if (this.App.GroupConfig.enable && this.App.GroupConfig.disable) {
|
|
207
|
+
this.PluginEnable = (app, config) => {
|
|
208
|
+
/** 白名单不为空 */
|
|
209
|
+
if (Array.isArray(config.enable) && config.enable.length) {
|
|
210
|
+
/** 插件包是否处于功能白名单 */
|
|
211
|
+
if (config.enable.includes(app.file.dir)) { return true }
|
|
212
|
+
/** 插件是否处于功能白名单 */
|
|
213
|
+
if (config.enable.includes(`${app.file.dir}/${app.file.name}`)) { return true }
|
|
214
|
+
/** 插件名称是否处于功能白名单 */
|
|
215
|
+
if (config.enable.includes(app.name)) { return true }
|
|
216
|
+
logger.debug(logger.green(`[功能白名单] 插件名称 [${app.name}] 不存在功能白名单中`))
|
|
217
|
+
return false
|
|
218
|
+
}
|
|
219
|
+
/** 白名单为空 检查黑名单是否为空 */
|
|
220
|
+
if (Array.isArray(config.disable) && config.disable.length) {
|
|
221
|
+
/** 插件包是否处于功能黑名单 */
|
|
222
|
+
if (config.disable.includes(app.file.dir)) {
|
|
223
|
+
logger.debug(logger.red(`[功能黑名单] 插件包 [${app.file.dir}] 处于功能黑名单`))
|
|
224
|
+
return false
|
|
225
|
+
}
|
|
226
|
+
/** 插件是否处于功能黑名单 */
|
|
227
|
+
if (config.disable.includes(`${app.file.dir}/${app.file.name}`)) {
|
|
228
|
+
logger.debug(logger.red(`[功能黑名单] 插件 [${app.file.dir}/${app.file.name}] 处于功能黑名单`))
|
|
229
|
+
return false
|
|
230
|
+
}
|
|
231
|
+
/** 插件名称是否处于功能黑名单 */
|
|
232
|
+
if (config.disable.includes(app.name)) {
|
|
233
|
+
logger.debug(logger.red(`[功能黑名单] 插件名称 [${app.name}] 处于功能黑名单`))
|
|
234
|
+
return false
|
|
235
|
+
}
|
|
236
|
+
return true
|
|
237
|
+
}
|
|
238
|
+
/** 黑白名单都为空 */
|
|
239
|
+
return true
|
|
240
|
+
}
|
|
241
|
+
return true
|
|
242
|
+
}
|
|
243
|
+
/** 白名单启用 */
|
|
244
|
+
if (this.App.GroupConfig.enable) {
|
|
245
|
+
this.PluginEnable = (app, config) => {
|
|
246
|
+
if (Array.isArray(config.enable) && config.enable.length) {
|
|
247
|
+
if (config.enable.includes(app.file.dir)) { return true }
|
|
248
|
+
if (config.enable.includes(`${app.file.dir}/${app.file.name}`)) { return true }
|
|
249
|
+
if (config.enable.includes(app.name)) { return true }
|
|
250
|
+
logger.debug(logger.green(`[功能白名单] 插件名称 [${app.name}] 不存在功能白名单中`))
|
|
251
|
+
return false
|
|
252
|
+
}
|
|
253
|
+
return true
|
|
254
|
+
}
|
|
255
|
+
return true
|
|
256
|
+
}
|
|
257
|
+
/** 黑名单启用 */
|
|
258
|
+
if (this.App.GroupConfig.disable) {
|
|
259
|
+
this.PluginEnable = (app, config) => {
|
|
260
|
+
if (Array.isArray(config.disable) && config.disable.length) {
|
|
261
|
+
if (config.disable.includes(app.file.dir)) {
|
|
262
|
+
logger.debug(logger.red(`[功能黑名单] 插件包 [${app.file.dir}] 处于功能黑名单`))
|
|
263
|
+
return false
|
|
264
|
+
}
|
|
265
|
+
if (config.disable.includes(`${app.file.dir}/${app.file.name}`)) {
|
|
266
|
+
logger.debug(logger.red(`[功能黑名单] 插件 [${app.file.dir}/${app.file.name}] 处于功能黑名单`))
|
|
267
|
+
return false
|
|
268
|
+
}
|
|
269
|
+
if (config.disable.includes(app.name)) {
|
|
270
|
+
logger.debug(logger.red(`[功能黑名单] 插件名称 [${app.name}] 处于功能黑名单`))
|
|
271
|
+
return false
|
|
272
|
+
}
|
|
273
|
+
return true
|
|
274
|
+
}
|
|
275
|
+
return true
|
|
276
|
+
}
|
|
277
|
+
return true
|
|
278
|
+
}
|
|
279
|
+
/** 都没有启用 */
|
|
280
|
+
this.PluginEnable = () => true
|
|
281
|
+
return true
|
|
282
282
|
}
|
|
283
|
-
|
|
284
|
-
/** 群聊cd */
|
|
285
|
-
#CD () {
|
|
286
|
-
/** 同时启用 */
|
|
287
|
-
if (this.App.GroupConfig.GroupCD && this.App.GroupConfig.GroupUserCD) {
|
|
288
|
-
this.CD = (e, config) => {
|
|
289
|
-
const key = `${e.group_id}.${e.user_id}`
|
|
290
|
-
/** cd中... */
|
|
291
|
-
if (this.GroupCD[e.group_id] || this.GroupUserCD[key]) { return false }
|
|
292
|
-
/** 全局 */
|
|
293
|
-
this.GroupCD[e.group_id] = true
|
|
294
|
-
setTimeout(() => delete this.GroupCD[e.group_id], config.GroupCD * 1000)
|
|
295
|
-
/** 个人 */
|
|
296
|
-
this.GroupUserCD[key] = true
|
|
297
|
-
setTimeout(() => delete this.GroupUserCD[key], config.GroupUserCD * 1000)
|
|
298
|
-
return true
|
|
299
|
-
}
|
|
300
|
-
return true
|
|
301
|
-
}
|
|
302
|
-
/** 启用单个群聊所有消息冷却时间 */
|
|
303
|
-
if (this.App.GroupConfig.GroupCD) {
|
|
304
|
-
this.CD = (e, config) => {
|
|
305
|
-
/** cd中... */
|
|
306
|
-
if (this.GroupCD[e.group_id]) { return false }
|
|
307
|
-
/** 全局 */
|
|
308
|
-
this.GroupCD[e.group_id] = true
|
|
309
|
-
setTimeout(() => delete this.GroupCD[e.group_id], config.GroupCD * 1000)
|
|
310
|
-
return true
|
|
311
|
-
}
|
|
312
|
-
return true
|
|
313
|
-
}
|
|
314
|
-
/** 启用单个群聊个人消息冷却时间 */
|
|
315
|
-
if (this.App.GroupConfig.GroupUserCD) {
|
|
316
|
-
this.CD = (e, config) => {
|
|
317
|
-
const key = `${e.group_id}.${e.user_id}`
|
|
318
|
-
/** cd中... */
|
|
319
|
-
if (this.GroupUserCD[key]) { return false }
|
|
320
|
-
/** 个人 */
|
|
321
|
-
this.GroupUserCD[key] = true
|
|
322
|
-
setTimeout(() => delete this.GroupUserCD[key], config.GroupUserCD * 1000)
|
|
323
|
-
return true
|
|
324
|
-
}
|
|
325
|
-
return true
|
|
326
|
-
}
|
|
327
|
-
/** 都没有启用 */
|
|
328
|
-
this.CD = () => true
|
|
283
|
+
|
|
284
|
+
/** 群聊cd */
|
|
285
|
+
#CD () {
|
|
286
|
+
/** 同时启用 */
|
|
287
|
+
if (this.App.GroupConfig.GroupCD && this.App.GroupConfig.GroupUserCD) {
|
|
288
|
+
this.CD = (e, config) => {
|
|
289
|
+
const key = `${e.group_id}.${e.user_id}`
|
|
290
|
+
/** cd中... */
|
|
291
|
+
if (this.GroupCD[e.group_id] || this.GroupUserCD[key]) { return false }
|
|
292
|
+
/** 全局 */
|
|
293
|
+
this.GroupCD[e.group_id] = true
|
|
294
|
+
setTimeout(() => delete this.GroupCD[e.group_id], config.GroupCD * 1000)
|
|
295
|
+
/** 个人 */
|
|
296
|
+
this.GroupUserCD[key] = true
|
|
297
|
+
setTimeout(() => delete this.GroupUserCD[key], config.GroupUserCD * 1000)
|
|
298
|
+
return true
|
|
299
|
+
}
|
|
300
|
+
return true
|
|
301
|
+
}
|
|
302
|
+
/** 启用单个群聊所有消息冷却时间 */
|
|
303
|
+
if (this.App.GroupConfig.GroupCD) {
|
|
304
|
+
this.CD = (e, config) => {
|
|
305
|
+
/** cd中... */
|
|
306
|
+
if (this.GroupCD[e.group_id]) { return false }
|
|
307
|
+
/** 全局 */
|
|
308
|
+
this.GroupCD[e.group_id] = true
|
|
309
|
+
setTimeout(() => delete this.GroupCD[e.group_id], config.GroupCD * 1000)
|
|
310
|
+
return true
|
|
311
|
+
}
|
|
312
|
+
return true
|
|
313
|
+
}
|
|
314
|
+
/** 启用单个群聊个人消息冷却时间 */
|
|
315
|
+
if (this.App.GroupConfig.GroupUserCD) {
|
|
316
|
+
this.CD = (e, config) => {
|
|
317
|
+
const key = `${e.group_id}.${e.user_id}`
|
|
318
|
+
/** cd中... */
|
|
319
|
+
if (this.GroupUserCD[key]) { return false }
|
|
320
|
+
/** 个人 */
|
|
321
|
+
this.GroupUserCD[key] = true
|
|
322
|
+
setTimeout(() => delete this.GroupUserCD[key], config.GroupUserCD * 1000)
|
|
323
|
+
return true
|
|
324
|
+
}
|
|
325
|
+
return true
|
|
326
|
+
}
|
|
327
|
+
/** 都没有启用 */
|
|
328
|
+
this.CD = () => true
|
|
329
329
|
}
|
|
330
|
-
|
|
331
|
-
/**
|
|
332
|
-
* 响应模式
|
|
333
|
-
*/
|
|
334
|
-
#mode () {
|
|
335
|
-
/** 启用 */
|
|
336
|
-
if (this.App.GroupConfig.mode) {
|
|
337
|
-
this.mode = (e, config) => {
|
|
338
|
-
const modeMap = {
|
|
339
|
-
0: () => true,
|
|
340
|
-
1: () => e.atBot,
|
|
341
|
-
2: () => e.isMaster,
|
|
342
|
-
3: () => !!e.alias,
|
|
343
|
-
4: () => {
|
|
344
|
-
if (e.atBot) { return true }
|
|
345
|
-
return !!e.alias
|
|
346
|
-
},
|
|
347
|
-
5: () => {
|
|
348
|
-
if (e.isMaster) { return true }
|
|
349
|
-
if (e.atBot) { return true }
|
|
350
|
-
return !!e.alias
|
|
351
|
-
},
|
|
352
|
-
}
|
|
353
|
-
return modeMap[Number(config.mode) || 0]()
|
|
354
|
-
}
|
|
355
|
-
return true
|
|
356
|
-
}
|
|
357
|
-
/** 未启用 */
|
|
358
|
-
this.mode = () => true
|
|
330
|
+
|
|
331
|
+
/**
|
|
332
|
+
* 响应模式
|
|
333
|
+
*/
|
|
334
|
+
#mode () {
|
|
335
|
+
/** 启用 */
|
|
336
|
+
if (this.App.GroupConfig.mode) {
|
|
337
|
+
this.mode = (e, config) => {
|
|
338
|
+
const modeMap = {
|
|
339
|
+
0: () => true,
|
|
340
|
+
1: () => e.atBot,
|
|
341
|
+
2: () => e.isMaster,
|
|
342
|
+
3: () => !!e.alias,
|
|
343
|
+
4: () => {
|
|
344
|
+
if (e.atBot) { return true }
|
|
345
|
+
return !!e.alias
|
|
346
|
+
},
|
|
347
|
+
5: () => {
|
|
348
|
+
if (e.isMaster) { return true }
|
|
349
|
+
if (e.atBot) { return true }
|
|
350
|
+
return !!e.alias
|
|
351
|
+
},
|
|
352
|
+
}
|
|
353
|
+
return modeMap[Number(config.mode) || 0]()
|
|
354
|
+
}
|
|
355
|
+
return true
|
|
356
|
+
}
|
|
357
|
+
/** 未启用 */
|
|
358
|
+
this.mode = () => true
|
|
359
359
|
}
|
|
360
|
-
|
|
361
|
-
/**
|
|
362
|
-
* 前缀、别名
|
|
363
|
-
*/
|
|
364
|
-
#alias () {
|
|
365
|
-
/** 启用 */
|
|
366
|
-
if (this.App.GroupConfig.alias) {
|
|
367
|
-
this.alias = (e, config) => {
|
|
368
|
-
const aliasRegex = new RegExp(`^(${config.alias.join('|')})`)
|
|
369
|
-
const match = e.msg.match(aliasRegex)
|
|
370
|
-
if (match) {
|
|
371
|
-
e.msg = e.msg.replace(aliasRegex, '').trim()
|
|
372
|
-
e.alias = match[1]
|
|
373
|
-
return true
|
|
374
|
-
}
|
|
375
|
-
return false
|
|
376
|
-
}
|
|
377
|
-
return true
|
|
378
|
-
}
|
|
379
|
-
/** 未启用 */
|
|
380
|
-
this.alias = () => true
|
|
381
|
-
}
|
|
382
|
-
})()
|
|
360
|
+
|
|
361
|
+
/**
|
|
362
|
+
* 前缀、别名
|
|
363
|
+
*/
|
|
364
|
+
#alias () {
|
|
365
|
+
/** 启用 */
|
|
366
|
+
if (this.App.GroupConfig.alias) {
|
|
367
|
+
this.alias = (e, config) => {
|
|
368
|
+
const aliasRegex = new RegExp(`^(${config.alias.join('|')})`)
|
|
369
|
+
const match = e.msg.match(aliasRegex)
|
|
370
|
+
if (match) {
|
|
371
|
+
e.msg = e.msg.replace(aliasRegex, '').trim()
|
|
372
|
+
e.alias = match[1]
|
|
373
|
+
return true
|
|
374
|
+
}
|
|
375
|
+
return false
|
|
376
|
+
}
|
|
377
|
+
return true
|
|
378
|
+
}
|
|
379
|
+
/** 未启用 */
|
|
380
|
+
this.alias = () => true
|
|
381
|
+
}
|
|
382
|
+
})()
|