koishi-plugin-maibot 1.6.14 → 1.7.10-alpha

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/api.d.ts CHANGED
@@ -4,174 +4,186 @@ export interface ApiConfig {
4
4
  }
5
5
  export declare class MaiBotAPI {
6
6
  private client;
7
- private static readonly ADMIN_PREFIX;
8
7
  constructor(config: ApiConfig);
9
8
  /**
10
- * 二维码转用户ID
9
+ * 机台 Ping
10
+ * GET /api/public/mai_ping
11
11
  */
12
- qr2userid(qrText: string): Promise<{
13
- QRStatus: boolean;
14
- UserID: string;
15
- }>;
16
- /**
17
- * 发票(2-6倍)
18
- */
19
- getTicket(maiUid: string, ticketId: number, clientId: string, regionId: number, placeId: number, placeName?: string, regionName?: string): Promise<{
20
- LoginStatus?: boolean;
21
- LogoutStatus?: boolean;
22
- TicketStatus: boolean;
12
+ maiPing(): Promise<{
13
+ returnCode?: number;
14
+ serverTime?: number;
15
+ result?: string;
23
16
  }>;
24
17
  /**
25
- * 清空功能票
18
+ * 查看用户信息(预览)
19
+ * GET /api/public/get_preview
20
+ * 需要: client_id, qr_text
26
21
  */
27
- clearTicket(maiUid: string, clientId: string, regionId: number, placeId: number, placeName: string, regionName: string): Promise<{
28
- LoginStatus?: boolean;
29
- LogoutStatus?: boolean;
30
- UserAllStatus?: boolean;
31
- UserLogStatus?: boolean;
32
- }>;
33
- /**
34
- * 用户状态预览
35
- */
36
- preview(maiUid: string): Promise<{
37
- UserID: string;
38
- BanState: string;
39
- IsLogin: string;
40
- LastLoginDate: string;
41
- LastPlayDate: string;
42
- Rating: string;
43
- UserName: string;
22
+ getPreview(clientId: string, qrText: string): Promise<{
23
+ UserID: string | number;
24
+ BanState?: number;
25
+ IsLogin?: boolean;
26
+ LastLoginDate?: string;
27
+ LastPlayDate?: string;
28
+ Rating?: number;
29
+ UserName?: string;
44
30
  DataVersion?: string;
45
31
  RomVersion?: string;
46
32
  }>;
47
- /**
48
- * 用户登录(锁号)
49
- */
50
- login(maiUid: string, regionId: number, placeId: number, clientId: string, token: string): Promise<{
51
- LoginStatus: boolean;
52
- LoginId?: number;
53
- LastLoginDate?: string;
54
- UserID?: number;
55
- }>;
56
- /**
57
- * 用户登出
58
- */
59
- logout(maiUid: string, regionId: string, clientId: string, placeId: string, token: string): Promise<{
60
- LogoutStatus: boolean;
61
- }>;
62
- /**
63
- * 获取1.5倍票
64
- */
65
- get15Ticket(maiUid: string, clientId: string, regionId: number, placeId: number, placeName: string, regionName: string, token: string): Promise<{
66
- LoginStatus: boolean;
67
- LogoutStatus: boolean;
68
- UserAllStatus: boolean;
69
- UserLogStatus: boolean;
70
- }>;
71
33
  /**
72
34
  * 上传水鱼 B50
35
+ * POST /api/public/upload_b50
36
+ * 需要: region_id, client_id, place_id, qr_text, fish_token
73
37
  */
74
- uploadB50(maiUid: string, fishToken: string): Promise<{
38
+ uploadB50(regionId: number, clientId: string, placeId: number, qrText: string, fishToken: string): Promise<{
75
39
  UploadStatus: boolean;
76
40
  msg: string;
77
41
  task_id: string;
42
+ login_time?: number;
43
+ userID?: string;
44
+ token?: string;
78
45
  }>;
79
46
  /**
80
47
  * 查询水鱼 B50 任务状态
48
+ * GET /api/public/get_b50_task_status
49
+ * 需要: mai_uid (加密的用户ID)
81
50
  */
82
51
  getB50TaskStatus(maiUid: string): Promise<{
83
52
  code: number;
84
- alive_task_id: string;
85
- alive_task_time: string;
53
+ alive_task_id: string | number;
54
+ alive_task_time: number;
55
+ task_id?: number;
56
+ task_status?: string;
86
57
  }>;
87
58
  /**
88
- * 根据ID查询水鱼 B50 任务
59
+ * 根据任务 ID 查询水鱼 B50 任务
60
+ * GET /api/public/get_b50_task_byid
61
+ * 需要: task_id
89
62
  */
90
63
  getB50TaskById(taskId: string): Promise<{
91
64
  code: number;
92
- alive_task_id: string;
93
- alive_task_time: string;
94
- alive_task_end_time?: string;
95
- error?: string;
65
+ alive_task_id: string | number;
66
+ alive_task_time: number;
67
+ alive_task_end_time?: number | null;
68
+ error?: string | null;
69
+ logout_status?: boolean | null;
96
70
  done: boolean;
97
71
  }>;
98
72
  /**
99
73
  * 上传落雪 B50
74
+ * POST /api/public/upload_lx_b50
75
+ * 需要: region_id, client_id, place_id, qr_text, lxns_code
100
76
  */
101
- uploadLxB50(maiUid: string, lxnsCode: string): Promise<{
77
+ uploadLxB50(regionId: number, clientId: string, placeId: number, qrText: string, lxnsCode: string): Promise<{
102
78
  UploadStatus: boolean;
103
79
  msg: string;
104
80
  task_id: string;
81
+ login_time?: number;
82
+ userID?: string;
83
+ token?: string;
105
84
  }>;
106
85
  /**
107
86
  * 查询落雪 B50 任务状态
87
+ * GET /api/public/get_lx_b50_task_status
88
+ * 需要: mai_uid (加密的用户ID)
108
89
  */
109
90
  getLxB50TaskStatus(maiUid: string): Promise<{
110
91
  code: number;
111
- alive_task_id: string;
112
- alive_task_time: string;
92
+ alive_task_id: string | number;
93
+ alive_task_time: number;
94
+ task_id?: number;
95
+ task_status?: string;
113
96
  }>;
114
97
  /**
115
- * 根据ID查询落雪 B50 任务
98
+ * 根据任务 ID 查询落雪 B50 任务
99
+ * GET /api/public/get_lx_b50_task_byid
100
+ * 需要: task_id
116
101
  */
117
102
  getLxB50TaskById(taskId: string): Promise<{
118
103
  code: number;
119
- alive_task_id: string;
120
- alive_task_time: string;
121
- alive_task_end_time?: string;
122
- error?: string;
104
+ alive_task_id: string | number;
105
+ alive_task_time: number;
106
+ alive_task_end_time?: number | null;
107
+ error?: string | null;
108
+ logout_status?: boolean | null;
123
109
  done: boolean;
124
110
  }>;
125
111
  /**
126
- * 发收藏品
112
+ * 测试登录
113
+ * POST /api/private/test_login
114
+ * 需要: region_id, client_id, place_id, qr_text
127
115
  */
128
- getItem(maiUid: string, itemId: string, itemKind: string, clientId: string, regionId: number, placeId: number, placeName: string, regionName: string): Promise<{
116
+ testLogin(regionId: number, clientId: string, placeId: number, qrText: string): Promise<{
117
+ login_time?: number;
118
+ login_result?: {
119
+ Result: {
120
+ returnCode: number;
121
+ };
122
+ Cookie: string;
123
+ };
124
+ QrStatus?: boolean;
129
125
  LoginStatus?: boolean;
130
126
  LogoutStatus?: boolean;
131
- ItemStatus?: boolean;
127
+ TicketStatus?: boolean;
132
128
  }>;
133
129
  /**
134
- * 清收藏品
130
+ * 获取选项文件
131
+ * GET /api/private/get_opt
132
+ * 需要: title_ver, client_id
135
133
  */
136
- clearItem(maiUid: string, itemId: string, itemKind: string, clientId: string, regionId: number, placeId: number, placeName: string, regionName: string): Promise<{
137
- LoginStatus?: boolean;
138
- LogoutStatus?: boolean;
139
- ClearStatus?: boolean;
134
+ getOpt(titleVer: string, clientId: string): Promise<{
135
+ app_url: string[];
136
+ opt_url: string[];
137
+ latest_app_time?: string | null;
138
+ latest_opt_time?: string | null;
139
+ error?: string;
140
140
  }>;
141
141
  /**
142
- * 舞里程签到 / 发舞里程
142
+ * 获取密钥信息
143
+ * GET /api/private/get_keyinfo
144
+ * 需要: title_ver, client_id
143
145
  */
144
- maimile(maiUid: string, maiMile: number, clientId: string, regionId: number, placeId: number, placeName: string, regionName: string): Promise<{
145
- LoginStatus?: boolean;
146
- LogoutStatus?: boolean;
147
- MileStatus?: boolean;
148
- CurrentMile?: number;
146
+ getKeyInfo(titleVer: string, clientId: string): Promise<{
147
+ clientId: string;
148
+ placeId: number;
149
+ placeName: string;
150
+ regionId: number;
151
+ regionName: string;
152
+ error?: string;
149
153
  }>;
150
154
  /**
151
- * 查询票券情况
155
+ * 获取功能票
156
+ * POST /api/private/get_ticket
157
+ * 需要: region_id, client_id, place_id, ticket_id, qr_text
152
158
  */
153
- getCharge(maiUid: string, token: string): Promise<{
154
- ChargeStatus: boolean;
155
- userChargeList?: Array<{
156
- chargeId: number;
157
- purchaseDate: string;
158
- stock: number;
159
- validDate: string;
160
- }>;
161
- userFreeChargeList?: Array<{
162
- chargeId: number;
163
- stock: number;
164
- }>;
165
- UserID?: number;
159
+ getTicket(regionId: number, clientId: string, placeId: number, ticketId: number, qrText: string): Promise<{
160
+ QrStatus: boolean;
161
+ LoginStatus: boolean;
162
+ LogoutStatus: boolean;
163
+ TicketStatus: boolean;
166
164
  }>;
167
165
  /**
168
- * 上传游戏乐曲成绩
166
+ * @deprecated 旧API,已不再支持
167
+ * 二维码转用户ID - 现在使用 getPreview 代替
169
168
  */
170
- uploadScore(maiUid: string, clientId: string, regionId: number, placeId: number, placeName: string, regionName: string, musicId: number, level: number, achievement: number, fcStatus: number, syncStatus: number, dxScore: number): Promise<{
171
- LoginStatus?: boolean;
172
- LogoutStatus?: boolean;
173
- UploadStatus?: boolean;
174
- UserLogStatus?: boolean;
169
+ qr2userid(qrText: string): Promise<{
170
+ QRStatus: boolean;
171
+ UserID: string;
172
+ }>;
173
+ /**
174
+ * @deprecated 旧API,已不再支持
175
+ * 用户状态预览 - 现在使用 getPreview 代替(需要qr_text)
176
+ */
177
+ preview(maiUid: string): Promise<{
178
+ UserID: string;
179
+ BanState: string;
180
+ IsLogin: string;
181
+ LastLoginDate: string;
182
+ LastPlayDate: string;
183
+ Rating: string;
184
+ UserName: string;
185
+ DataVersion?: string;
186
+ RomVersion?: string;
175
187
  }>;
176
188
  }
177
189
  //# sourceMappingURL=api.d.ts.map
package/lib/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/lib/api.js CHANGED
@@ -16,111 +16,39 @@ class MaiBotAPI {
16
16
  });
17
17
  }
18
18
  /**
19
- * 二维码转用户ID
19
+ * 机台 Ping
20
+ * GET /api/public/mai_ping
20
21
  */
21
- async qr2userid(qrText) {
22
- const response = await this.client.post(`/api/qr2userid/${qrText}`);
22
+ async maiPing() {
23
+ const response = await this.client.get('/api/public/mai_ping');
23
24
  return response.data;
24
25
  }
25
26
  /**
26
- * 发票(2-6倍)
27
+ * 查看用户信息(预览)
28
+ * GET /api/public/get_preview
29
+ * 需要: client_id, qr_text
27
30
  */
28
- async getTicket(maiUid, ticketId, clientId, regionId, placeId, placeName, regionName) {
29
- const response = await this.client.post(`${MaiBotAPI.ADMIN_PREFIX}/get_ticket`, null, {
31
+ async getPreview(clientId, qrText) {
32
+ const response = await this.client.get('/api/public/get_preview', {
30
33
  params: {
31
- mai_uid: maiUid,
32
- ticket_id: ticketId,
33
34
  client_id: clientId,
34
- region_id: regionId,
35
- place_id: placeId,
36
- place_name: placeName,
37
- region_name: regionName,
35
+ qr_text: qrText,
38
36
  },
39
37
  });
40
38
  return response.data;
41
39
  }
42
40
  /**
43
- * 清空功能票
44
- */
45
- async clearTicket(maiUid, clientId, regionId, placeId, placeName, regionName) {
46
- const response = await this.client.post(`${MaiBotAPI.ADMIN_PREFIX}/clear_ticket`, null, {
47
- params: {
48
- mai_uid: maiUid,
49
- client_id: clientId,
50
- region_id: regionId,
51
- place_id: placeId,
52
- place_name: placeName,
53
- region_name: regionName,
54
- },
55
- });
56
- return response.data;
57
- }
58
- /**
59
- * 用户状态预览
60
- */
61
- async preview(maiUid) {
62
- const response = await this.client.get('/api/preview', {
63
- params: { mai_uid: maiUid },
64
- });
65
- return response.data;
66
- }
67
- /**
68
- * 用户登录(锁号)
69
- */
70
- async login(maiUid, regionId, placeId, clientId, token) {
71
- const response = await this.client.post('/api/login', {
72
- token,
73
- }, {
74
- params: {
75
- mai_uid: maiUid,
76
- region_id: regionId,
77
- place_id: placeId,
78
- client_id: clientId,
79
- },
80
- });
81
- return response.data;
82
- }
83
- /**
84
- * 用户登出
41
+ * 上传水鱼 B50
42
+ * POST /api/public/upload_b50
43
+ * 需要: region_id, client_id, place_id, qr_text, fish_token
85
44
  */
86
- async logout(maiUid, regionId, clientId, placeId, token) {
87
- const response = await this.client.post('/api/logout', {
88
- token,
89
- }, {
45
+ async uploadB50(regionId, clientId, placeId, qrText, fishToken) {
46
+ const response = await this.client.post('/api/public/upload_b50', null, {
90
47
  params: {
91
- mai_uid: maiUid,
92
48
  region_id: regionId,
93
49
  client_id: clientId,
94
50
  place_id: placeId,
95
- },
96
- });
97
- return response.data;
98
- }
99
- /**
100
- * 获取1.5倍票
101
- */
102
- async get15Ticket(maiUid, clientId, regionId, placeId, placeName, regionName, token) {
103
- const response = await this.client.post('/api/get_15_ticket', {
104
- token,
105
- }, {
106
- params: {
107
- mai_uid: maiUid,
108
- client_id: clientId,
109
- region_id: regionId,
110
- place_id: placeId,
111
- place_name: placeName,
112
- region_name: regionName,
113
- },
114
- });
115
- return response.data;
116
- }
117
- /**
118
- * 上传水鱼 B50
119
- */
120
- async uploadB50(maiUid, fishToken) {
121
- const response = await this.client.post('/api/upload_b50', null, {
122
- params: {
123
- mai_uid: maiUid,
51
+ qr_text: qrText,
124
52
  fish_token: fishToken,
125
53
  },
126
54
  });
@@ -128,29 +56,38 @@ class MaiBotAPI {
128
56
  }
129
57
  /**
130
58
  * 查询水鱼 B50 任务状态
59
+ * GET /api/public/get_b50_task_status
60
+ * 需要: mai_uid (加密的用户ID)
131
61
  */
132
62
  async getB50TaskStatus(maiUid) {
133
- const response = await this.client.get('/api/get_b50_task_status', {
63
+ const response = await this.client.get('/api/public/get_b50_task_status', {
134
64
  params: { mai_uid: maiUid },
135
65
  });
136
66
  return response.data;
137
67
  }
138
68
  /**
139
- * 根据ID查询水鱼 B50 任务
69
+ * 根据任务 ID 查询水鱼 B50 任务
70
+ * GET /api/public/get_b50_task_byid
71
+ * 需要: task_id
140
72
  */
141
73
  async getB50TaskById(taskId) {
142
- const response = await this.client.get('/api/get_b50_task_byid', {
143
- params: { taskid: taskId },
74
+ const response = await this.client.get('/api/public/get_b50_task_byid', {
75
+ params: { task_id: taskId },
144
76
  });
145
77
  return response.data;
146
78
  }
147
79
  /**
148
80
  * 上传落雪 B50
81
+ * POST /api/public/upload_lx_b50
82
+ * 需要: region_id, client_id, place_id, qr_text, lxns_code
149
83
  */
150
- async uploadLxB50(maiUid, lxnsCode) {
151
- const response = await this.client.post('/api/upload_lx_b50', null, {
84
+ async uploadLxB50(regionId, clientId, placeId, qrText, lxnsCode) {
85
+ const response = await this.client.post('/api/public/upload_lx_b50', null, {
152
86
  params: {
153
- mai_uid: maiUid,
87
+ region_id: regionId,
88
+ client_id: clientId,
89
+ place_id: placeId,
90
+ qr_text: qrText,
154
91
  lxns_code: lxnsCode,
155
92
  },
156
93
  });
@@ -158,119 +95,105 @@ class MaiBotAPI {
158
95
  }
159
96
  /**
160
97
  * 查询落雪 B50 任务状态
98
+ * GET /api/public/get_lx_b50_task_status
99
+ * 需要: mai_uid (加密的用户ID)
161
100
  */
162
101
  async getLxB50TaskStatus(maiUid) {
163
- const response = await this.client.get('/api/get_lx_b50_task_status', {
102
+ const response = await this.client.get('/api/public/get_lx_b50_task_status', {
164
103
  params: { mai_uid: maiUid },
165
104
  });
166
105
  return response.data;
167
106
  }
168
107
  /**
169
- * 根据ID查询落雪 B50 任务
108
+ * 根据任务 ID 查询落雪 B50 任务
109
+ * GET /api/public/get_lx_b50_task_byid
110
+ * 需要: task_id
170
111
  */
171
112
  async getLxB50TaskById(taskId) {
172
- const response = await this.client.get('/api/get_lx_b50_task_byid', {
173
- params: { taskid: taskId },
113
+ const response = await this.client.get('/api/public/get_lx_b50_task_byid', {
114
+ params: { task_id: taskId },
174
115
  });
175
116
  return response.data;
176
117
  }
177
118
  /**
178
- * 发收藏品
119
+ * 测试登录
120
+ * POST /api/private/test_login
121
+ * 需要: region_id, client_id, place_id, qr_text
179
122
  */
180
- async getItem(maiUid, itemId, itemKind, clientId, regionId, placeId, placeName, regionName) {
181
- const response = await this.client.post(`${MaiBotAPI.ADMIN_PREFIX}/get_item`, null, {
123
+ async testLogin(regionId, clientId, placeId, qrText) {
124
+ const response = await this.client.post('/api/private/test_login', null, {
182
125
  params: {
183
- mai_uid: maiUid,
184
- item_id: itemId,
185
- item_kind: itemKind,
186
- client_id: clientId,
187
126
  region_id: regionId,
127
+ client_id: clientId,
188
128
  place_id: placeId,
189
- place_name: placeName,
190
- region_name: regionName,
129
+ qr_text: qrText,
191
130
  },
192
131
  });
193
132
  return response.data;
194
133
  }
195
134
  /**
196
- * 清收藏品
135
+ * 获取选项文件
136
+ * GET /api/private/get_opt
137
+ * 需要: title_ver, client_id
197
138
  */
198
- async clearItem(maiUid, itemId, itemKind, clientId, regionId, placeId, placeName, regionName) {
199
- const response = await this.client.post(`${MaiBotAPI.ADMIN_PREFIX}/clear_item`, null, {
139
+ async getOpt(titleVer, clientId) {
140
+ const response = await this.client.get('/api/private/get_opt', {
200
141
  params: {
201
- mai_uid: maiUid,
202
- item_id: itemId,
203
- item_kind: itemKind,
142
+ title_ver: titleVer,
204
143
  client_id: clientId,
205
- region_id: regionId,
206
- place_id: placeId,
207
- place_name: placeName,
208
- region_name: regionName,
209
144
  },
210
145
  });
211
146
  return response.data;
212
147
  }
213
148
  /**
214
- * 舞里程签到 / 发舞里程
149
+ * 获取密钥信息
150
+ * GET /api/private/get_keyinfo
151
+ * 需要: title_ver, client_id
215
152
  */
216
- async maimile(maiUid, maiMile, clientId, regionId, placeId, placeName, regionName) {
217
- const response = await this.client.post(`${MaiBotAPI.ADMIN_PREFIX}/maimile`, null, {
153
+ async getKeyInfo(titleVer, clientId) {
154
+ const response = await this.client.get('/api/private/get_keyinfo', {
218
155
  params: {
219
- mai_uid: maiUid,
220
- mai_mile: maiMile,
156
+ title_ver: titleVer,
221
157
  client_id: clientId,
222
- region_id: regionId,
223
- place_id: placeId,
224
- place_name: placeName,
225
- region_name: regionName,
226
158
  },
227
159
  });
228
160
  return response.data;
229
161
  }
230
162
  /**
231
- * 查询票券情况
163
+ * 获取功能票
164
+ * POST /api/private/get_ticket
165
+ * 需要: region_id, client_id, place_id, ticket_id, qr_text
232
166
  */
233
- async getCharge(maiUid, token) {
234
- try {
235
- const response = await this.client.post('/api/get_charge', {
236
- token,
237
- }, {
238
- params: { mai_uid: maiUid },
239
- });
240
- return response.data;
241
- }
242
- catch (error) {
243
- // 处理 401 错误(Turnstile 校验失败)
244
- if (error?.response?.status === 401 && error?.response?.data?.UserID === -2) {
245
- return { UserID: -2, ChargeStatus: false };
246
- }
247
- // 其他错误重新抛出
248
- throw error;
249
- }
250
- }
251
- /**
252
- * 上传游戏乐曲成绩
253
- */
254
- async uploadScore(maiUid, clientId, regionId, placeId, placeName, regionName, musicId, level, achievement, fcStatus, syncStatus, dxScore) {
255
- const response = await this.client.post(`${MaiBotAPI.ADMIN_PREFIX}/upload_score`, null, {
167
+ async getTicket(regionId, clientId, placeId, ticketId, qrText) {
168
+ const response = await this.client.post('/api/private/get_ticket', null, {
256
169
  params: {
257
- mai_uid: maiUid,
258
- client_id: clientId,
259
170
  region_id: regionId,
171
+ client_id: clientId,
260
172
  place_id: placeId,
261
- place_name: placeName,
262
- region_name: regionName,
263
- music_id: musicId,
264
- level: level,
265
- achievement: achievement,
266
- fc_status: fcStatus,
267
- sync_status: syncStatus,
268
- dx_score: dxScore,
173
+ ticket_id: ticketId,
174
+ qr_text: qrText,
269
175
  },
270
176
  });
271
177
  return response.data;
272
178
  }
179
+ // ========== 以下为旧API,已不再支持,保留用于兼容性 ==========
180
+ /**
181
+ * @deprecated 旧API,已不再支持
182
+ * 二维码转用户ID - 现在使用 getPreview 代替
183
+ */
184
+ async qr2userid(qrText) {
185
+ // 尝试使用新API获取用户信息
186
+ // 注意:这个方法需要client_id,但旧代码可能没有提供
187
+ // 为了兼容性,这里保留但标记为deprecated
188
+ throw new Error('qr2userid已废弃,请使用getPreview代替');
189
+ }
190
+ /**
191
+ * @deprecated 旧API,已不再支持
192
+ * 用户状态预览 - 现在使用 getPreview 代替(需要qr_text)
193
+ */
194
+ async preview(maiUid) {
195
+ throw new Error('preview已废弃,请使用getPreview代替(需要qr_text)');
196
+ }
273
197
  }
274
198
  exports.MaiBotAPI = MaiBotAPI;
275
- MaiBotAPI.ADMIN_PREFIX = '/api/t9yf457788igaga3jvvo';
276
199
  //# sourceMappingURL=api.js.map