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 +117 -105
- package/lib/api.d.ts.map +1 -1
- package/lib/api.js +85 -162
- package/lib/api.js.map +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1594 -1059
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
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
|
-
*
|
|
9
|
+
* 机台 Ping
|
|
10
|
+
* GET /api/public/mai_ping
|
|
11
11
|
*/
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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(
|
|
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:
|
|
53
|
+
alive_task_id: string | number;
|
|
54
|
+
alive_task_time: number;
|
|
55
|
+
task_id?: number;
|
|
56
|
+
task_status?: string;
|
|
86
57
|
}>;
|
|
87
58
|
/**
|
|
88
|
-
*
|
|
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:
|
|
94
|
-
alive_task_end_time?:
|
|
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(
|
|
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:
|
|
92
|
+
alive_task_id: string | number;
|
|
93
|
+
alive_task_time: number;
|
|
94
|
+
task_id?: number;
|
|
95
|
+
task_status?: string;
|
|
113
96
|
}>;
|
|
114
97
|
/**
|
|
115
|
-
*
|
|
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:
|
|
121
|
-
alive_task_end_time?:
|
|
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
|
-
|
|
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
|
-
|
|
127
|
+
TicketStatus?: boolean;
|
|
132
128
|
}>;
|
|
133
129
|
/**
|
|
134
|
-
*
|
|
130
|
+
* 获取选项文件
|
|
131
|
+
* GET /api/private/get_opt
|
|
132
|
+
* 需要: title_ver, client_id
|
|
135
133
|
*/
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
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
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
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
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
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
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
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":"AAEA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAe;
|
|
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
|
-
*
|
|
19
|
+
* 机台 Ping
|
|
20
|
+
* GET /api/public/mai_ping
|
|
20
21
|
*/
|
|
21
|
-
async
|
|
22
|
-
const response = await this.client.
|
|
22
|
+
async maiPing() {
|
|
23
|
+
const response = await this.client.get('/api/public/mai_ping');
|
|
23
24
|
return response.data;
|
|
24
25
|
}
|
|
25
26
|
/**
|
|
26
|
-
*
|
|
27
|
+
* 查看用户信息(预览)
|
|
28
|
+
* GET /api/public/get_preview
|
|
29
|
+
* 需要: client_id, qr_text
|
|
27
30
|
*/
|
|
28
|
-
async
|
|
29
|
-
const response = await this.client.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
87
|
-
const response = await this.client.post('/api/
|
|
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
|
-
*
|
|
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: {
|
|
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(
|
|
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
|
-
|
|
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
|
-
*
|
|
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: {
|
|
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
|
|
181
|
-
const response = await this.client.post(
|
|
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
|
-
|
|
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
|
|
199
|
-
const response = await this.client.
|
|
139
|
+
async getOpt(titleVer, clientId) {
|
|
140
|
+
const response = await this.client.get('/api/private/get_opt', {
|
|
200
141
|
params: {
|
|
201
|
-
|
|
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
|
|
217
|
-
const response = await this.client.
|
|
153
|
+
async getKeyInfo(titleVer, clientId) {
|
|
154
|
+
const response = await this.client.get('/api/private/get_keyinfo', {
|
|
218
155
|
params: {
|
|
219
|
-
|
|
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
|
|
234
|
-
|
|
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
|
-
|
|
262
|
-
|
|
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
|