@seayoo-web/gamer-api 2.5.4 → 2.5.5
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/dist/index.js +833 -832
- package/package.json +4 -4
- package/types/src/event.config.d.ts +228 -0
package/dist/index.js
CHANGED
|
@@ -1,77 +1,80 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
var me = Object.defineProperty;
|
|
2
|
+
var de = (a, t, r) => t in a ? me(a, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : a[t] = r;
|
|
3
|
+
var d = (a, t, r) => de(a, typeof t != "symbol" ? t + "" : t, r);
|
|
4
|
+
import { isComboWebView as ge } from "@seayoo-web/combo-webview";
|
|
5
|
+
import { isPlainObject as C, Support as y, useConsole as pe, usePromise as _e, pruneURL as be, queryString as P, pruneObject as c, v as e, omitFields as V, typedObjectGuard as s, parseJSON as ye, removePara as Q } from "@seayoo-web/utils";
|
|
6
|
+
function fe(a) {
|
|
7
|
+
return C(a, "gamer_token") && typeof a.gamer_token == "string";
|
|
5
8
|
}
|
|
6
|
-
function M(
|
|
7
|
-
return C(
|
|
9
|
+
function M(a) {
|
|
10
|
+
return C(a);
|
|
8
11
|
}
|
|
9
|
-
const
|
|
10
|
-
function
|
|
11
|
-
return /^\/[a-z\d-]+$/.test(
|
|
12
|
+
const q = pe("GamerApiSDK");
|
|
13
|
+
function he(a) {
|
|
14
|
+
return /^\/[a-z\d-]+$/.test(a);
|
|
12
15
|
}
|
|
13
|
-
async function
|
|
14
|
-
const { promise:
|
|
16
|
+
async function we() {
|
|
17
|
+
const { promise: a, resolve: t } = _e();
|
|
15
18
|
return wx.login({
|
|
16
|
-
success(
|
|
17
|
-
t(
|
|
19
|
+
success(r) {
|
|
20
|
+
t(r.code);
|
|
18
21
|
},
|
|
19
22
|
fail() {
|
|
20
23
|
t("");
|
|
21
24
|
}
|
|
22
|
-
}), await
|
|
25
|
+
}), await a;
|
|
23
26
|
}
|
|
24
|
-
const
|
|
25
|
-
get(
|
|
26
|
-
return localStorage.getItem(
|
|
27
|
+
const ke = {
|
|
28
|
+
get(a) {
|
|
29
|
+
return localStorage.getItem(a) || "";
|
|
27
30
|
},
|
|
28
|
-
set(
|
|
29
|
-
localStorage.setItem(
|
|
31
|
+
set(a, t) {
|
|
32
|
+
localStorage.setItem(a, t);
|
|
30
33
|
},
|
|
31
|
-
remove(
|
|
32
|
-
localStorage.removeItem(
|
|
34
|
+
remove(a) {
|
|
35
|
+
localStorage.removeItem(a);
|
|
33
36
|
}
|
|
34
|
-
},
|
|
35
|
-
get(
|
|
37
|
+
}, ve = {
|
|
38
|
+
get(a) {
|
|
36
39
|
try {
|
|
37
|
-
if (
|
|
40
|
+
if (y.wx) return wx.getStorageSync(a) || "";
|
|
38
41
|
} catch (t) {
|
|
39
|
-
|
|
42
|
+
q.error("getStorageSyncError", t);
|
|
40
43
|
}
|
|
41
44
|
return "";
|
|
42
45
|
},
|
|
43
|
-
set(
|
|
46
|
+
set(a, t) {
|
|
44
47
|
try {
|
|
45
|
-
|
|
46
|
-
} catch (
|
|
47
|
-
|
|
48
|
+
y.wx && wx.setStorageSync(a, t);
|
|
49
|
+
} catch (r) {
|
|
50
|
+
q.error("setStorageSyncError", r);
|
|
48
51
|
}
|
|
49
52
|
},
|
|
50
|
-
remove(
|
|
53
|
+
remove(a) {
|
|
51
54
|
try {
|
|
52
|
-
|
|
55
|
+
y.wx && wx.removeStorageSync(a);
|
|
53
56
|
} catch (t) {
|
|
54
|
-
|
|
57
|
+
q.error("removeStorageSync", t);
|
|
55
58
|
}
|
|
56
59
|
}
|
|
57
60
|
}, w = "gamer_token";
|
|
58
|
-
class
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
this.storage =
|
|
67
|
-
const
|
|
68
|
-
if (this.$NetRequest =
|
|
69
|
-
baseURL: `${
|
|
61
|
+
class Sr {
|
|
62
|
+
constructor(t, r) {
|
|
63
|
+
d(this, "$NetRequest");
|
|
64
|
+
d(this, "$idToken", "");
|
|
65
|
+
d(this, "$weixinToken", "");
|
|
66
|
+
d(this, "$gamerToken", "");
|
|
67
|
+
d(this, "req");
|
|
68
|
+
d(this, "storage");
|
|
69
|
+
this.storage = y.wx ? ve : ke;
|
|
70
|
+
const n = he(t) ? t : `https://${be(t)}`;
|
|
71
|
+
if (this.$NetRequest = r, this.req = r({
|
|
72
|
+
baseURL: `${n}/v1`,
|
|
70
73
|
timeout: 1e4,
|
|
71
74
|
maxRetry: 2,
|
|
72
75
|
retryInterval: "2EB",
|
|
73
|
-
retryResolve({ method:
|
|
74
|
-
return
|
|
76
|
+
retryResolve({ method: i, status: o }) {
|
|
77
|
+
return i === "GET" && o < 0;
|
|
75
78
|
},
|
|
76
79
|
responseRule: {
|
|
77
80
|
ok: { resolve: "body" },
|
|
@@ -82,12 +85,12 @@ class jr {
|
|
|
82
85
|
}
|
|
83
86
|
},
|
|
84
87
|
// 使用箭头函数绑定执行上下文
|
|
85
|
-
requestTransformer: (
|
|
86
|
-
this.$gamerToken && (
|
|
88
|
+
requestTransformer: (i) => {
|
|
89
|
+
this.$gamerToken && (i.headers.Authorization = `Bearer ${this.$gamerToken}`);
|
|
87
90
|
}
|
|
88
|
-
}),
|
|
89
|
-
const
|
|
90
|
-
(
|
|
91
|
+
}), y.window) {
|
|
92
|
+
const i = /^(?:localhost|[\d.]+):\d{4}$/.test(location.host), o = P("gamer_token");
|
|
93
|
+
(ge() || i && o) && (this.$gamerToken = o);
|
|
91
94
|
}
|
|
92
95
|
this.$gamerToken || this.loadGamerTokenCache();
|
|
93
96
|
}
|
|
@@ -95,11 +98,11 @@ class jr {
|
|
|
95
98
|
return this.$NetRequest;
|
|
96
99
|
}
|
|
97
100
|
loadGamerTokenCache() {
|
|
98
|
-
const
|
|
99
|
-
if (
|
|
100
|
-
const
|
|
101
|
-
if (
|
|
102
|
-
this.$gamerToken =
|
|
101
|
+
const r = this.storage.get(w).match(/^(\d{12,})#(.{8,})$/);
|
|
102
|
+
if (r) {
|
|
103
|
+
const n = parseInt(r[1]), i = r[2];
|
|
104
|
+
if (n > Date.now() - (24 * 3600 - 10) * 1e3) {
|
|
105
|
+
this.$gamerToken = i;
|
|
103
106
|
return;
|
|
104
107
|
}
|
|
105
108
|
}
|
|
@@ -164,14 +167,12 @@ class jr {
|
|
|
164
167
|
async autoLogin() {
|
|
165
168
|
if (this.gamerToken)
|
|
166
169
|
return !0;
|
|
167
|
-
if (!this.idToken)
|
|
168
|
-
return
|
|
169
|
-
|
|
170
|
-
return h.error("Missing weixinToken when call autoLogin()"), !1;
|
|
171
|
-
const { code: t, data: n } = await this.req.post(
|
|
170
|
+
if (!this.idToken || y.wx && !this.weixinToken)
|
|
171
|
+
return !1;
|
|
172
|
+
const { code: t, data: r } = await this.req.post(
|
|
172
173
|
"login-with-token",
|
|
173
|
-
c({ id_token: this.idToken, weixin_token:
|
|
174
|
-
|
|
174
|
+
c({ id_token: this.idToken, weixin_token: y.wx ? this.weixinToken : null }),
|
|
175
|
+
fe,
|
|
175
176
|
{ message: !1 }
|
|
176
177
|
);
|
|
177
178
|
switch (t) {
|
|
@@ -182,7 +183,7 @@ class jr {
|
|
|
182
183
|
this.weixinToken = "";
|
|
183
184
|
break;
|
|
184
185
|
}
|
|
185
|
-
return this.gamerToken =
|
|
186
|
+
return this.gamerToken = (r == null ? void 0 : r.gamer_token) || "", !!this.gamerToken;
|
|
186
187
|
}
|
|
187
188
|
/**
|
|
188
189
|
* 获取当前登录用户的 Session 的信息
|
|
@@ -205,25 +206,25 @@ class jr {
|
|
|
205
206
|
*/
|
|
206
207
|
async authRealName(t) {
|
|
207
208
|
if (!await this.autoLogin()) return null;
|
|
208
|
-
const { data:
|
|
209
|
-
return
|
|
209
|
+
const { data: r } = await this.req.post("auth-real-name", c(t), M);
|
|
210
|
+
return r;
|
|
210
211
|
}
|
|
211
212
|
}
|
|
212
|
-
const
|
|
213
|
+
const Ce = {
|
|
213
214
|
/** 未知 */
|
|
214
215
|
Unknown: "unknown",
|
|
215
216
|
/** 男 */
|
|
216
217
|
Male: "male",
|
|
217
218
|
/** 女 */
|
|
218
219
|
Female: "female"
|
|
219
|
-
},
|
|
220
|
+
}, Ve = e.string().enum(Ce).lock(), Re = {
|
|
220
221
|
/** 积分增加 */
|
|
221
222
|
Increase: "increase",
|
|
222
223
|
/** 积分减少 */
|
|
223
224
|
Decrease: "decrease",
|
|
224
225
|
/** 积分过期 */
|
|
225
226
|
Expired: "expired"
|
|
226
|
-
},
|
|
227
|
+
}, je = e.string().enum(Re).lock(), Te = {
|
|
227
228
|
/** 游戏内购买 */
|
|
228
229
|
Order: "order",
|
|
229
230
|
/** 游戏内消耗 */
|
|
@@ -236,21 +237,21 @@ const we = {
|
|
|
236
237
|
Admin: "admin",
|
|
237
238
|
/** 运营活动 */
|
|
238
239
|
Event: "event"
|
|
239
|
-
},
|
|
240
|
+
}, qe = e.string().enum(Te).lock(), xe = {
|
|
240
241
|
/** 游戏内奖励 */
|
|
241
242
|
GameReward: "game_reward",
|
|
242
243
|
/** 实物商品 */
|
|
243
244
|
Physical: "physical",
|
|
244
245
|
/** 虚拟商品 */
|
|
245
246
|
Virtual: "virtual"
|
|
246
|
-
},
|
|
247
|
+
}, X = e.string().enum(xe).lock(), Se = {
|
|
247
248
|
/** 待发放 */
|
|
248
249
|
Pending: "pending",
|
|
249
250
|
/** 已发放 */
|
|
250
251
|
Issued: "issued",
|
|
251
252
|
/** 发放失败 */
|
|
252
253
|
Failed: "failed"
|
|
253
|
-
},
|
|
254
|
+
}, Le = e.string().enum(Se).lock(), Ee = e.object({
|
|
254
255
|
default_avatar_url: e.string(),
|
|
255
256
|
official_avatar_urls: e.array(e.string()),
|
|
256
257
|
default_nickname: e.string(),
|
|
@@ -268,7 +269,7 @@ const we = {
|
|
|
268
269
|
exp_description: e.string(),
|
|
269
270
|
credit_description: e.string(),
|
|
270
271
|
send_role_mail_rate_limit: e.number()
|
|
271
|
-
}).lock(),
|
|
272
|
+
}).lock(), Pe = e.object({
|
|
272
273
|
member_id: e.string(),
|
|
273
274
|
player_id: e.string(),
|
|
274
275
|
exp: e.number(),
|
|
@@ -277,19 +278,19 @@ const we = {
|
|
|
277
278
|
credit_expiring: e.number(),
|
|
278
279
|
level_change_time: e.number(),
|
|
279
280
|
level_expire_time: e.number()
|
|
280
|
-
}).lock(),
|
|
281
|
+
}).lock(), $e = e.object({
|
|
281
282
|
server_id: e.string(),
|
|
282
283
|
server_name: e.string()
|
|
283
|
-
}).lock(),
|
|
284
|
+
}).lock(), Ue = e.object({
|
|
284
285
|
role_id: e.string(),
|
|
285
286
|
role_name: e.string()
|
|
286
|
-
}).lock(),
|
|
287
|
-
...
|
|
288
|
-
|
|
287
|
+
}).lock(), Y = e.object({
|
|
288
|
+
...Ue.shape,
|
|
289
|
+
...$e.shape,
|
|
289
290
|
role_level: e.number(),
|
|
290
291
|
last_login_time: e.number()
|
|
291
|
-
}).lock(),
|
|
292
|
-
...
|
|
292
|
+
}).lock(), Fe = e.object({
|
|
293
|
+
...Y.shape,
|
|
293
294
|
/** 角色战力 */
|
|
294
295
|
role_fighting: e.number(),
|
|
295
296
|
/** 宗门 ID */
|
|
@@ -298,13 +299,13 @@ const we = {
|
|
|
298
299
|
kin_name: e.string().optional(),
|
|
299
300
|
/** 宗门职位 */
|
|
300
301
|
kin_position: e.string().optional()
|
|
301
|
-
}).lock(),
|
|
302
|
+
}).lock(), De = e.object({
|
|
302
303
|
name: e.string(),
|
|
303
304
|
avatar_url: e.string(),
|
|
304
305
|
bio: e.string(),
|
|
305
|
-
gender:
|
|
306
|
+
gender: Ve,
|
|
306
307
|
birthday: e.object({ year: e.number(), month: e.number(), day: e.number() })
|
|
307
|
-
}).lock(),
|
|
308
|
+
}).lock(), W = e.object({
|
|
308
309
|
address_id: e.number(),
|
|
309
310
|
recipient: e.string(),
|
|
310
311
|
mobile: e.string(),
|
|
@@ -313,19 +314,19 @@ const we = {
|
|
|
313
314
|
district: e.string(),
|
|
314
315
|
address: e.string(),
|
|
315
316
|
is_default: e.bool()
|
|
316
|
-
}).lock(),
|
|
317
|
+
}).lock(), Ie = e.object({
|
|
317
318
|
increased_credit: e.number(),
|
|
318
319
|
decreased_credit: e.number(),
|
|
319
320
|
expired_credit: e.number(),
|
|
320
321
|
balance_credit: e.number()
|
|
321
|
-
}).lock(),
|
|
322
|
+
}).lock(), Ge = e.object({
|
|
322
323
|
id: e.number(),
|
|
323
|
-
change_type:
|
|
324
|
-
change_scene:
|
|
324
|
+
change_type: je,
|
|
325
|
+
change_scene: qe,
|
|
325
326
|
change_credit: e.number(),
|
|
326
327
|
balance: e.number(),
|
|
327
328
|
change_time: e.number()
|
|
328
|
-
}).lock(),
|
|
329
|
+
}).lock(), ee = e.object({
|
|
329
330
|
benefit_id: e.number(),
|
|
330
331
|
name: e.string(),
|
|
331
332
|
img_url: e.string(),
|
|
@@ -334,11 +335,11 @@ const we = {
|
|
|
334
335
|
max_level: e.number(),
|
|
335
336
|
product_id: e.number(),
|
|
336
337
|
tag: e.string()
|
|
337
|
-
}).lock(),
|
|
338
|
+
}).lock(), te = e.object({
|
|
338
339
|
product_id: e.number(),
|
|
339
340
|
catalog_id: e.number(),
|
|
340
341
|
catalog_name: e.string(),
|
|
341
|
-
item_type:
|
|
342
|
+
item_type: X,
|
|
342
343
|
name: e.string(),
|
|
343
344
|
img_url: e.string(),
|
|
344
345
|
description: e.string(),
|
|
@@ -360,10 +361,10 @@ const we = {
|
|
|
360
361
|
created_at: e.number(),
|
|
361
362
|
updated_at: e.number(),
|
|
362
363
|
redeemable_quantity: e.number().optional()
|
|
363
|
-
}).lock(),
|
|
364
|
-
...V(
|
|
365
|
-
product:
|
|
366
|
-
}).lock(),
|
|
364
|
+
}).lock(), Ae = e.object({
|
|
365
|
+
...V(ee.shape, "tag"),
|
|
366
|
+
product: te.clone().optional()
|
|
367
|
+
}).lock(), Lr = e.union(
|
|
367
368
|
e.object({
|
|
368
369
|
server_id: e.string(),
|
|
369
370
|
role_id: e.string()
|
|
@@ -371,7 +372,7 @@ const we = {
|
|
|
371
372
|
e.object({
|
|
372
373
|
address_id: e.number()
|
|
373
374
|
})
|
|
374
|
-
).satisfies().lock(),
|
|
375
|
+
).satisfies().lock(), Ne = e.object({
|
|
375
376
|
recipient: e.string(),
|
|
376
377
|
mobile: e.string(),
|
|
377
378
|
province: e.string(),
|
|
@@ -380,35 +381,35 @@ const we = {
|
|
|
380
381
|
address: e.string(),
|
|
381
382
|
express_company: e.string(),
|
|
382
383
|
express_number: e.string()
|
|
383
|
-
}).lock(),
|
|
384
|
+
}).lock(), Oe = e.object({
|
|
384
385
|
server_id: e.string(),
|
|
385
386
|
role_id: e.string(),
|
|
386
387
|
role_name: e.string()
|
|
387
|
-
}).lock(),
|
|
388
|
+
}).lock(), Be = e.object({
|
|
388
389
|
redemption_id: e.number(),
|
|
389
390
|
player_id: e.string(),
|
|
390
391
|
product_id: e.number(),
|
|
391
392
|
name: e.string(),
|
|
392
393
|
img_url: e.string(),
|
|
393
|
-
item_type:
|
|
394
|
+
item_type: X,
|
|
394
395
|
catalog_id: e.number(),
|
|
395
396
|
catalog_name: e.string(),
|
|
396
397
|
quantity: e.number(),
|
|
397
398
|
amount: e.number(),
|
|
398
|
-
status:
|
|
399
|
+
status: Le,
|
|
399
400
|
created_at: e.number(),
|
|
400
|
-
extra_data: e.union(
|
|
401
|
-
}),
|
|
402
|
-
credit_logs: e.array(
|
|
401
|
+
extra_data: e.union(Ne.clone(), Oe.clone()).satisfies().optional()
|
|
402
|
+
}), Qe = e.guard(Ee), K = s({ player: Pe }), Me = s({ roles: e.array(Y) }), x = s({ role_card: Fe }), H = e.guard(De), z = e.guard(W), Ke = s({ addresses: e.array(W) }), He = e.guard(Ie), ze = s({
|
|
403
|
+
credit_logs: e.array(Ge),
|
|
403
404
|
next_token: e.string().optional()
|
|
404
|
-
}),
|
|
405
|
-
redemptions: e.array(
|
|
405
|
+
}), Je = s({ products: e.array(te) }), Ze = s({ benefits: e.array(ee) }), Xe = s({ benefit: Ae }), Ye = s({
|
|
406
|
+
redemptions: e.array(Be),
|
|
406
407
|
next_token: e.string().optional()
|
|
407
408
|
});
|
|
408
|
-
class
|
|
409
|
-
token;
|
|
410
|
-
req;
|
|
409
|
+
class Er {
|
|
411
410
|
constructor(t) {
|
|
411
|
+
d(this, "token");
|
|
412
|
+
d(this, "req");
|
|
412
413
|
this.token = t, this.req = t.req;
|
|
413
414
|
}
|
|
414
415
|
/**
|
|
@@ -417,8 +418,8 @@ class qr {
|
|
|
417
418
|
* https://kdocs.cn/l/cgp4gSBMbOf1?linkname=tuhsPt3ihp
|
|
418
419
|
*/
|
|
419
420
|
async getConfig(t) {
|
|
420
|
-
const { data:
|
|
421
|
-
return
|
|
421
|
+
const { data: r } = await this.req.get("club/config", Qe, t);
|
|
422
|
+
return r;
|
|
422
423
|
}
|
|
423
424
|
/**
|
|
424
425
|
* 用于游戏内嵌 Web 页面和微信小程序获取当前登录的游戏账号在俱乐部中的信息。
|
|
@@ -427,10 +428,10 @@ class qr {
|
|
|
427
428
|
*/
|
|
428
429
|
async getCurrentPlayer(t) {
|
|
429
430
|
await this.token.autoLogin();
|
|
430
|
-
const { data:
|
|
431
|
-
return
|
|
432
|
-
message:
|
|
433
|
-
error:
|
|
431
|
+
const { data: r, code: n, message: i } = await this.req.get("club/current-player", K, t);
|
|
432
|
+
return (r == null ? void 0 : r.player) ?? {
|
|
433
|
+
message: i,
|
|
434
|
+
error: n
|
|
434
435
|
};
|
|
435
436
|
}
|
|
436
437
|
/**
|
|
@@ -440,15 +441,15 @@ class qr {
|
|
|
440
441
|
*/
|
|
441
442
|
async linkPlayer(t) {
|
|
442
443
|
await this.token.autoLogin();
|
|
443
|
-
const { data:
|
|
444
|
+
const { data: r, code: n, message: i } = await this.req.post(
|
|
444
445
|
"club/link-player",
|
|
445
446
|
{ id_token: this.token.idToken },
|
|
446
|
-
|
|
447
|
+
K,
|
|
447
448
|
t
|
|
448
449
|
);
|
|
449
|
-
return
|
|
450
|
-
message:
|
|
451
|
-
error:
|
|
450
|
+
return (r == null ? void 0 : r.player) ?? {
|
|
451
|
+
message: i,
|
|
452
|
+
error: n
|
|
452
453
|
};
|
|
453
454
|
}
|
|
454
455
|
/**
|
|
@@ -456,35 +457,35 @@ class qr {
|
|
|
456
457
|
*
|
|
457
458
|
* https://kdocs.cn/l/cgp4gSBMbOf1?linkname=nwu4FiGM9V
|
|
458
459
|
*/
|
|
459
|
-
async getRoles(t,
|
|
460
|
+
async getRoles(t, r, n) {
|
|
460
461
|
if (!await this.token.autoLogin()) return [];
|
|
461
|
-
const { data:
|
|
462
|
-
...
|
|
463
|
-
params: c({ player_id: t, refresh:
|
|
462
|
+
const { data: i } = await this.req.get("club/roles", Me, {
|
|
463
|
+
...n,
|
|
464
|
+
params: c({ player_id: t, refresh: r })
|
|
464
465
|
});
|
|
465
|
-
return
|
|
466
|
+
return (i == null ? void 0 : i.roles) || [];
|
|
466
467
|
}
|
|
467
468
|
/**
|
|
468
469
|
* 获取俱乐部会员的角色卡片数据
|
|
469
470
|
*
|
|
470
471
|
* https://kdocs.cn/l/cgp4gSBMbOf1?linkname=A1Wr7kUXnS
|
|
471
472
|
*/
|
|
472
|
-
async getRoleCard(t,
|
|
473
|
-
const { data:
|
|
474
|
-
...
|
|
473
|
+
async getRoleCard(t, r) {
|
|
474
|
+
const { data: n } = await this.req.get("club/role-card", x, {
|
|
475
|
+
...r,
|
|
475
476
|
params: { member_id: t }
|
|
476
477
|
});
|
|
477
|
-
return
|
|
478
|
+
return (n == null ? void 0 : n.role_card) ?? null;
|
|
478
479
|
}
|
|
479
480
|
/**
|
|
480
481
|
* 设置自己的角色卡片
|
|
481
482
|
*
|
|
482
483
|
* https://kdocs.cn/l/cgp4gSBMbOf1?linkname=XgMf6OFE5i
|
|
483
484
|
*/
|
|
484
|
-
async setRoleCard(t,
|
|
485
|
+
async setRoleCard(t, r) {
|
|
485
486
|
if (!await this.token.autoLogin()) return null;
|
|
486
|
-
const { data:
|
|
487
|
-
return
|
|
487
|
+
const { data: n } = await this.req.post("club/role-card", t, x, r);
|
|
488
|
+
return (n == null ? void 0 : n.role_card) ?? null;
|
|
488
489
|
}
|
|
489
490
|
/**
|
|
490
491
|
* 强制刷新自己的角色卡片,从游戏内获取最新数据
|
|
@@ -493,32 +494,32 @@ class qr {
|
|
|
493
494
|
*/
|
|
494
495
|
async refreshRoleCard(t) {
|
|
495
496
|
if (!await this.token.autoLogin()) return null;
|
|
496
|
-
const { data:
|
|
497
|
-
return
|
|
497
|
+
const { data: r } = await this.req.post("club/refresh-role-card", {}, x, t);
|
|
498
|
+
return (r == null ? void 0 : r.role_card) ?? null;
|
|
498
499
|
}
|
|
499
500
|
/**
|
|
500
501
|
* 获取俱乐部用户的信息
|
|
501
502
|
*
|
|
502
503
|
* https://kdocs.cn/l/cgp4gSBMbOf1?linkname=TMWBCFcOr2
|
|
503
504
|
*/
|
|
504
|
-
async getUserProfile(t,
|
|
505
|
-
const { data:
|
|
506
|
-
...
|
|
505
|
+
async getUserProfile(t, r) {
|
|
506
|
+
const { data: n } = await this.req.get("club/user-profile", H, {
|
|
507
|
+
...r,
|
|
507
508
|
params: { member_id: t }
|
|
508
509
|
});
|
|
509
|
-
return
|
|
510
|
+
return n;
|
|
510
511
|
}
|
|
511
512
|
/**
|
|
512
513
|
* 修改自己的俱乐部用户信息
|
|
513
514
|
*
|
|
514
515
|
* https://kdocs.cn/l/cgp4gSBMbOf1?linkname=Qt822A57jd
|
|
515
516
|
*/
|
|
516
|
-
async updateUserProfile(t,
|
|
517
|
+
async updateUserProfile(t, r) {
|
|
517
518
|
await this.token.autoLogin();
|
|
518
|
-
const { data:
|
|
519
|
-
return
|
|
520
|
-
message:
|
|
521
|
-
error:
|
|
519
|
+
const { data: n, code: i, message: o } = await this.req.post("club/user-profile", t, H, r);
|
|
520
|
+
return n ?? {
|
|
521
|
+
message: o,
|
|
522
|
+
error: i
|
|
522
523
|
};
|
|
523
524
|
}
|
|
524
525
|
/**
|
|
@@ -528,35 +529,35 @@ class qr {
|
|
|
528
529
|
*/
|
|
529
530
|
async getAddresses(t) {
|
|
530
531
|
if (!await this.token.autoLogin()) return [];
|
|
531
|
-
const { data:
|
|
532
|
-
return
|
|
532
|
+
const { data: r } = await this.req.get("club/addresses", Ke, t);
|
|
533
|
+
return (r == null ? void 0 : r.addresses) ?? [];
|
|
533
534
|
}
|
|
534
535
|
/**
|
|
535
536
|
* 增加俱乐部收货地址
|
|
536
537
|
*
|
|
537
538
|
* https://kdocs.cn/l/cgp4gSBMbOf1?linkname=TaGIIYDRYA
|
|
538
539
|
*/
|
|
539
|
-
async addAddress(t,
|
|
540
|
+
async addAddress(t, r) {
|
|
540
541
|
if (!await this.token.autoLogin()) return null;
|
|
541
|
-
const { data:
|
|
542
|
-
return
|
|
542
|
+
const { data: n } = await this.req.post("/club/add-address", c(t), z, r);
|
|
543
|
+
return n;
|
|
543
544
|
}
|
|
544
545
|
/**
|
|
545
546
|
* 修改自己的俱乐部收货地址
|
|
546
547
|
*
|
|
547
548
|
* https://kdocs.cn/l/cgp4gSBMbOf1?linkname=p9FlJhHnWN
|
|
548
549
|
*/
|
|
549
|
-
async updateAddress(t,
|
|
550
|
+
async updateAddress(t, r) {
|
|
550
551
|
await this.token.autoLogin();
|
|
551
|
-
const { data:
|
|
552
|
+
const { data: n, code: i, message: o } = await this.req.post(
|
|
552
553
|
"club/update-address",
|
|
553
554
|
c(t),
|
|
554
|
-
|
|
555
|
-
|
|
555
|
+
z,
|
|
556
|
+
r
|
|
556
557
|
);
|
|
557
|
-
return
|
|
558
|
-
message:
|
|
559
|
-
error:
|
|
558
|
+
return n ?? {
|
|
559
|
+
message: o,
|
|
560
|
+
error: i
|
|
560
561
|
};
|
|
561
562
|
}
|
|
562
563
|
/**
|
|
@@ -564,25 +565,25 @@ class qr {
|
|
|
564
565
|
*
|
|
565
566
|
* https://kdocs.cn/l/cgp4gSBMbOf1?linkname=MEEOBdf8rm
|
|
566
567
|
*/
|
|
567
|
-
async deleteAddress(t,
|
|
568
|
+
async deleteAddress(t, r) {
|
|
568
569
|
if (!await this.token.autoLogin()) return null;
|
|
569
|
-
const { ok:
|
|
570
|
-
return
|
|
570
|
+
const { ok: n } = await this.req.post("club/delete-address", { address_id: t }, null, r);
|
|
571
|
+
return n;
|
|
571
572
|
}
|
|
572
573
|
/**
|
|
573
574
|
* 获取俱乐部积分统计信息
|
|
574
575
|
*
|
|
575
576
|
* https://kdocs.cn/l/cgp4gSBMbOf1?linkname=x4uxtGstRL
|
|
576
577
|
*/
|
|
577
|
-
async getUserCredit(t,
|
|
578
|
+
async getUserCredit(t, r) {
|
|
578
579
|
await this.token.autoLogin();
|
|
579
|
-
const { data:
|
|
580
|
-
...
|
|
580
|
+
const { data: n, code: i, message: o } = await this.req.get("club/user-credit", He, {
|
|
581
|
+
...r,
|
|
581
582
|
params: c(t)
|
|
582
583
|
});
|
|
583
|
-
return
|
|
584
|
-
message:
|
|
585
|
-
error:
|
|
584
|
+
return n ?? {
|
|
585
|
+
message: o,
|
|
586
|
+
error: i
|
|
586
587
|
};
|
|
587
588
|
}
|
|
588
589
|
/**
|
|
@@ -590,15 +591,15 @@ class qr {
|
|
|
590
591
|
*
|
|
591
592
|
* https://kdocs.cn/l/cgp4gSBMbOf1?linkname=lQFgF689P8
|
|
592
593
|
*/
|
|
593
|
-
async getCreditLogs(t,
|
|
594
|
+
async getCreditLogs(t, r) {
|
|
594
595
|
await this.token.autoLogin();
|
|
595
|
-
const { data:
|
|
596
|
-
...
|
|
596
|
+
const { data: n } = await this.req.get("club/credit-logs", ze, {
|
|
597
|
+
...r,
|
|
597
598
|
params: c({ max_results: 20, ...t })
|
|
598
599
|
});
|
|
599
600
|
return {
|
|
600
|
-
credit_logs:
|
|
601
|
-
next_token:
|
|
601
|
+
credit_logs: (n == null ? void 0 : n.credit_logs) || [],
|
|
602
|
+
next_token: n == null ? void 0 : n.next_token
|
|
602
603
|
};
|
|
603
604
|
}
|
|
604
605
|
/**
|
|
@@ -608,45 +609,45 @@ class qr {
|
|
|
608
609
|
*/
|
|
609
610
|
async getBenefits(t) {
|
|
610
611
|
if (!await this.token.autoLogin()) return [];
|
|
611
|
-
const { data:
|
|
612
|
-
return
|
|
612
|
+
const { data: r } = await this.req.get("club/benefits", Ze, t);
|
|
613
|
+
return (r == null ? void 0 : r.benefits) || [];
|
|
613
614
|
}
|
|
614
615
|
/**
|
|
615
616
|
* 获取某个权益详细信息
|
|
616
617
|
*
|
|
617
618
|
* https://kdocs.cn/l/cgp4gSBMbOf1?linkname=XKto0MeaHF
|
|
618
619
|
*/
|
|
619
|
-
async getBenefit(t,
|
|
620
|
+
async getBenefit(t, r) {
|
|
620
621
|
if (!await this.token.autoLogin()) return null;
|
|
621
|
-
const { data:
|
|
622
|
-
...
|
|
622
|
+
const { data: n } = await this.req.get("club/benefit", Xe, {
|
|
623
|
+
...r,
|
|
623
624
|
params: { benefit_id: t }
|
|
624
625
|
});
|
|
625
|
-
return
|
|
626
|
+
return (n == null ? void 0 : n.benefit) || null;
|
|
626
627
|
}
|
|
627
628
|
/**
|
|
628
629
|
* 获取商城商品列表
|
|
629
630
|
*
|
|
630
631
|
* https://kdocs.cn/l/cgp4gSBMbOf1?linkname=r3vC3PzfMQ
|
|
631
632
|
*/
|
|
632
|
-
async getProducts(t,
|
|
633
|
-
const { data:
|
|
634
|
-
...
|
|
633
|
+
async getProducts(t, r) {
|
|
634
|
+
const { data: n } = await this.req.get("club/products", Je, {
|
|
635
|
+
...r,
|
|
635
636
|
params: t
|
|
636
637
|
});
|
|
637
|
-
return
|
|
638
|
+
return (n == null ? void 0 : n.products) || [];
|
|
638
639
|
}
|
|
639
640
|
/**
|
|
640
641
|
* 兑换商城商品
|
|
641
642
|
*
|
|
642
643
|
* https://kdocs.cn/l/cgp4gSBMbOf1?linkname=LWcMVwX3OY
|
|
643
644
|
*/
|
|
644
|
-
async redeemProduct(t,
|
|
645
|
+
async redeemProduct(t, r) {
|
|
645
646
|
await this.token.autoLogin();
|
|
646
|
-
const { ok:
|
|
647
|
-
return
|
|
648
|
-
message:
|
|
649
|
-
error:
|
|
647
|
+
const { ok: n, code: i, message: o } = await this.req.post("club/redeem-product", c(t), null, r);
|
|
648
|
+
return n || {
|
|
649
|
+
message: o,
|
|
650
|
+
error: i
|
|
650
651
|
};
|
|
651
652
|
}
|
|
652
653
|
/**
|
|
@@ -654,15 +655,15 @@ class qr {
|
|
|
654
655
|
*
|
|
655
656
|
* https://kdocs.cn/l/cgp4gSBMbOf1?linkname=Ml6mLgT4cM
|
|
656
657
|
*/
|
|
657
|
-
async getRedemptions(t,
|
|
658
|
+
async getRedemptions(t, r) {
|
|
658
659
|
await this.token.autoLogin();
|
|
659
|
-
const { data:
|
|
660
|
-
...
|
|
660
|
+
const { data: n } = await this.req.get("club/redemptions", Ye, {
|
|
661
|
+
...r,
|
|
661
662
|
params: c({ max_results: 20, ...t })
|
|
662
663
|
});
|
|
663
664
|
return {
|
|
664
|
-
redemptions:
|
|
665
|
-
next_token:
|
|
665
|
+
redemptions: (n == null ? void 0 : n.redemptions) || [],
|
|
666
|
+
next_token: n == null ? void 0 : n.next_token
|
|
666
667
|
};
|
|
667
668
|
}
|
|
668
669
|
}
|
|
@@ -687,17 +688,17 @@ const R = {
|
|
|
687
688
|
ExternalCode: "external_gift_code",
|
|
688
689
|
/** 空奖励 */
|
|
689
690
|
VoidItem: "void_item"
|
|
690
|
-
},
|
|
691
|
+
}, ne = e.string().enum(R).lock(), Pr = R, re = ne, We = {
|
|
691
692
|
/** 世游通行证 ID / Combo ID */
|
|
692
693
|
UserId: "user_id",
|
|
693
694
|
/** 游戏角色 ID */
|
|
694
695
|
RoleId: "role_id"
|
|
695
|
-
},
|
|
696
|
+
}, et = e.string().enum(We).lock(), tt = {
|
|
696
697
|
None: "none",
|
|
697
698
|
Daily: "daily",
|
|
698
699
|
Weekly: "weekly",
|
|
699
700
|
Monthly: "monthly"
|
|
700
|
-
},
|
|
701
|
+
}, nt = e.string().enum(tt).lock(), u = {
|
|
701
702
|
/** 预约 */
|
|
702
703
|
Preregister: "preregister",
|
|
703
704
|
/** 抽奖 */
|
|
@@ -738,7 +739,7 @@ const R = {
|
|
|
738
739
|
ClaimActivationKey: "claim_activation_key",
|
|
739
740
|
/** 不朽箴言特有的 AI 聊天 */
|
|
740
741
|
ZeroChatgpt: "zero_chatgpt"
|
|
741
|
-
},
|
|
742
|
+
}, rt = e.string().enum(u).lock(), it = {
|
|
742
743
|
/** 累计游戏内活跃值 */
|
|
743
744
|
Active: "player_active_points",
|
|
744
745
|
/** 累计登录,单位 人天 */
|
|
@@ -753,14 +754,14 @@ const R = {
|
|
|
753
754
|
MatchCounts: "player_match_counts",
|
|
754
755
|
/** 游戏对局天数 */
|
|
755
756
|
MatchDays: "player_match_days"
|
|
756
|
-
},
|
|
757
|
+
}, ie = e.string().enum(it).lock(), ot = {
|
|
757
758
|
/** 官方上传 */
|
|
758
759
|
System: "system",
|
|
759
760
|
/** 用户投稿 */
|
|
760
761
|
UserSubmission: "user_submission",
|
|
761
762
|
/** 投票入围 */
|
|
762
763
|
Shortlisted: "shortlisted"
|
|
763
|
-
},
|
|
764
|
+
}, at = e.string().enum(ot).lock(), _ = {
|
|
764
765
|
/** 未获得奖励 */
|
|
765
766
|
Ineligible: "ineligible",
|
|
766
767
|
/** 奖励未领取 */
|
|
@@ -771,7 +772,7 @@ const R = {
|
|
|
771
772
|
Failed: "failed",
|
|
772
773
|
/** 奖励已发货 */
|
|
773
774
|
Delivered: "delivered"
|
|
774
|
-
},
|
|
775
|
+
}, $r = e.string().enum(_).lock(), $ = {
|
|
775
776
|
/**
|
|
776
777
|
* 奖励未领取,拼写错误以兼容后端历史版本,检查请使用 Unclaimed
|
|
777
778
|
*
|
|
@@ -779,16 +780,16 @@ const R = {
|
|
|
779
780
|
*/
|
|
780
781
|
UnclaimedErr: "unaccalimed",
|
|
781
782
|
/** 奖励未领取 */
|
|
782
|
-
Unclaimed:
|
|
783
|
+
Unclaimed: _.Unclaimed,
|
|
783
784
|
/** 奖励已领取 */
|
|
784
|
-
Received:
|
|
785
|
+
Received: _.Received,
|
|
785
786
|
/** 奖励发放失败 */
|
|
786
|
-
Failed:
|
|
787
|
+
Failed: _.Failed,
|
|
787
788
|
/** 奖励已发货 */
|
|
788
|
-
Delivered:
|
|
789
|
-
},
|
|
789
|
+
Delivered: _.Delivered
|
|
790
|
+
}, oe = e.string().enum($).lock(), b = {
|
|
790
791
|
/** 未获得奖励 */
|
|
791
|
-
Ineligible:
|
|
792
|
+
Ineligible: _.Ineligible,
|
|
792
793
|
/**
|
|
793
794
|
* 奖励未领取,拼写错误以兼容后端历史版本,检查请使用 Unclaimed
|
|
794
795
|
*
|
|
@@ -796,24 +797,24 @@ const R = {
|
|
|
796
797
|
*/
|
|
797
798
|
UnclaimedErr: "unaccalimed",
|
|
798
799
|
/** 奖励未领取 */
|
|
799
|
-
Unclaimed:
|
|
800
|
+
Unclaimed: _.Unclaimed,
|
|
800
801
|
/** 奖励已领取 */
|
|
801
|
-
Received:
|
|
802
|
+
Received: _.Received,
|
|
802
803
|
/** 奖励发放失败 */
|
|
803
|
-
Failed:
|
|
804
|
+
Failed: _.Failed,
|
|
804
805
|
/** 奖励已发货 */
|
|
805
|
-
Delivered:
|
|
806
|
-
},
|
|
806
|
+
Delivered: _.Delivered
|
|
807
|
+
}, U = e.string().enum(b).lock(), st = {
|
|
807
808
|
/** 玩法产出奖励 */
|
|
808
809
|
Output: "output",
|
|
809
810
|
/** 玩法参与奖励 */
|
|
810
811
|
Engage: "engage"
|
|
811
|
-
},
|
|
812
|
+
}, F = e.string().enum(st).lock(), ct = {
|
|
812
813
|
/** 私有队伍 */
|
|
813
814
|
Private: "private",
|
|
814
815
|
/** 公开队伍 */
|
|
815
816
|
Public: "public"
|
|
816
|
-
},
|
|
817
|
+
}, ut = e.string().enum(ct).lock(), k = {
|
|
817
818
|
/** 未知状态 */
|
|
818
819
|
Unknown: "unknown",
|
|
819
820
|
/** 等待开奖 */
|
|
@@ -824,7 +825,7 @@ const R = {
|
|
|
824
825
|
Claimed: "claimed",
|
|
825
826
|
/** 领奖失败 */
|
|
826
827
|
Fail: "fail"
|
|
827
|
-
},
|
|
828
|
+
}, Ur = e.string().enum(k).lock(), lt = {
|
|
828
829
|
/** 发起组队 */
|
|
829
830
|
Assemble: "assemble",
|
|
830
831
|
/** 加入队伍 */
|
|
@@ -835,71 +836,71 @@ const R = {
|
|
|
835
836
|
ChangeVisibility: "change_visibility",
|
|
836
837
|
/** 查询组队信息 */
|
|
837
838
|
Query: "query"
|
|
838
|
-
},
|
|
839
|
+
}, Fr = e.string().enum(lt).lock(), mt = {
|
|
839
840
|
/** 查询抽奖券 */
|
|
840
841
|
Query: "query",
|
|
841
842
|
/** 开奖 */
|
|
842
843
|
Draw: "draw",
|
|
843
844
|
/** 领奖 */
|
|
844
845
|
Claim: "claim"
|
|
845
|
-
},
|
|
846
|
+
}, Dr = e.string().enum(mt).lock(), dt = e.string().enum(V(R, "GiftCode", "LotteryTicket")), D = e.object({
|
|
846
847
|
reward_item_id: e.number(),
|
|
847
848
|
reward_amount: e.number(),
|
|
848
849
|
reward_item_name: e.string(),
|
|
849
850
|
reward_item_icon_url: e.string(),
|
|
850
851
|
reward_item_desc: e.string().optional(),
|
|
851
|
-
reward_item_type:
|
|
852
|
+
reward_item_type: dt,
|
|
852
853
|
reward_item_rating: e.number()
|
|
853
|
-
}).lock(),
|
|
854
|
+
}).lock(), gt = e.object({
|
|
854
855
|
engage_count: e.number(),
|
|
855
|
-
rewards: e.array(
|
|
856
|
-
}).lock(),
|
|
856
|
+
rewards: e.array(D)
|
|
857
|
+
}).lock(), pt = e.union(
|
|
857
858
|
e.object({
|
|
858
859
|
feature_reward_type: e.string().enum("every"),
|
|
859
|
-
reward_details: e.array(
|
|
860
|
+
reward_details: e.array(D)
|
|
860
861
|
}),
|
|
861
862
|
e.object({
|
|
862
863
|
feature_reward_type: e.string().enum("regular"),
|
|
863
|
-
reward_details: e.array(
|
|
864
|
+
reward_details: e.array(gt)
|
|
864
865
|
})
|
|
865
866
|
).satisfies().lock(), l = e.object({
|
|
866
867
|
feature_name: e.string(),
|
|
867
868
|
feature_id: e.number(),
|
|
868
869
|
description: e.string(),
|
|
869
|
-
cycle:
|
|
870
|
+
cycle: nt,
|
|
870
871
|
limit: e.number(),
|
|
871
872
|
since: e.number(),
|
|
872
873
|
until: e.number(),
|
|
873
|
-
engage_account:
|
|
874
|
-
feature_rewards:
|
|
875
|
-
}),
|
|
874
|
+
engage_account: et,
|
|
875
|
+
feature_rewards: pt.clone().optional()
|
|
876
|
+
}), _t = u.Cashback, bt = e.object({
|
|
876
877
|
...l.shape,
|
|
877
|
-
feature_type: e.string().enum(
|
|
878
|
+
feature_type: e.string().enum(_t),
|
|
878
879
|
config: e.object({
|
|
879
880
|
order_start_time: e.number(),
|
|
880
881
|
order_end_time: e.number(),
|
|
881
882
|
claim_rewards_start_time: e.number(),
|
|
882
883
|
claim_rewards_end_time: e.number()
|
|
883
884
|
})
|
|
884
|
-
}),
|
|
885
|
+
}), yt = u.CheckIn, ft = e.object({
|
|
885
886
|
...l.shape,
|
|
886
|
-
feature_type: e.string().enum(
|
|
887
|
-
}),
|
|
887
|
+
feature_type: e.string().enum(yt)
|
|
888
|
+
}), ht = u.ClaimActivationKey, wt = e.object({
|
|
888
889
|
...l.shape,
|
|
889
|
-
feature_type: e.string().enum(
|
|
890
|
-
}),
|
|
890
|
+
feature_type: e.string().enum(ht)
|
|
891
|
+
}), kt = u.ClaimRewards, vt = e.object({
|
|
891
892
|
...l.shape,
|
|
892
|
-
feature_type: e.string().enum(
|
|
893
|
-
}),
|
|
893
|
+
feature_type: e.string().enum(kt)
|
|
894
|
+
}), Ct = u.Comment, Vt = e.object({
|
|
894
895
|
...l.shape,
|
|
895
|
-
feature_type: e.string().enum(
|
|
896
|
+
feature_type: e.string().enum(Ct),
|
|
896
897
|
config: e.object({
|
|
897
898
|
comments: e.array(e.string()),
|
|
898
899
|
send_rate: e.number()
|
|
899
900
|
})
|
|
900
|
-
}),
|
|
901
|
+
}), Rt = u.Follow, jt = e.object({
|
|
901
902
|
...l.shape,
|
|
902
|
-
feature_type: e.string().enum(
|
|
903
|
+
feature_type: e.string().enum(Rt),
|
|
903
904
|
config: e.object({
|
|
904
905
|
platform: e.string(),
|
|
905
906
|
platform_icon: e.string().optional(),
|
|
@@ -907,61 +908,61 @@ const R = {
|
|
|
907
908
|
qr_code_url: e.string().optional(),
|
|
908
909
|
platform_desc: e.string().optional()
|
|
909
910
|
})
|
|
910
|
-
}),
|
|
911
|
+
}), Tt = u.GiftCode, qt = e.object({
|
|
911
912
|
name: e.string(),
|
|
912
913
|
icon_url: e.string(),
|
|
913
914
|
count: e.number()
|
|
914
|
-
}),
|
|
915
|
+
}), xt = e.object({
|
|
915
916
|
...l.shape,
|
|
916
|
-
feature_type: e.string().enum(
|
|
917
|
+
feature_type: e.string().enum(Tt),
|
|
917
918
|
config: e.object({
|
|
918
|
-
gift_items: e.array(
|
|
919
|
+
gift_items: e.array(qt),
|
|
919
920
|
mp_url: e.string().optional(),
|
|
920
921
|
mp_qrcode_url: e.string().optional()
|
|
921
922
|
})
|
|
922
|
-
}),
|
|
923
|
+
}), St = u.Invite, Lt = e.object({
|
|
923
924
|
...l.shape,
|
|
924
|
-
feature_type: e.string().enum(
|
|
925
|
+
feature_type: e.string().enum(St),
|
|
925
926
|
config: e.object({
|
|
926
927
|
share_url: e.string()
|
|
927
928
|
})
|
|
928
|
-
}),
|
|
929
|
+
}), Et = u.InvitedRegister, Pt = e.object({
|
|
929
930
|
...l.shape,
|
|
930
|
-
feature_type: e.string().enum(
|
|
931
|
-
}),
|
|
931
|
+
feature_type: e.string().enum(Et)
|
|
932
|
+
}), $t = e.string().enum(V(R, "GiftCode", "LotteryTicket")), Ut = u.Lottery, Ft = e.object({
|
|
932
933
|
reward_item_id: e.number(),
|
|
933
934
|
reward_item_name: e.string(),
|
|
934
|
-
reward_item_type:
|
|
935
|
+
reward_item_type: $t,
|
|
935
936
|
reward_item_icon_url: e.string(),
|
|
936
937
|
reward_item_desc: e.string().optional(),
|
|
937
938
|
reward_amount: e.number(),
|
|
938
939
|
reward_remaining_stock: e.number()
|
|
939
|
-
}),
|
|
940
|
+
}), Dt = e.object({
|
|
940
941
|
...l.shape,
|
|
941
|
-
feature_type: e.string().enum(
|
|
942
|
+
feature_type: e.string().enum(Ut),
|
|
942
943
|
config: e.object({
|
|
943
944
|
consume_item_id: e.number(),
|
|
944
945
|
consume_item_name: e.number(),
|
|
945
946
|
consume_item_icon_url: e.string(),
|
|
946
947
|
consume_item_count: e.number(),
|
|
947
948
|
consume_item_desc: e.string().optional(),
|
|
948
|
-
rewards: e.array(
|
|
949
|
+
rewards: e.array(Ft)
|
|
949
950
|
})
|
|
950
|
-
}),
|
|
951
|
+
}), It = u.LotteryDraw, Gt = e.object({
|
|
951
952
|
...l.shape,
|
|
952
|
-
feature_type: e.string().enum(
|
|
953
|
+
feature_type: e.string().enum(It),
|
|
953
954
|
config: e.object({
|
|
954
955
|
draw_not_before: e.number(),
|
|
955
956
|
draw_not_after: e.number()
|
|
956
957
|
})
|
|
957
|
-
}),
|
|
958
|
+
}), At = u.Preregister, Nt = e.object({
|
|
958
959
|
...l.shape,
|
|
959
|
-
feature_type: e.string().enum(
|
|
960
|
-
}),
|
|
960
|
+
feature_type: e.string().enum(At)
|
|
961
|
+
}), Ot = u.Quest, Bt = e.object({
|
|
961
962
|
...l.shape,
|
|
962
|
-
feature_type: e.string().enum(
|
|
963
|
+
feature_type: e.string().enum(Ot),
|
|
963
964
|
config: e.object({
|
|
964
|
-
objective:
|
|
965
|
+
objective: ie,
|
|
965
966
|
completion_value: e.number(),
|
|
966
967
|
team: e.object({
|
|
967
968
|
feature_id: e.number().optional(),
|
|
@@ -973,38 +974,38 @@ const R = {
|
|
|
973
974
|
required_matches: e.number().min(1).optional()
|
|
974
975
|
}).optional()
|
|
975
976
|
})
|
|
976
|
-
}),
|
|
977
|
+
}), Qt = u.Register, Mt = e.object({
|
|
977
978
|
...l.shape,
|
|
978
|
-
feature_type: e.string().enum(
|
|
979
|
-
}),
|
|
979
|
+
feature_type: e.string().enum(Qt)
|
|
980
|
+
}), Kt = u.Share, Ht = e.object({
|
|
980
981
|
...l.shape,
|
|
981
|
-
feature_type: e.string().enum(
|
|
982
|
+
feature_type: e.string().enum(Kt),
|
|
982
983
|
config: e.object({
|
|
983
984
|
share_platform: e.string(),
|
|
984
985
|
jump_url: e.string().optional(),
|
|
985
986
|
icon_url: e.string().optional()
|
|
986
987
|
})
|
|
987
|
-
}),
|
|
988
|
+
}), zt = u.Subscribe, Jt = e.object({
|
|
988
989
|
...l.shape,
|
|
989
|
-
feature_type: e.string().enum(
|
|
990
|
+
feature_type: e.string().enum(zt),
|
|
990
991
|
config: e.object({
|
|
991
992
|
weixin_template_ids: e.array(e.string())
|
|
992
993
|
})
|
|
993
|
-
}),
|
|
994
|
+
}), Zt = u.Survey, Xt = e.object({
|
|
994
995
|
...l.shape,
|
|
995
|
-
feature_type: e.string().enum(
|
|
996
|
+
feature_type: e.string().enum(Zt),
|
|
996
997
|
config: e.object({
|
|
997
998
|
survey_id: e.string(),
|
|
998
999
|
survey_url: e.string()
|
|
999
1000
|
})
|
|
1000
|
-
}),
|
|
1001
|
+
}), Yt = u.Team, Wt = e.object({
|
|
1001
1002
|
...l.shape,
|
|
1002
|
-
feature_type: e.string().enum(
|
|
1003
|
+
feature_type: e.string().enum(Yt),
|
|
1003
1004
|
config: e.object({
|
|
1004
1005
|
max_members: e.number().min(1),
|
|
1005
1006
|
min_members: e.number().min(1)
|
|
1006
1007
|
})
|
|
1007
|
-
}),
|
|
1008
|
+
}), en = u.Vote, tn = e.object({
|
|
1008
1009
|
sn: e.string(),
|
|
1009
1010
|
name: e.string(),
|
|
1010
1011
|
img_urls: e.array(e.string()).optional(),
|
|
@@ -1014,96 +1015,96 @@ const R = {
|
|
|
1014
1015
|
amount: e.number(),
|
|
1015
1016
|
finalists: e.bool(),
|
|
1016
1017
|
last_vote_time: e.number()
|
|
1017
|
-
}),
|
|
1018
|
+
}), nn = e.object({
|
|
1018
1019
|
...l.shape,
|
|
1019
|
-
feature_type: e.string().enum(
|
|
1020
|
+
feature_type: e.string().enum(en),
|
|
1020
1021
|
config: e.object({
|
|
1021
1022
|
vote_feature_ids: e.array(e.number()),
|
|
1022
1023
|
submission_feature_ids: e.array(e.number()),
|
|
1023
1024
|
finalists_amount: e.number(),
|
|
1024
|
-
source:
|
|
1025
|
-
options: e.array(
|
|
1026
|
-
rewards: e.array(
|
|
1025
|
+
source: at,
|
|
1026
|
+
options: e.array(tn),
|
|
1027
|
+
rewards: e.array(D)
|
|
1027
1028
|
})
|
|
1028
|
-
}),
|
|
1029
|
+
}), rn = u.ZeroChatgpt, on = e.object({
|
|
1029
1030
|
...l.shape,
|
|
1030
|
-
feature_type: e.string().enum(
|
|
1031
|
-
}),
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
Ct,
|
|
1031
|
+
feature_type: e.string().enum(rn)
|
|
1032
|
+
}), an = e.union(
|
|
1033
|
+
bt,
|
|
1034
|
+
ft,
|
|
1035
|
+
vt,
|
|
1036
|
+
Vt,
|
|
1037
1037
|
jt,
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1038
|
+
xt,
|
|
1039
|
+
Lt,
|
|
1040
|
+
Pt,
|
|
1041
|
+
Dt,
|
|
1042
|
+
Gt,
|
|
1043
|
+
Nt,
|
|
1044
|
+
Bt,
|
|
1045
1045
|
Mt,
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1046
|
+
Ht,
|
|
1047
|
+
Jt,
|
|
1048
|
+
Xt,
|
|
1049
1049
|
Wt,
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1050
|
+
nn,
|
|
1051
|
+
wt,
|
|
1052
|
+
on
|
|
1053
|
+
).key("feature_type").satisfies(), sn = e.object({
|
|
1053
1054
|
event_name: e.string(),
|
|
1054
1055
|
rules: e.string(),
|
|
1055
1056
|
since: e.number(),
|
|
1056
1057
|
until: e.number(),
|
|
1057
1058
|
visit_count: e.number().optional(),
|
|
1058
|
-
features: e.array(
|
|
1059
|
-
}).lock(),
|
|
1060
|
-
order_total_amount:
|
|
1061
|
-
cashback_total_amount:
|
|
1062
|
-
game_item_count:
|
|
1063
|
-
}),
|
|
1059
|
+
features: e.array(an)
|
|
1060
|
+
}).lock(), S = e.union(e.string().pattern("NumberString", /^\d+$/), e.number()), cn = e.object({
|
|
1061
|
+
order_total_amount: S,
|
|
1062
|
+
cashback_total_amount: S,
|
|
1063
|
+
game_item_count: S
|
|
1064
|
+
}), un = e.object({
|
|
1064
1065
|
activation_key: e.string().disallow("")
|
|
1065
|
-
}),
|
|
1066
|
+
}), ln = e.object({
|
|
1066
1067
|
gift_code: e.string()
|
|
1067
|
-
}),
|
|
1068
|
+
}), mn = e.object({
|
|
1068
1069
|
user_id: e.string(),
|
|
1069
1070
|
name: e.string().optional(),
|
|
1070
1071
|
avatar_url: e.string().optional()
|
|
1071
|
-
}),
|
|
1072
|
+
}), dn = e.object({
|
|
1072
1073
|
lottery_count: e.number()
|
|
1073
|
-
}),
|
|
1074
|
+
}), I = e.object({
|
|
1074
1075
|
reward_id: e.number(),
|
|
1075
1076
|
reward_item_id: e.number(),
|
|
1076
|
-
reward_source:
|
|
1077
|
+
reward_source: F,
|
|
1077
1078
|
reward_item_name: e.string(),
|
|
1078
|
-
reward_item_type:
|
|
1079
|
+
reward_item_type: ne,
|
|
1079
1080
|
reward_item_icon_url: e.string(),
|
|
1080
1081
|
reward_item_desc: e.string().optional(),
|
|
1081
1082
|
reward_item_rating: e.number(),
|
|
1082
1083
|
reward_amount: e.number(),
|
|
1083
|
-
reward_status:
|
|
1084
|
+
reward_status: U,
|
|
1084
1085
|
event_id: e.number(),
|
|
1085
1086
|
event_name: e.string(),
|
|
1086
1087
|
feature_id: e.number(),
|
|
1087
1088
|
engagement_id: e.number(),
|
|
1088
|
-
feature_type:
|
|
1089
|
+
feature_type: rt,
|
|
1089
1090
|
receive_time: e.number(),
|
|
1090
1091
|
extra_data: e.record(e.unknown()).optional()
|
|
1091
|
-
}),
|
|
1092
|
+
}), gn = e.string().enum(k.Unknown, k.Pending), pn = e.union(
|
|
1092
1093
|
e.object({
|
|
1093
1094
|
ticket: e.string(),
|
|
1094
|
-
status:
|
|
1095
|
+
status: gn
|
|
1095
1096
|
}),
|
|
1096
1097
|
e.object({
|
|
1097
1098
|
ticket: e.string(),
|
|
1098
1099
|
status: e.string().enum(V(k, "Unknown", "Pending")),
|
|
1099
|
-
reward:
|
|
1100
|
+
reward: I
|
|
1100
1101
|
})
|
|
1101
|
-
).satisfies(),
|
|
1102
|
-
tickets: e.array(
|
|
1103
|
-
}),
|
|
1102
|
+
).satisfies(), _n = e.object({
|
|
1103
|
+
tickets: e.array(pn)
|
|
1104
|
+
}), bn = e.object({
|
|
1104
1105
|
platforms: e.array(e.string())
|
|
1105
|
-
}),
|
|
1106
|
-
objective:
|
|
1106
|
+
}), yn = e.object({
|
|
1107
|
+
objective: ie,
|
|
1107
1108
|
progress: e.number(),
|
|
1108
1109
|
completion_value: e.number().optional(),
|
|
1109
1110
|
team: e.object({
|
|
@@ -1118,24 +1119,24 @@ const R = {
|
|
|
1118
1119
|
})
|
|
1119
1120
|
)
|
|
1120
1121
|
}).optional()
|
|
1121
|
-
}),
|
|
1122
|
+
}), fn = e.object({
|
|
1122
1123
|
platform: e.string()
|
|
1123
|
-
}),
|
|
1124
|
+
}), hn = e.object({
|
|
1124
1125
|
weixin_openid: e.string()
|
|
1125
|
-
}),
|
|
1126
|
+
}), wn = e.object({
|
|
1126
1127
|
serial_number: e.number()
|
|
1127
|
-
}),
|
|
1128
|
+
}), kn = e.object({
|
|
1128
1129
|
team_code: e.string(),
|
|
1129
1130
|
leader_name: e.string(),
|
|
1130
1131
|
total_members: e.number()
|
|
1131
|
-
}),
|
|
1132
|
+
}), Ir = e.object({
|
|
1132
1133
|
is_leader: e.bool(),
|
|
1133
1134
|
is_myself: e.bool().optional(),
|
|
1134
1135
|
role_name: e.string(),
|
|
1135
1136
|
server_name: e.string()
|
|
1136
|
-
}),
|
|
1137
|
+
}), vn = e.object({
|
|
1137
1138
|
team_code: e.string(),
|
|
1138
|
-
visibility:
|
|
1139
|
+
visibility: ut,
|
|
1139
1140
|
members: e.array(
|
|
1140
1141
|
e.object({
|
|
1141
1142
|
is_leader: e.bool(),
|
|
@@ -1143,137 +1144,137 @@ const R = {
|
|
|
1143
1144
|
server_name: e.string()
|
|
1144
1145
|
})
|
|
1145
1146
|
)
|
|
1146
|
-
}),
|
|
1147
|
+
}), Cn = e.object({
|
|
1147
1148
|
option_sn: e.string()
|
|
1148
|
-
}),
|
|
1149
|
+
}), Vn = e.object({
|
|
1149
1150
|
role: e.string(),
|
|
1150
1151
|
content: e.string()
|
|
1151
|
-
}),
|
|
1152
|
-
conversations: e.array(
|
|
1153
|
-
}),
|
|
1152
|
+
}), Rn = e.object({
|
|
1153
|
+
conversations: e.array(Vn)
|
|
1154
|
+
}), jn = e.object({
|
|
1154
1155
|
user_id: e.string(),
|
|
1155
1156
|
name: e.string(),
|
|
1156
1157
|
avatar_url: e.string(),
|
|
1157
1158
|
comment: e.string(),
|
|
1158
1159
|
video_note: e.number(),
|
|
1159
1160
|
created_at: e.number()
|
|
1160
|
-
}),
|
|
1161
|
-
gn,
|
|
1162
|
-
un,
|
|
1163
|
-
yn,
|
|
1164
|
-
cn,
|
|
1165
|
-
_n,
|
|
1166
|
-
wn,
|
|
1161
|
+
}), G = e.union(
|
|
1167
1162
|
bn,
|
|
1168
|
-
an,
|
|
1169
|
-
sn,
|
|
1170
|
-
hn,
|
|
1171
|
-
pn,
|
|
1172
1163
|
dn,
|
|
1173
|
-
|
|
1164
|
+
wn,
|
|
1165
|
+
mn,
|
|
1166
|
+
fn,
|
|
1167
|
+
Cn,
|
|
1168
|
+
hn,
|
|
1169
|
+
cn,
|
|
1170
|
+
ln,
|
|
1174
1171
|
vn,
|
|
1172
|
+
yn,
|
|
1173
|
+
_n,
|
|
1174
|
+
un,
|
|
1175
|
+
Rn,
|
|
1175
1176
|
e.custom(
|
|
1176
1177
|
"EmptyObject",
|
|
1177
|
-
(
|
|
1178
|
+
(a) => C(a) && Object.keys(a).length === 0
|
|
1178
1179
|
)
|
|
1179
|
-
).satisfies().lock(),
|
|
1180
|
+
).satisfies().lock(), Tn = e.object({
|
|
1180
1181
|
reward_id: e.number(),
|
|
1181
1182
|
reward_item_id: e.number(),
|
|
1182
|
-
reward_item_type:
|
|
1183
|
+
reward_item_type: re,
|
|
1183
1184
|
reward_count: e.number(),
|
|
1184
|
-
reward_status:
|
|
1185
|
-
reward_source:
|
|
1185
|
+
reward_status: oe,
|
|
1186
|
+
reward_source: F,
|
|
1186
1187
|
reward_item_name: e.string(),
|
|
1187
1188
|
reward_item_icon_url: e.string(),
|
|
1188
1189
|
reward_item_desc: e.string().optional(),
|
|
1189
1190
|
reward_item_rating: e.number(),
|
|
1190
1191
|
receive_time: e.number(),
|
|
1191
|
-
extra_data: e.union(...
|
|
1192
|
-
}),
|
|
1192
|
+
extra_data: e.union(...G.validators, e.record(e.unknown())).satisfies().optional()
|
|
1193
|
+
}), qn = e.object({
|
|
1193
1194
|
reward_id: e.number(),
|
|
1194
1195
|
reward_item_id: e.number(),
|
|
1195
1196
|
reward_item_name: e.string(),
|
|
1196
|
-
reward_item_type:
|
|
1197
|
+
reward_item_type: re,
|
|
1197
1198
|
reward_item_icon_url: e.string(),
|
|
1198
1199
|
reward_item_desc: e.string().optional(),
|
|
1199
1200
|
reward_amount: e.number(),
|
|
1200
|
-
reward_status:
|
|
1201
|
-
reward_source:
|
|
1201
|
+
reward_status: oe,
|
|
1202
|
+
reward_source: F,
|
|
1202
1203
|
extra_data: e.record(e.unknown()).optional()
|
|
1203
|
-
}),
|
|
1204
|
+
}), xn = e.object({
|
|
1204
1205
|
engagement_id: e.number(),
|
|
1205
1206
|
user_id: e.string(),
|
|
1206
1207
|
event_id: e.number(),
|
|
1207
1208
|
feature_id: e.number(),
|
|
1208
1209
|
sequence: e.number(),
|
|
1209
|
-
data:
|
|
1210
|
+
data: G.clone().optional(),
|
|
1210
1211
|
server_id: e.string().optional(),
|
|
1211
1212
|
role_id: e.string().optional(),
|
|
1212
1213
|
created_at: e.number(),
|
|
1213
|
-
rewards: e.array(
|
|
1214
|
-
}).lock(),
|
|
1214
|
+
rewards: e.array(Tn).optional()
|
|
1215
|
+
}).lock(), Sn = e.object({
|
|
1215
1216
|
allowed: e.bool(),
|
|
1216
1217
|
registered: e.bool()
|
|
1217
|
-
}),
|
|
1218
|
+
}), Ln = e.object({
|
|
1218
1219
|
feature_id: e.number(),
|
|
1219
1220
|
can_engage: e.bool(),
|
|
1220
1221
|
has_unclaimed_rewards: e.bool()
|
|
1221
|
-
}),
|
|
1222
|
+
}), En = e.object({
|
|
1222
1223
|
engagement_id: e.number(),
|
|
1223
1224
|
engagement: e.object({
|
|
1224
1225
|
engagement_id: e.number(),
|
|
1225
1226
|
sequence: e.number(),
|
|
1226
1227
|
feature_id: e.number(),
|
|
1227
|
-
data:
|
|
1228
|
+
data: G.clone().optional()
|
|
1228
1229
|
}).optional(),
|
|
1229
|
-
rewards: e.array(
|
|
1230
|
+
rewards: e.array(qn).optional(),
|
|
1230
1231
|
scan: e.bool().optional()
|
|
1231
|
-
}),
|
|
1232
|
+
}), Pn = e.object({
|
|
1232
1233
|
reward_id: e.number(),
|
|
1233
|
-
reward_status:
|
|
1234
|
-
}),
|
|
1235
|
-
engagements: e.union(e.array(
|
|
1236
|
-
}),
|
|
1237
|
-
status: e.array(
|
|
1238
|
-
}),
|
|
1234
|
+
reward_status: U
|
|
1235
|
+
}), $n = e.guard(sn), Un = e.guard(Sn), L = s({ count: e.number() }), Fn = s({ first_visit: e.bool() }), Dn = s({
|
|
1236
|
+
engagements: e.union(e.array(jn), e.array(kn))
|
|
1237
|
+
}), In = s({
|
|
1238
|
+
status: e.array(Ln)
|
|
1239
|
+
}), Gn = s({
|
|
1239
1240
|
engagements_counts: e.record(e.number())
|
|
1240
|
-
}), Dn = s({
|
|
1241
|
-
engagements: e.array(jn),
|
|
1242
|
-
next_token: e.string().optional()
|
|
1243
|
-
}), In = e.guard(xn), Gn = s({
|
|
1244
|
-
claimed_items: e.array(Sn)
|
|
1245
1241
|
}), An = s({
|
|
1246
|
-
|
|
1247
|
-
}), Nn = s({
|
|
1248
|
-
reward_status: $
|
|
1249
|
-
}), On = s({
|
|
1250
|
-
user_rewards: e.array(D),
|
|
1242
|
+
engagements: e.array(xn),
|
|
1251
1243
|
next_token: e.string().optional()
|
|
1244
|
+
}), Nn = e.guard(En), On = s({
|
|
1245
|
+
claimed_items: e.array(Pn)
|
|
1252
1246
|
}), Bn = s({
|
|
1253
|
-
|
|
1247
|
+
rewards: e.array(I)
|
|
1248
|
+
}), Qn = s({
|
|
1249
|
+
reward_status: U
|
|
1254
1250
|
}), Mn = s({
|
|
1251
|
+
user_rewards: e.array(I),
|
|
1252
|
+
next_token: e.string().optional()
|
|
1253
|
+
}), Kn = s({
|
|
1254
|
+
scene: e.string()
|
|
1255
|
+
}), Hn = s({
|
|
1255
1256
|
params: e.string()
|
|
1256
|
-
}),
|
|
1257
|
+
}), zn = s({
|
|
1257
1258
|
img: e.string()
|
|
1258
1259
|
});
|
|
1259
|
-
class
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
this.token = t, this.event = +
|
|
1260
|
+
class Gr {
|
|
1261
|
+
constructor(t, r) {
|
|
1262
|
+
d(this, "token");
|
|
1263
|
+
d(this, "event", 0);
|
|
1264
|
+
d(this, "req");
|
|
1265
|
+
this.token = t, this.event = +r, this.req = t.req;
|
|
1265
1266
|
}
|
|
1266
1267
|
/**
|
|
1267
1268
|
* 根据手机号白名单,检查手机号是否允许登录某个游戏
|
|
1268
1269
|
*
|
|
1269
1270
|
* https://kdocs.cn/l/cf2mO2uRLqh9?linkname=OWGSPF3Ysl
|
|
1270
1271
|
*/
|
|
1271
|
-
async verifyMobileAllowed(t,
|
|
1272
|
-
const { data:
|
|
1273
|
-
...
|
|
1274
|
-
params: { game_id: t, mobile:
|
|
1272
|
+
async verifyMobileAllowed(t, r, n) {
|
|
1273
|
+
const { data: i } = await this.req.get("verify-mobile-allowed", Un, {
|
|
1274
|
+
...n,
|
|
1275
|
+
params: { game_id: t, mobile: r }
|
|
1275
1276
|
});
|
|
1276
|
-
return
|
|
1277
|
+
return i;
|
|
1277
1278
|
}
|
|
1278
1279
|
/**
|
|
1279
1280
|
* 获取运营活动的基础配置信息
|
|
@@ -1281,32 +1282,32 @@ class Ur {
|
|
|
1281
1282
|
* https://kdocs.cn/l/ckWFDcOsYEUA?linkname=wFXxtdNKPm
|
|
1282
1283
|
*/
|
|
1283
1284
|
async getConfig(t) {
|
|
1284
|
-
const { data:
|
|
1285
|
-
return
|
|
1285
|
+
const { data: r } = await this.req.get(`event/${this.event}/event-config`, $n, t);
|
|
1286
|
+
return r;
|
|
1286
1287
|
}
|
|
1287
1288
|
/**
|
|
1288
1289
|
* 获取某个玩法参与用户数量
|
|
1289
1290
|
*
|
|
1290
1291
|
* https://kdocs.cn/l/ckWFDcOsYEUA?linkname=ejPOcWMvT1
|
|
1291
1292
|
*/
|
|
1292
|
-
async getEngagementsUserCount(t,
|
|
1293
|
-
const { data:
|
|
1294
|
-
...
|
|
1293
|
+
async getEngagementsUserCount(t, r) {
|
|
1294
|
+
const { data: n } = await this.req.get(`event/${this.event}/feature-engagement-count`, L, {
|
|
1295
|
+
...r,
|
|
1295
1296
|
params: { feature_id: t, type: "user" }
|
|
1296
1297
|
});
|
|
1297
|
-
return
|
|
1298
|
+
return (n == null ? void 0 : n.count) ?? null;
|
|
1298
1299
|
}
|
|
1299
1300
|
/**
|
|
1300
1301
|
* 获取某个玩法参与次数
|
|
1301
1302
|
*
|
|
1302
1303
|
* https://kdocs.cn/l/ckWFDcOsYEUA?linkname=ejPOcWMvT1
|
|
1303
1304
|
*/
|
|
1304
|
-
async getEngagementsCount(t,
|
|
1305
|
-
const { data:
|
|
1306
|
-
...
|
|
1305
|
+
async getEngagementsCount(t, r) {
|
|
1306
|
+
const { data: n } = await this.req.get(`event/${this.event}/feature-engagement-count`, L, {
|
|
1307
|
+
...r,
|
|
1307
1308
|
params: { feature_id: t, type: "engagement" }
|
|
1308
1309
|
});
|
|
1309
|
-
return
|
|
1310
|
+
return (n == null ? void 0 : n.count) ?? null;
|
|
1310
1311
|
}
|
|
1311
1312
|
/**
|
|
1312
1313
|
* 获取某个玩法的参与记录(和特定用户无关)
|
|
@@ -1315,29 +1316,29 @@ class Ur {
|
|
|
1315
1316
|
*
|
|
1316
1317
|
* https://kdocs.cn/l/ckWFDcOsYEUA?linkname=THtZ4ewIQW
|
|
1317
1318
|
*/
|
|
1318
|
-
async getEngagements(t,
|
|
1319
|
-
const { data:
|
|
1320
|
-
...
|
|
1319
|
+
async getEngagements(t, r) {
|
|
1320
|
+
const { data: n } = await this.req.get(`event/${this.event}/feature-engagements`, Dn, {
|
|
1321
|
+
...r,
|
|
1321
1322
|
params: { feature_id: t }
|
|
1322
1323
|
});
|
|
1323
|
-
return
|
|
1324
|
+
return (n == null ? void 0 : n.engagements) || [];
|
|
1324
1325
|
}
|
|
1325
1326
|
/**
|
|
1326
1327
|
* 用户访问某个活动或玩法
|
|
1327
1328
|
*
|
|
1328
1329
|
* https://kdocs.cn/l/ckWFDcOsYEUA?linkname=DWtJrnrBCn
|
|
1329
1330
|
*/
|
|
1330
|
-
async visit(t,
|
|
1331
|
+
async visit(t, r) {
|
|
1331
1332
|
await this.token.autoLogin();
|
|
1332
|
-
const { data:
|
|
1333
|
+
const { data: n, code: i, message: o } = await this.req.post(
|
|
1333
1334
|
`event/${this.event}/visit`,
|
|
1334
1335
|
c(t || {}),
|
|
1335
|
-
|
|
1336
|
-
|
|
1336
|
+
Fn,
|
|
1337
|
+
r
|
|
1337
1338
|
);
|
|
1338
|
-
return
|
|
1339
|
-
message:
|
|
1340
|
-
error:
|
|
1339
|
+
return n ?? {
|
|
1340
|
+
message: o,
|
|
1341
|
+
error: i
|
|
1341
1342
|
};
|
|
1342
1343
|
}
|
|
1343
1344
|
/**
|
|
@@ -1349,27 +1350,27 @@ class Ur {
|
|
|
1349
1350
|
*
|
|
1350
1351
|
* https://kdocs.cn/l/ckWFDcOsYEUA?linkname=WzX5BrMNpL
|
|
1351
1352
|
*/
|
|
1352
|
-
async getUserFeatureStatus(t,
|
|
1353
|
+
async getUserFeatureStatus(t, r) {
|
|
1353
1354
|
if (!await this.token.autoLogin()) return [];
|
|
1354
|
-
const { data:
|
|
1355
|
-
...
|
|
1355
|
+
const { data: n } = await this.req.get("event/user-feature-status", In, {
|
|
1356
|
+
...r,
|
|
1356
1357
|
message: !1,
|
|
1357
1358
|
params: c({ ...t, event_id: this.event })
|
|
1358
1359
|
});
|
|
1359
|
-
return
|
|
1360
|
+
return (n == null ? void 0 : n.status) || [];
|
|
1360
1361
|
}
|
|
1361
1362
|
/**
|
|
1362
1363
|
* 获取用户在目标活动下的某个玩法的参与次数
|
|
1363
1364
|
*
|
|
1364
1365
|
* https://kdocs.cn/l/ckWFDcOsYEUA?linkname=uYCsjWyL36
|
|
1365
1366
|
*/
|
|
1366
|
-
async getUserEngagementCount(t,
|
|
1367
|
+
async getUserEngagementCount(t, r) {
|
|
1367
1368
|
if (!await this.token.autoLogin()) return {};
|
|
1368
|
-
const { data:
|
|
1369
|
+
const { data: n } = await this.req.get("event/user-engagements-count", Gn, {
|
|
1369
1370
|
message: !1,
|
|
1370
|
-
params: c({ ...
|
|
1371
|
+
params: c({ ...r, event_id: this.event, feature_id: t })
|
|
1371
1372
|
});
|
|
1372
|
-
return
|
|
1373
|
+
return (n == null ? void 0 : n.engagements_counts) || {};
|
|
1373
1374
|
}
|
|
1374
1375
|
/**
|
|
1375
1376
|
* 获取当前登录用户参与某个玩法的记录
|
|
@@ -1378,24 +1379,24 @@ class Ur {
|
|
|
1378
1379
|
*
|
|
1379
1380
|
* https://kdocs.cn/l/ckWFDcOsYEUA?linkname=NFDdV1dwWb
|
|
1380
1381
|
*/
|
|
1381
|
-
async getUserEngagements(t,
|
|
1382
|
+
async getUserEngagements(t, r, n) {
|
|
1382
1383
|
if (!await this.token.autoLogin())
|
|
1383
1384
|
return {
|
|
1384
1385
|
engagements: [],
|
|
1385
1386
|
next_token: ""
|
|
1386
1387
|
};
|
|
1387
|
-
const { data:
|
|
1388
|
-
...
|
|
1388
|
+
const { data: i } = await this.req.get("event/user-engagements", An, {
|
|
1389
|
+
...n,
|
|
1389
1390
|
params: c({
|
|
1390
1391
|
max_results: 20,
|
|
1391
|
-
...
|
|
1392
|
+
...r,
|
|
1392
1393
|
event_id: this.event,
|
|
1393
1394
|
feature_id: t
|
|
1394
1395
|
})
|
|
1395
1396
|
});
|
|
1396
1397
|
return {
|
|
1397
|
-
engagements:
|
|
1398
|
-
next_token:
|
|
1398
|
+
engagements: (i == null ? void 0 : i.engagements) || [],
|
|
1399
|
+
next_token: (i == null ? void 0 : i.next_token) || ""
|
|
1399
1400
|
};
|
|
1400
1401
|
}
|
|
1401
1402
|
/**
|
|
@@ -1407,21 +1408,21 @@ class Ur {
|
|
|
1407
1408
|
*
|
|
1408
1409
|
* https://kdocs.cn/l/ckWFDcOsYEUA?linkname=vuOyrcry3S
|
|
1409
1410
|
*/
|
|
1410
|
-
async engage(t,
|
|
1411
|
+
async engage(t, r, n, i) {
|
|
1411
1412
|
await this.token.autoLogin();
|
|
1412
|
-
const { data:
|
|
1413
|
+
const { data: o, code: g, message: m } = await this.req.post(
|
|
1413
1414
|
`event/${this.event}/engage`,
|
|
1414
1415
|
c({
|
|
1415
1416
|
feature_id: t,
|
|
1416
|
-
engagement:
|
|
1417
|
-
...
|
|
1417
|
+
engagement: r,
|
|
1418
|
+
...n
|
|
1418
1419
|
}),
|
|
1419
|
-
|
|
1420
|
-
|
|
1420
|
+
Nn,
|
|
1421
|
+
i
|
|
1421
1422
|
);
|
|
1422
|
-
return
|
|
1423
|
+
return o && o.rewards && (o.rewards = o.rewards.map((h) => (h.reward_status = h.reward_status === $.UnclaimedErr ? $.Unclaimed : h.reward_status, h))), o ?? {
|
|
1423
1424
|
message: m,
|
|
1424
|
-
error:
|
|
1425
|
+
error: g
|
|
1425
1426
|
// 激活码已领完
|
|
1426
1427
|
};
|
|
1427
1428
|
}
|
|
@@ -1432,20 +1433,20 @@ class Ur {
|
|
|
1432
1433
|
*
|
|
1433
1434
|
* https://kdocs.cn/l/ckWFDcOsYEUA?linkname=lCGuqgvUDP
|
|
1434
1435
|
*/
|
|
1435
|
-
async claimRewards(t,
|
|
1436
|
+
async claimRewards(t, r) {
|
|
1436
1437
|
await this.token.autoLogin();
|
|
1437
|
-
const { data:
|
|
1438
|
+
const { data: n, code: i, message: o } = await this.req.post(
|
|
1438
1439
|
"event/claim-rewards",
|
|
1439
1440
|
c({
|
|
1440
1441
|
...t,
|
|
1441
1442
|
server_id: t.server_id ? +t.server_id : void 0
|
|
1442
1443
|
}),
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
),
|
|
1446
|
-
return
|
|
1447
|
-
message:
|
|
1448
|
-
error:
|
|
1444
|
+
On,
|
|
1445
|
+
r
|
|
1446
|
+
), g = n == null ? void 0 : n.claimed_items;
|
|
1447
|
+
return g ? g.map((m) => (m.reward_status = m.reward_status === b.UnclaimedErr ? b.Unclaimed : m.reward_status, m)) : {
|
|
1448
|
+
message: o,
|
|
1449
|
+
error: i
|
|
1449
1450
|
};
|
|
1450
1451
|
}
|
|
1451
1452
|
/**
|
|
@@ -1453,20 +1454,20 @@ class Ur {
|
|
|
1453
1454
|
*
|
|
1454
1455
|
* https://kdocs.cn/l/ckWFDcOsYEUA?linkname=vdc4SrqXjF
|
|
1455
1456
|
*/
|
|
1456
|
-
async claimRewardsV2(t,
|
|
1457
|
+
async claimRewardsV2(t, r) {
|
|
1457
1458
|
await this.token.autoLogin();
|
|
1458
|
-
const { data:
|
|
1459
|
+
const { data: n, code: i, message: o } = await this.req.post(
|
|
1459
1460
|
"event/claim-rewards-v2",
|
|
1460
1461
|
c({
|
|
1461
1462
|
...t,
|
|
1462
1463
|
server_id: t.server_id ? +t.server_id : void 0
|
|
1463
1464
|
}),
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
),
|
|
1467
|
-
return
|
|
1468
|
-
message:
|
|
1469
|
-
error:
|
|
1465
|
+
Bn,
|
|
1466
|
+
r
|
|
1467
|
+
), g = n == null ? void 0 : n.rewards;
|
|
1468
|
+
return g ? g.map((m) => (m.reward_status = m.reward_status === b.UnclaimedErr ? b.Unclaimed : m.reward_status, m)) : {
|
|
1469
|
+
message: o,
|
|
1470
|
+
error: i
|
|
1470
1471
|
};
|
|
1471
1472
|
}
|
|
1472
1473
|
/**
|
|
@@ -1474,17 +1475,17 @@ class Ur {
|
|
|
1474
1475
|
*
|
|
1475
1476
|
* https://kdocs.cn/l/ckWFDcOsYEUA?linkname=aQLhlOAB4Q
|
|
1476
1477
|
*/
|
|
1477
|
-
async claimWeixinHongbao(t,
|
|
1478
|
+
async claimWeixinHongbao(t, r) {
|
|
1478
1479
|
await this.token.autoLogin();
|
|
1479
|
-
const { data:
|
|
1480
|
+
const { data: n, code: i, message: o } = await this.req.post(
|
|
1480
1481
|
"event/claim-weixin-hongbao",
|
|
1481
1482
|
{ reward_id: t },
|
|
1482
|
-
|
|
1483
|
-
|
|
1483
|
+
Qn,
|
|
1484
|
+
r
|
|
1484
1485
|
);
|
|
1485
|
-
return
|
|
1486
|
-
message:
|
|
1487
|
-
error:
|
|
1486
|
+
return n ? (n.reward_status = n.reward_status === b.UnclaimedErr ? b.Unclaimed : n.reward_status, n) : {
|
|
1487
|
+
message: o,
|
|
1488
|
+
error: i
|
|
1488
1489
|
};
|
|
1489
1490
|
}
|
|
1490
1491
|
/**
|
|
@@ -1492,18 +1493,18 @@ class Ur {
|
|
|
1492
1493
|
*
|
|
1493
1494
|
* https://kdocs.cn/l/cf2mO2uRLqh9?linkname=B4xwTbDzhn
|
|
1494
1495
|
*/
|
|
1495
|
-
async verifyActivationKey(t,
|
|
1496
|
+
async verifyActivationKey(t, r) {
|
|
1496
1497
|
if (!this.token.isLoggedIn)
|
|
1497
1498
|
return { error: "not_logged_in" };
|
|
1498
|
-
const { ok:
|
|
1499
|
+
const { ok: n, code: i, message: o } = await this.req.post(
|
|
1499
1500
|
"verify-activation-key",
|
|
1500
1501
|
{ activation_key: t },
|
|
1501
1502
|
null,
|
|
1502
|
-
{ message: !1, ...
|
|
1503
|
+
{ message: !1, ...r }
|
|
1503
1504
|
);
|
|
1504
|
-
return
|
|
1505
|
-
message:
|
|
1506
|
-
error:
|
|
1505
|
+
return n || {
|
|
1506
|
+
message: o,
|
|
1507
|
+
error: i
|
|
1507
1508
|
};
|
|
1508
1509
|
}
|
|
1509
1510
|
/**
|
|
@@ -1511,21 +1512,21 @@ class Ur {
|
|
|
1511
1512
|
*
|
|
1512
1513
|
* https://kdocs.cn/l/ckWFDcOsYEUA?linkname=qj12eIgYQG
|
|
1513
1514
|
*/
|
|
1514
|
-
async getUserRewards(t,
|
|
1515
|
+
async getUserRewards(t, r) {
|
|
1515
1516
|
if (!await this.token.autoLogin())
|
|
1516
1517
|
return {
|
|
1517
1518
|
user_rewards: [],
|
|
1518
1519
|
next_token: ""
|
|
1519
1520
|
};
|
|
1520
|
-
const { data:
|
|
1521
|
+
const { data: n } = await this.req.post(
|
|
1521
1522
|
"event/user-rewards",
|
|
1522
1523
|
c({ max_results: 20, ...t, event_id: this.event }),
|
|
1523
|
-
|
|
1524
|
-
|
|
1524
|
+
Mn,
|
|
1525
|
+
r
|
|
1525
1526
|
);
|
|
1526
1527
|
return {
|
|
1527
|
-
user_rewards: (
|
|
1528
|
-
next_token:
|
|
1528
|
+
user_rewards: ((n == null ? void 0 : n.user_rewards) || []).map((i) => (i.reward_status = i.reward_status === b.UnclaimedErr ? b.Unclaimed : i.reward_status, i)),
|
|
1529
|
+
next_token: (n == null ? void 0 : n.next_token) || ""
|
|
1529
1530
|
};
|
|
1530
1531
|
}
|
|
1531
1532
|
/**
|
|
@@ -1533,23 +1534,23 @@ class Ur {
|
|
|
1533
1534
|
*
|
|
1534
1535
|
* https://kdocs.cn/l/ckWFDcOsYEUA?linkname=mnGCTeTgMb
|
|
1535
1536
|
*/
|
|
1536
|
-
async getUserItemCount(t,
|
|
1537
|
+
async getUserItemCount(t, r) {
|
|
1537
1538
|
if (!await this.token.autoLogin()) return null;
|
|
1538
|
-
const { data:
|
|
1539
|
-
...
|
|
1539
|
+
const { data: n } = await this.req.get(`event/${this.event}/user-item-count`, L, {
|
|
1540
|
+
...r,
|
|
1540
1541
|
params: { item_id: t }
|
|
1541
1542
|
});
|
|
1542
|
-
return
|
|
1543
|
+
return (n == null ? void 0 : n.count) ?? null;
|
|
1543
1544
|
}
|
|
1544
1545
|
/**
|
|
1545
1546
|
* 填写实物奖励收货地址,返回 null 表示未登录
|
|
1546
1547
|
*
|
|
1547
1548
|
* https://kdocs.cn/l/ckWFDcOsYEUA?linkname=QIwGhnaexb
|
|
1548
1549
|
*/
|
|
1549
|
-
async submitUserRewardAddress(t,
|
|
1550
|
+
async submitUserRewardAddress(t, r) {
|
|
1550
1551
|
if (!await this.token.autoLogin()) return null;
|
|
1551
|
-
const { ok:
|
|
1552
|
-
return
|
|
1552
|
+
const { ok: n } = await this.req.post(`event/${this.event}/user-reward-address`, t, null, r);
|
|
1553
|
+
return n;
|
|
1553
1554
|
}
|
|
1554
1555
|
/**
|
|
1555
1556
|
* 小程序码携带参数最多 32 个可见字符,若前端携带参数过长,则将参数保存在 api 中,并返回符合小程序码要求的 scene
|
|
@@ -1558,13 +1559,13 @@ class Ur {
|
|
|
1558
1559
|
*
|
|
1559
1560
|
* @param params - 前端扫描二维码打开小程序所需参数
|
|
1560
1561
|
*/
|
|
1561
|
-
async getUnlimitQrcodeScene(t,
|
|
1562
|
+
async getUnlimitQrcodeScene(t, r) {
|
|
1562
1563
|
if (!await this.token.autoLogin()) return null;
|
|
1563
|
-
const { data:
|
|
1564
|
-
...
|
|
1564
|
+
const { data: n } = await this.req.get("event/unlimit-qrcode-scene", Kn, {
|
|
1565
|
+
...r,
|
|
1565
1566
|
params: { params: t }
|
|
1566
1567
|
});
|
|
1567
|
-
return
|
|
1568
|
+
return (n == null ? void 0 : n.scene) ?? null;
|
|
1568
1569
|
}
|
|
1569
1570
|
/**
|
|
1570
1571
|
* 根据小程序码携带 scene 值,获取对应的前端所需参数
|
|
@@ -1573,35 +1574,35 @@ class Ur {
|
|
|
1573
1574
|
*
|
|
1574
1575
|
* @param scene - 小程序码 scene 值
|
|
1575
1576
|
*/
|
|
1576
|
-
async getParamsByQrcodeScene(t,
|
|
1577
|
-
const { data:
|
|
1578
|
-
...
|
|
1577
|
+
async getParamsByQrcodeScene(t, r) {
|
|
1578
|
+
const { data: n } = await this.req.get("event/params-by-qrcode-scene", Hn, {
|
|
1579
|
+
...r,
|
|
1579
1580
|
params: { scene: t }
|
|
1580
1581
|
});
|
|
1581
|
-
return
|
|
1582
|
+
return (n == null ? void 0 : n.params) ?? null;
|
|
1582
1583
|
}
|
|
1583
1584
|
/**
|
|
1584
1585
|
* 生成不限制的带参数的小程序码(dataURI 格式的小程序码图片)
|
|
1585
1586
|
*
|
|
1586
1587
|
* https://kdocs.cn/l/ckWFDcOsYEUA?linkname=Rvmoq8iIy0
|
|
1587
1588
|
*/
|
|
1588
|
-
async generateUnlimitQrcode(t,
|
|
1589
|
+
async generateUnlimitQrcode(t, r) {
|
|
1589
1590
|
if (!await this.token.autoLogin()) return null;
|
|
1590
|
-
const { data:
|
|
1591
|
+
const { data: n } = await this.req.post(
|
|
1591
1592
|
"event/unlimit-qrcode",
|
|
1592
1593
|
c(t),
|
|
1593
|
-
|
|
1594
|
-
|
|
1594
|
+
zn,
|
|
1595
|
+
r
|
|
1595
1596
|
);
|
|
1596
|
-
return
|
|
1597
|
+
return (n == null ? void 0 : n.img) ?? null;
|
|
1597
1598
|
}
|
|
1598
1599
|
}
|
|
1599
|
-
const
|
|
1600
|
+
const Jn = {
|
|
1600
1601
|
/** 所有人均可以发帖 */
|
|
1601
1602
|
All: "all",
|
|
1602
1603
|
/** 指定用户可发帖 */
|
|
1603
1604
|
Limit: "limit"
|
|
1604
|
-
},
|
|
1605
|
+
}, Zn = e.string().enum(Jn).lock(), Xn = {
|
|
1605
1606
|
/** 待审核(仅自己可见) */
|
|
1606
1607
|
Pending: "pending",
|
|
1607
1608
|
/** 审核通过 */
|
|
@@ -1610,14 +1611,14 @@ const Kn = {
|
|
|
1610
1611
|
Failed: "failed",
|
|
1611
1612
|
/** 嫌疑(仅自己可见) */
|
|
1612
1613
|
Suspect: "suspect"
|
|
1613
|
-
},
|
|
1614
|
+
}, ae = e.string().enum(Xn).lock(), Yn = {
|
|
1614
1615
|
/** 系统通知 */
|
|
1615
1616
|
System: "system",
|
|
1616
1617
|
/** 评论我的 */
|
|
1617
1618
|
Comment: "comment",
|
|
1618
1619
|
/** 点赞通知 */
|
|
1619
1620
|
Like: "like"
|
|
1620
|
-
},
|
|
1621
|
+
}, Ar = e.string().enum(Yn).lock(), p = {
|
|
1621
1622
|
/** 系统通知 */
|
|
1622
1623
|
System: "system",
|
|
1623
1624
|
/** 帖子被置顶 */
|
|
@@ -1642,24 +1643,24 @@ const Kn = {
|
|
|
1642
1643
|
ReplyLiked: "reply_liked",
|
|
1643
1644
|
/** 回复被删除 */
|
|
1644
1645
|
ReplyDeleted: "reply_deleted"
|
|
1645
|
-
},
|
|
1646
|
+
}, Wn = e.string().enum(p).lock(), se = e.object({
|
|
1646
1647
|
forum_id: e.number(),
|
|
1647
1648
|
icon_url: e.string(),
|
|
1648
1649
|
name: e.string(),
|
|
1649
1650
|
tags: e.array(e.string()),
|
|
1650
1651
|
sort: e.number(),
|
|
1651
|
-
mode:
|
|
1652
|
+
mode: Zn,
|
|
1652
1653
|
member_ids: e.array(e.number())
|
|
1653
|
-
}).lock(),
|
|
1654
|
+
}).lock(), A = e.object({
|
|
1654
1655
|
topic_id: e.number(),
|
|
1655
1656
|
cover_url: e.string(),
|
|
1656
1657
|
name: e.string(),
|
|
1657
1658
|
description: e.string(),
|
|
1658
1659
|
tags: e.array(e.string()),
|
|
1659
1660
|
post_num: e.number()
|
|
1660
|
-
}).lock(),
|
|
1661
|
+
}).lock(), N = e.object({
|
|
1661
1662
|
post_id: e.number(),
|
|
1662
|
-
forum:
|
|
1663
|
+
forum: se,
|
|
1663
1664
|
posted_by: e.string(),
|
|
1664
1665
|
nickname: e.string(),
|
|
1665
1666
|
avatar_url: e.string(),
|
|
@@ -1671,15 +1672,15 @@ const Kn = {
|
|
|
1671
1672
|
comments_num: e.number(),
|
|
1672
1673
|
liked: e.bool(),
|
|
1673
1674
|
image_urls: e.array(e.string()),
|
|
1674
|
-
topics: e.array(
|
|
1675
|
+
topics: e.array(A),
|
|
1675
1676
|
event_ids: e.array(e.number()),
|
|
1676
1677
|
is_pinned: e.bool(),
|
|
1677
1678
|
is_highlighted: e.bool(),
|
|
1678
|
-
status:
|
|
1679
|
+
status: ae,
|
|
1679
1680
|
create_time: e.number()
|
|
1680
|
-
}).lock(),
|
|
1681
|
+
}).lock(), ce = e.object({
|
|
1681
1682
|
err_msg: e.string().optional()
|
|
1682
|
-
}).lock(),
|
|
1683
|
+
}).lock(), er = e.object({
|
|
1683
1684
|
reply_id: e.number(),
|
|
1684
1685
|
reply_content: e.string().optional(),
|
|
1685
1686
|
replied_by: e.string(),
|
|
@@ -1698,7 +1699,7 @@ const Kn = {
|
|
|
1698
1699
|
content: e.string(),
|
|
1699
1700
|
like_num: e.number(),
|
|
1700
1701
|
liked: e.bool(),
|
|
1701
|
-
reply_to:
|
|
1702
|
+
reply_to: er,
|
|
1702
1703
|
create_time: e.number()
|
|
1703
1704
|
}).lock(), v = e.object({
|
|
1704
1705
|
comment_id: e.number(),
|
|
@@ -1718,24 +1719,24 @@ const Kn = {
|
|
|
1718
1719
|
liked: e.bool(),
|
|
1719
1720
|
image_url: e.string(),
|
|
1720
1721
|
create_time: e.number(),
|
|
1721
|
-
status:
|
|
1722
|
+
status: ae,
|
|
1722
1723
|
replies: e.array(j).optional()
|
|
1723
|
-
}).lock(),
|
|
1724
|
+
}).lock(), tr = e.object({
|
|
1724
1725
|
image_url: e.string(),
|
|
1725
1726
|
upload_url: e.string(),
|
|
1726
1727
|
existed: e.bool()
|
|
1727
|
-
}).lock(),
|
|
1728
|
+
}).lock(), f = e.object({
|
|
1728
1729
|
notification_id: e.string(),
|
|
1729
|
-
notification_type:
|
|
1730
|
+
notification_type: Wn,
|
|
1730
1731
|
is_read: e.bool(),
|
|
1731
1732
|
create_time: e.number(),
|
|
1732
1733
|
origin_user_id: e.string(),
|
|
1733
1734
|
origin_user_name: e.string(),
|
|
1734
1735
|
origin_user_avatar_url: e.string()
|
|
1735
|
-
}).lock(),
|
|
1736
|
+
}).lock(), nr = e.object({
|
|
1736
1737
|
system_message_subject: e.string(),
|
|
1737
1738
|
system_message_content: e.string()
|
|
1738
|
-
}).lock(),
|
|
1739
|
+
}).lock(), O = e.object({
|
|
1739
1740
|
post_id: e.number(),
|
|
1740
1741
|
post_subject: e.string(),
|
|
1741
1742
|
post_summary: e.string(),
|
|
@@ -1743,84 +1744,84 @@ const Kn = {
|
|
|
1743
1744
|
}).lock(), T = e.object({
|
|
1744
1745
|
comment_id: e.number(),
|
|
1745
1746
|
comment_content: e.string()
|
|
1746
|
-
}).lock(),
|
|
1747
|
+
}).lock(), B = e.object({
|
|
1747
1748
|
reply_id: e.number(),
|
|
1748
1749
|
reply_content: e.string()
|
|
1749
|
-
}).lock(),
|
|
1750
|
-
...
|
|
1751
|
-
...
|
|
1752
|
-
notification_type: e.string().enum(
|
|
1753
|
-
}),
|
|
1754
|
-
...
|
|
1755
|
-
...
|
|
1750
|
+
}).lock(), rr = e.object({
|
|
1751
|
+
...f.shape,
|
|
1752
|
+
...nr.shape,
|
|
1753
|
+
notification_type: e.string().enum(p.System)
|
|
1754
|
+
}), ir = e.object({
|
|
1755
|
+
...f.shape,
|
|
1756
|
+
...O.shape,
|
|
1756
1757
|
notification_type: e.string().enum(
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1758
|
+
p.PostPinned,
|
|
1759
|
+
p.PostHighlighted,
|
|
1760
|
+
p.PostDeleted,
|
|
1761
|
+
p.PostLiked
|
|
1761
1762
|
)
|
|
1762
|
-
}),
|
|
1763
|
-
...
|
|
1764
|
-
...N.shape,
|
|
1765
|
-
...T.shape,
|
|
1766
|
-
notification_type: e.string().enum(g.PostCommented)
|
|
1767
|
-
}), rr = e.object({
|
|
1768
|
-
...y.shape,
|
|
1769
|
-
...T.shape,
|
|
1763
|
+
}), or = e.object({
|
|
1764
|
+
...f.shape,
|
|
1770
1765
|
...O.shape,
|
|
1771
|
-
|
|
1766
|
+
...T.shape,
|
|
1767
|
+
notification_type: e.string().enum(p.PostCommented)
|
|
1772
1768
|
}), ar = e.object({
|
|
1773
|
-
...
|
|
1769
|
+
...f.shape,
|
|
1770
|
+
...T.shape,
|
|
1771
|
+
...B.shape,
|
|
1772
|
+
notification_type: e.string().enum(p.CommentReplied)
|
|
1773
|
+
}), sr = e.object({
|
|
1774
|
+
...f.shape,
|
|
1774
1775
|
...T.shape,
|
|
1775
|
-
...N.shape,
|
|
1776
|
-
notification_type: e.string().enum(g.CommentLiked, g.CommentDeleted)
|
|
1777
|
-
}), ir = e.object({
|
|
1778
|
-
...y.shape,
|
|
1779
1776
|
...O.shape,
|
|
1780
|
-
notification_type: e.string().enum(
|
|
1777
|
+
notification_type: e.string().enum(p.CommentLiked, p.CommentDeleted)
|
|
1778
|
+
}), cr = e.object({
|
|
1779
|
+
...f.shape,
|
|
1780
|
+
...B.shape,
|
|
1781
|
+
notification_type: e.string().enum(p.ReplyReplied),
|
|
1781
1782
|
comment_id: e.number(),
|
|
1782
1783
|
reply_to_reply_id: e.number(),
|
|
1783
1784
|
reply_to_reply_content: e.string()
|
|
1784
|
-
}),
|
|
1785
|
-
...
|
|
1786
|
-
...
|
|
1785
|
+
}), ur = e.object({
|
|
1786
|
+
...f.shape,
|
|
1787
|
+
...B.shape,
|
|
1787
1788
|
...T.shape,
|
|
1788
|
-
notification_type: e.string().enum(
|
|
1789
|
-
}),
|
|
1790
|
-
er,
|
|
1791
|
-
tr,
|
|
1792
|
-
nr,
|
|
1789
|
+
notification_type: e.string().enum(p.ReplyLiked, p.ReplyDeleted)
|
|
1790
|
+
}), lr = e.union(
|
|
1793
1791
|
rr,
|
|
1794
|
-
ar,
|
|
1795
1792
|
ir,
|
|
1796
|
-
or
|
|
1797
|
-
|
|
1798
|
-
|
|
1793
|
+
or,
|
|
1794
|
+
ar,
|
|
1795
|
+
sr,
|
|
1796
|
+
cr,
|
|
1797
|
+
ur
|
|
1798
|
+
).satisfies().lock(), mr = s({ forums: e.array(se) }), dr = s({ topics: e.array(A) }), gr = s({ topic: A }), pr = s({ post: N }), J = s({
|
|
1799
|
+
posts: e.array(N),
|
|
1799
1800
|
next_token: e.string().optional()
|
|
1800
|
-
}),
|
|
1801
|
+
}), _r = s({ post: N, antispam: ce }), br = s({
|
|
1801
1802
|
replies: e.array(j),
|
|
1802
1803
|
next_token: e.string().optional()
|
|
1803
|
-
}),
|
|
1804
|
+
}), yr = s({ reply: j }), fr = s({
|
|
1804
1805
|
reply: j.clone().optional(),
|
|
1805
|
-
antispam:
|
|
1806
|
-
}),
|
|
1806
|
+
antispam: ce.clone().optional()
|
|
1807
|
+
}), hr = s({ comment: v }), wr = s({
|
|
1807
1808
|
comments: e.array(v),
|
|
1808
1809
|
next_token: e.string().optional()
|
|
1809
|
-
}),
|
|
1810
|
+
}), kr = s({
|
|
1810
1811
|
comment: v.clone().optional(),
|
|
1811
1812
|
antispam: v.clone().optional()
|
|
1812
|
-
}),
|
|
1813
|
-
notifications: e.array(
|
|
1813
|
+
}), vr = e.guard(tr), Cr = s({
|
|
1814
|
+
notifications: e.array(lr),
|
|
1814
1815
|
next_token: e.string().optional()
|
|
1815
|
-
}),
|
|
1816
|
+
}), Vr = s({
|
|
1816
1817
|
system: e.number(),
|
|
1817
1818
|
comment: e.number(),
|
|
1818
1819
|
like: e.number()
|
|
1819
1820
|
});
|
|
1820
|
-
class
|
|
1821
|
-
token;
|
|
1822
|
-
req;
|
|
1821
|
+
class Nr {
|
|
1823
1822
|
constructor(t) {
|
|
1823
|
+
d(this, "token");
|
|
1824
|
+
d(this, "req");
|
|
1824
1825
|
this.token = t, this.req = t.req;
|
|
1825
1826
|
}
|
|
1826
1827
|
/**
|
|
@@ -1829,8 +1830,8 @@ class Dr {
|
|
|
1829
1830
|
* https://kdocs.cn/l/cbggfJodHLIz?linkname=QaqUa2K0z0
|
|
1830
1831
|
*/
|
|
1831
1832
|
async getForums(t) {
|
|
1832
|
-
const { data:
|
|
1833
|
-
return
|
|
1833
|
+
const { data: r } = await this.req.get("community/forums", mr, t);
|
|
1834
|
+
return (r == null ? void 0 : r.forums) || [];
|
|
1834
1835
|
}
|
|
1835
1836
|
/**
|
|
1836
1837
|
* 获取社区话题列表,仅返回启用状态的话题
|
|
@@ -1838,34 +1839,34 @@ class Dr {
|
|
|
1838
1839
|
* https://kdocs.cn/l/cbggfJodHLIz?linkname=mIwpymAQom
|
|
1839
1840
|
*/
|
|
1840
1841
|
async getTopics(t) {
|
|
1841
|
-
const { data:
|
|
1842
|
-
return
|
|
1842
|
+
const { data: r } = await this.req.get("community/topics", dr, t);
|
|
1843
|
+
return (r == null ? void 0 : r.topics) || [];
|
|
1843
1844
|
}
|
|
1844
1845
|
/**
|
|
1845
1846
|
* 根据话题 ID 获取社区话题信息
|
|
1846
1847
|
*
|
|
1847
1848
|
* https://kdocs.cn/l/cbggfJodHLIz?linkname=Jvw7xMK31K
|
|
1848
1849
|
*/
|
|
1849
|
-
async getTopic(t,
|
|
1850
|
-
const { data:
|
|
1851
|
-
...
|
|
1850
|
+
async getTopic(t, r) {
|
|
1851
|
+
const { data: n, code: i } = await this.req.get("community/topic", gr, {
|
|
1852
|
+
...r,
|
|
1852
1853
|
params: { topic_id: t }
|
|
1853
1854
|
});
|
|
1854
|
-
return
|
|
1855
|
+
return (n == null ? void 0 : n.topic) ?? { error: i };
|
|
1855
1856
|
}
|
|
1856
1857
|
/**
|
|
1857
1858
|
* 获取社区帖子列表
|
|
1858
1859
|
*
|
|
1859
1860
|
* https://kdocs.cn/l/cbggfJodHLIz?linkname=XKI9lDVrPq
|
|
1860
1861
|
*/
|
|
1861
|
-
async getPosts(t,
|
|
1862
|
-
const { data:
|
|
1863
|
-
...
|
|
1862
|
+
async getPosts(t, r) {
|
|
1863
|
+
const { data: n, code: i, message: o } = await this.req.get("community/posts", J, {
|
|
1864
|
+
...r,
|
|
1864
1865
|
params: c(t)
|
|
1865
1866
|
});
|
|
1866
|
-
return
|
|
1867
|
-
message:
|
|
1868
|
-
error:
|
|
1867
|
+
return n ?? {
|
|
1868
|
+
message: o,
|
|
1869
|
+
error: i
|
|
1869
1870
|
};
|
|
1870
1871
|
}
|
|
1871
1872
|
/**
|
|
@@ -1873,14 +1874,14 @@ class Dr {
|
|
|
1873
1874
|
*
|
|
1874
1875
|
* https://kdocs.cn/l/cbggfJodHLIz?linkname=yXubbZuDlC
|
|
1875
1876
|
*/
|
|
1876
|
-
async getPinnedPosts(t,
|
|
1877
|
-
const { data:
|
|
1878
|
-
...
|
|
1879
|
-
params: c({ forum_id: t, max_results:
|
|
1877
|
+
async getPinnedPosts(t, r, n, i) {
|
|
1878
|
+
const { data: o, code: g, message: m } = await this.req.get("community/pinned-posts", J, {
|
|
1879
|
+
...i,
|
|
1880
|
+
params: c({ forum_id: t, max_results: r, next_token: n })
|
|
1880
1881
|
});
|
|
1881
|
-
return
|
|
1882
|
+
return o ?? {
|
|
1882
1883
|
message: m,
|
|
1883
|
-
error:
|
|
1884
|
+
error: g
|
|
1884
1885
|
};
|
|
1885
1886
|
}
|
|
1886
1887
|
/**
|
|
@@ -1888,14 +1889,14 @@ class Dr {
|
|
|
1888
1889
|
*
|
|
1889
1890
|
* https://kdocs.cn/l/cbggfJodHLIz?linkname=hj1AZy5rcP
|
|
1890
1891
|
*/
|
|
1891
|
-
async getPost(t,
|
|
1892
|
-
const { data:
|
|
1893
|
-
...
|
|
1892
|
+
async getPost(t, r) {
|
|
1893
|
+
const { data: n, code: i, message: o } = await this.req.get("community/post", pr, {
|
|
1894
|
+
...r,
|
|
1894
1895
|
params: { post_id: t }
|
|
1895
1896
|
});
|
|
1896
|
-
return
|
|
1897
|
-
message:
|
|
1898
|
-
error:
|
|
1897
|
+
return (n == null ? void 0 : n.post) ?? {
|
|
1898
|
+
message: o,
|
|
1899
|
+
error: i
|
|
1899
1900
|
};
|
|
1900
1901
|
}
|
|
1901
1902
|
/**
|
|
@@ -1903,16 +1904,16 @@ class Dr {
|
|
|
1903
1904
|
*
|
|
1904
1905
|
* https://kdocs.cn/l/cbggfJodHLIz?linkname=M5okHBuaVk
|
|
1905
1906
|
*/
|
|
1906
|
-
async post(t,
|
|
1907
|
-
const { data:
|
|
1907
|
+
async post(t, r) {
|
|
1908
|
+
const { data: n, code: i, message: o } = await this.req.post(
|
|
1908
1909
|
"community/post",
|
|
1909
1910
|
c(t),
|
|
1910
|
-
|
|
1911
|
-
|
|
1911
|
+
_r,
|
|
1912
|
+
r
|
|
1912
1913
|
);
|
|
1913
|
-
return
|
|
1914
|
-
message:
|
|
1915
|
-
error:
|
|
1914
|
+
return n ?? {
|
|
1915
|
+
message: o,
|
|
1916
|
+
error: i
|
|
1916
1917
|
};
|
|
1917
1918
|
}
|
|
1918
1919
|
/**
|
|
@@ -1920,14 +1921,14 @@ class Dr {
|
|
|
1920
1921
|
*
|
|
1921
1922
|
* https://kdocs.cn/l/cbggfJodHLIz?linkname=djKbX7lFdp
|
|
1922
1923
|
*/
|
|
1923
|
-
async getComments(t,
|
|
1924
|
-
const { data:
|
|
1925
|
-
...
|
|
1924
|
+
async getComments(t, r) {
|
|
1925
|
+
const { data: n, code: i, message: o } = await this.req.get("community/comments", wr, {
|
|
1926
|
+
...r,
|
|
1926
1927
|
params: c(t)
|
|
1927
1928
|
});
|
|
1928
|
-
return
|
|
1929
|
-
message:
|
|
1930
|
-
error:
|
|
1929
|
+
return n ?? {
|
|
1930
|
+
message: o,
|
|
1931
|
+
error: i
|
|
1931
1932
|
};
|
|
1932
1933
|
}
|
|
1933
1934
|
/**
|
|
@@ -1935,14 +1936,14 @@ class Dr {
|
|
|
1935
1936
|
*
|
|
1936
1937
|
* https://kdocs.cn/l/cbggfJodHLIz?linkname=RIc7oxVGae
|
|
1937
1938
|
*/
|
|
1938
|
-
async getComment(t,
|
|
1939
|
-
const { data:
|
|
1940
|
-
...
|
|
1939
|
+
async getComment(t, r) {
|
|
1940
|
+
const { data: n, code: i, message: o } = await this.req.get("community/comment", hr, {
|
|
1941
|
+
...r,
|
|
1941
1942
|
params: { comment_id: t }
|
|
1942
1943
|
});
|
|
1943
|
-
return
|
|
1944
|
-
message:
|
|
1945
|
-
error:
|
|
1944
|
+
return (n == null ? void 0 : n.comment) ?? {
|
|
1945
|
+
message: o,
|
|
1946
|
+
error: i
|
|
1946
1947
|
};
|
|
1947
1948
|
}
|
|
1948
1949
|
/**
|
|
@@ -1950,17 +1951,17 @@ class Dr {
|
|
|
1950
1951
|
*
|
|
1951
1952
|
* https://kdocs.cn/l/cbggfJodHLIz?linkname=Nv7lk0nTmr
|
|
1952
1953
|
*/
|
|
1953
|
-
async comment(t,
|
|
1954
|
+
async comment(t, r) {
|
|
1954
1955
|
await this.token.autoLogin();
|
|
1955
|
-
const { data:
|
|
1956
|
+
const { data: n, code: i, message: o } = await this.req.post(
|
|
1956
1957
|
"community/comment",
|
|
1957
1958
|
c(t),
|
|
1958
|
-
|
|
1959
|
-
|
|
1959
|
+
kr,
|
|
1960
|
+
r
|
|
1960
1961
|
);
|
|
1961
|
-
return
|
|
1962
|
-
message:
|
|
1963
|
-
error:
|
|
1962
|
+
return n ?? {
|
|
1963
|
+
message: o,
|
|
1964
|
+
error: i
|
|
1964
1965
|
};
|
|
1965
1966
|
}
|
|
1966
1967
|
/**
|
|
@@ -1968,14 +1969,14 @@ class Dr {
|
|
|
1968
1969
|
*
|
|
1969
1970
|
* https://kdocs.cn/l/cbggfJodHLIz?linkname=sVKBbY83MY
|
|
1970
1971
|
*/
|
|
1971
|
-
async getReplies(t,
|
|
1972
|
-
const { data:
|
|
1973
|
-
...
|
|
1972
|
+
async getReplies(t, r) {
|
|
1973
|
+
const { data: n } = await this.req.get("community/replies", br, {
|
|
1974
|
+
...r,
|
|
1974
1975
|
params: c({ max_results: 20, ...t })
|
|
1975
1976
|
});
|
|
1976
1977
|
return {
|
|
1977
|
-
replies:
|
|
1978
|
-
next_token:
|
|
1978
|
+
replies: (n == null ? void 0 : n.replies) || [],
|
|
1979
|
+
next_token: (n == null ? void 0 : n.next_token) || ""
|
|
1979
1980
|
};
|
|
1980
1981
|
}
|
|
1981
1982
|
/**
|
|
@@ -1983,14 +1984,14 @@ class Dr {
|
|
|
1983
1984
|
*
|
|
1984
1985
|
* https://kdocs.cn/l/cbggfJodHLIz?linkname=kxhcSXD3MG
|
|
1985
1986
|
*/
|
|
1986
|
-
async getReply(t,
|
|
1987
|
-
const { data:
|
|
1988
|
-
...
|
|
1987
|
+
async getReply(t, r) {
|
|
1988
|
+
const { data: n, code: i, message: o } = await this.req.get("community/reply", yr, {
|
|
1989
|
+
...r,
|
|
1989
1990
|
params: { reply_id: t }
|
|
1990
1991
|
});
|
|
1991
|
-
return
|
|
1992
|
-
message:
|
|
1993
|
-
error:
|
|
1992
|
+
return (n == null ? void 0 : n.reply) ?? {
|
|
1993
|
+
message: o,
|
|
1994
|
+
error: i
|
|
1994
1995
|
};
|
|
1995
1996
|
}
|
|
1996
1997
|
/**
|
|
@@ -1998,17 +1999,17 @@ class Dr {
|
|
|
1998
1999
|
*
|
|
1999
2000
|
* https://kdocs.cn/l/cbggfJodHLIz?linkname=KA8WpTX2pg
|
|
2000
2001
|
*/
|
|
2001
|
-
async reply(t,
|
|
2002
|
+
async reply(t, r) {
|
|
2002
2003
|
await this.token.autoLogin();
|
|
2003
|
-
const { data:
|
|
2004
|
+
const { data: n, code: i, message: o } = await this.req.post(
|
|
2004
2005
|
"community/reply",
|
|
2005
2006
|
c(t),
|
|
2006
|
-
|
|
2007
|
-
|
|
2007
|
+
fr,
|
|
2008
|
+
r
|
|
2008
2009
|
);
|
|
2009
|
-
return
|
|
2010
|
-
message:
|
|
2011
|
-
error:
|
|
2010
|
+
return n ?? {
|
|
2011
|
+
message: o,
|
|
2012
|
+
error: i
|
|
2012
2013
|
};
|
|
2013
2014
|
}
|
|
2014
2015
|
/**
|
|
@@ -2016,17 +2017,17 @@ class Dr {
|
|
|
2016
2017
|
*
|
|
2017
2018
|
* https://kdocs.cn/l/cbggfJodHLIz?linkname=CR3m6PyXfZ
|
|
2018
2019
|
*/
|
|
2019
|
-
async like(t,
|
|
2020
|
+
async like(t, r) {
|
|
2020
2021
|
await this.token.autoLogin();
|
|
2021
|
-
const { ok:
|
|
2022
|
+
const { ok: n, code: i, message: o } = await this.req.post(
|
|
2022
2023
|
"community/like",
|
|
2023
2024
|
{ ...t, action: "like" },
|
|
2024
2025
|
null,
|
|
2025
|
-
|
|
2026
|
+
r
|
|
2026
2027
|
);
|
|
2027
|
-
return
|
|
2028
|
-
message:
|
|
2029
|
-
error:
|
|
2028
|
+
return n || {
|
|
2029
|
+
message: o,
|
|
2030
|
+
error: i
|
|
2030
2031
|
};
|
|
2031
2032
|
}
|
|
2032
2033
|
/**
|
|
@@ -2034,17 +2035,17 @@ class Dr {
|
|
|
2034
2035
|
*
|
|
2035
2036
|
* https://kdocs.cn/l/cbggfJodHLIz?linkname=CR3m6PyXfZ
|
|
2036
2037
|
*/
|
|
2037
|
-
async unlike(t,
|
|
2038
|
+
async unlike(t, r) {
|
|
2038
2039
|
await this.token.autoLogin();
|
|
2039
|
-
const { ok:
|
|
2040
|
+
const { ok: n, code: i, message: o } = await this.req.post(
|
|
2040
2041
|
"community/like",
|
|
2041
2042
|
{ ...t, action: "unlike" },
|
|
2042
2043
|
null,
|
|
2043
|
-
|
|
2044
|
+
r
|
|
2044
2045
|
);
|
|
2045
|
-
return
|
|
2046
|
-
message:
|
|
2047
|
-
error:
|
|
2046
|
+
return n || {
|
|
2047
|
+
message: o,
|
|
2048
|
+
error: i
|
|
2048
2049
|
};
|
|
2049
2050
|
}
|
|
2050
2051
|
/**
|
|
@@ -2052,13 +2053,13 @@ class Dr {
|
|
|
2052
2053
|
*
|
|
2053
2054
|
* https://kdocs.cn/l/cbggfJodHLIz?linkname=dWWhpoShxZ
|
|
2054
2055
|
*/
|
|
2055
|
-
async getMediaPresignedUrl(t,
|
|
2056
|
+
async getMediaPresignedUrl(t, r) {
|
|
2056
2057
|
await this.token.autoLogin();
|
|
2057
|
-
const { data:
|
|
2058
|
-
...
|
|
2058
|
+
const { data: n } = await this.req.get("community/media-presign-url", vr, {
|
|
2059
|
+
...r,
|
|
2059
2060
|
params: t
|
|
2060
2061
|
});
|
|
2061
|
-
return
|
|
2062
|
+
return n;
|
|
2062
2063
|
}
|
|
2063
2064
|
/**
|
|
2064
2065
|
* 获取用户社区通知
|
|
@@ -2067,15 +2068,15 @@ class Dr {
|
|
|
2067
2068
|
*
|
|
2068
2069
|
* https://kdocs.cn/l/cbggfJodHLIz?linkname=W5lceDgbBG
|
|
2069
2070
|
*/
|
|
2070
|
-
async getNotifications(t,
|
|
2071
|
+
async getNotifications(t, r) {
|
|
2071
2072
|
await this.token.autoLogin();
|
|
2072
|
-
const { data:
|
|
2073
|
-
...
|
|
2073
|
+
const { data: n } = await this.req.get("community/notifications", Cr, {
|
|
2074
|
+
...r,
|
|
2074
2075
|
params: c({ max_results: 20, ...t })
|
|
2075
2076
|
});
|
|
2076
2077
|
return {
|
|
2077
|
-
notifications:
|
|
2078
|
-
next_token:
|
|
2078
|
+
notifications: (n == null ? void 0 : n.notifications) || [],
|
|
2079
|
+
next_token: (n == null ? void 0 : n.next_token) || ""
|
|
2079
2080
|
};
|
|
2080
2081
|
}
|
|
2081
2082
|
/**
|
|
@@ -2085,38 +2086,35 @@ class Dr {
|
|
|
2085
2086
|
*/
|
|
2086
2087
|
async getUnreadNotificationsCount(t) {
|
|
2087
2088
|
if (!await this.token.autoLogin()) return null;
|
|
2088
|
-
const { data:
|
|
2089
|
+
const { data: r } = await this.req.get(
|
|
2089
2090
|
"community/unread-notifications-count",
|
|
2090
|
-
|
|
2091
|
+
Vr,
|
|
2091
2092
|
t
|
|
2092
2093
|
);
|
|
2093
|
-
return
|
|
2094
|
+
return r;
|
|
2094
2095
|
}
|
|
2095
2096
|
/**
|
|
2096
2097
|
* 社区用户将通知标为已读
|
|
2097
2098
|
*
|
|
2098
2099
|
* https://kdocs.cn/l/cbggfJodHLIz?linkname=TCJQxnOjJe
|
|
2099
2100
|
*/
|
|
2100
|
-
async clearUnreadNotifications(t,
|
|
2101
|
+
async clearUnreadNotifications(t, r) {
|
|
2101
2102
|
if (!await this.token.autoLogin()) return !1;
|
|
2102
|
-
const { ok:
|
|
2103
|
-
return
|
|
2103
|
+
const { ok: n } = await this.req.post("community/clear-unread-notifications", { category: t }, null, r);
|
|
2104
|
+
return n;
|
|
2104
2105
|
}
|
|
2105
2106
|
}
|
|
2106
|
-
const
|
|
2107
|
+
const Rr = s({
|
|
2107
2108
|
nonce_str: e.string(),
|
|
2108
2109
|
timestamp: e.number(),
|
|
2109
2110
|
signature: e.string()
|
|
2110
2111
|
});
|
|
2111
|
-
var
|
|
2112
|
-
function
|
|
2113
|
-
return C(
|
|
2112
|
+
var jr = /* @__PURE__ */ ((a) => (a.RedirectUriDisMatch = "10003", a.AppidError = "10016", a.AuthorizationError = "10015", a.NoRightForScope = "10005", a.Frequently = "10009", a.AppBanded = "10004", a.ShouldFollow = "10006", a.ScopeNull = "10010", a.RedirectUriNull = "10011", a.AppidNull = "10012", a.StateNull = "10013", a))(jr || {});
|
|
2113
|
+
function E(a) {
|
|
2114
|
+
return C(a, "open_id", "union_id", "weixin_token");
|
|
2114
2115
|
}
|
|
2115
|
-
const
|
|
2116
|
-
class
|
|
2117
|
-
token;
|
|
2118
|
-
$appid;
|
|
2119
|
-
req;
|
|
2116
|
+
const Z = "wx_login_cache";
|
|
2117
|
+
class Or {
|
|
2120
2118
|
/**
|
|
2121
2119
|
* 创建微信相关功能接口
|
|
2122
2120
|
*
|
|
@@ -2130,8 +2128,11 @@ class Ir {
|
|
|
2130
2128
|
*
|
|
2131
2129
|
* https://developers.weixin.qq.com/miniprogram/dev/api/open-api/account-info/wx.getAccountInfoSync.html
|
|
2132
2130
|
*/
|
|
2133
|
-
constructor(t,
|
|
2134
|
-
this
|
|
2131
|
+
constructor(t, r) {
|
|
2132
|
+
d(this, "token");
|
|
2133
|
+
d(this, "$appid");
|
|
2134
|
+
d(this, "req");
|
|
2135
|
+
this.token = t, this.req = t.req, this.$appid = r, this.getLoginCache();
|
|
2135
2136
|
}
|
|
2136
2137
|
get appid() {
|
|
2137
2138
|
return this.$appid;
|
|
@@ -2144,11 +2145,11 @@ class Ir {
|
|
|
2144
2145
|
* 也可以直接调用 login 方法,并传入 weixin code 的读取函数
|
|
2145
2146
|
*/
|
|
2146
2147
|
async getLoginCache() {
|
|
2147
|
-
const t = this.token.storage.get(
|
|
2148
|
+
const t = this.token.storage.get(Z);
|
|
2148
2149
|
if (!t)
|
|
2149
2150
|
return null;
|
|
2150
|
-
const
|
|
2151
|
-
return
|
|
2151
|
+
const r = ye(t);
|
|
2152
|
+
return E(r) ? (this.token.weixinToken = r.weixin_token, await this.token.autoLogin(), r) : null;
|
|
2152
2153
|
}
|
|
2153
2154
|
/**
|
|
2154
2155
|
* 小程序页面微信静默登录,获取 weixinToken / open_id / union_id。
|
|
@@ -2168,20 +2169,20 @@ class Ir {
|
|
|
2168
2169
|
* https://kdocs.cn/l/cf2mO2uRLqh9?linkname=GwIZ0givCb
|
|
2169
2170
|
*/
|
|
2170
2171
|
async login(t) {
|
|
2171
|
-
if (!
|
|
2172
|
+
if (!y.wx)
|
|
2172
2173
|
throw new Error("当前环境非微信小程序");
|
|
2173
|
-
const
|
|
2174
|
-
if (
|
|
2175
|
-
return
|
|
2176
|
-
const
|
|
2174
|
+
const r = await this.getLoginCache();
|
|
2175
|
+
if (r)
|
|
2176
|
+
return r;
|
|
2177
|
+
const n = await we(), { data: i, code: o, message: g } = await this.req.post(
|
|
2177
2178
|
"weixin/login",
|
|
2178
|
-
{ code:
|
|
2179
|
-
|
|
2179
|
+
{ code: n, appid: this.appid },
|
|
2180
|
+
E,
|
|
2180
2181
|
{ ...t, message: !1 }
|
|
2181
2182
|
);
|
|
2182
|
-
return
|
|
2183
|
-
message:
|
|
2184
|
-
error:
|
|
2183
|
+
return i && (this.token.weixinToken = i.weixin_token, this.token.storage.set(Z, JSON.stringify(i))), i ?? {
|
|
2184
|
+
message: g,
|
|
2185
|
+
error: o
|
|
2185
2186
|
};
|
|
2186
2187
|
}
|
|
2187
2188
|
/**
|
|
@@ -2200,30 +2201,30 @@ class Ir {
|
|
|
2200
2201
|
* - snsapi_base 不弹出授权页面,用户无感知,只能获取用户 openid,如果需要获取 union_id 则需要 snsapi_userinfo
|
|
2201
2202
|
* - snsapi_userinfo 【默认】弹出授权页面,可拿到 openid、union_id、昵称、头像等信息,但用户也可能会拒绝授权
|
|
2202
2203
|
*/
|
|
2203
|
-
async webLogin(t = "snsapi_userinfo",
|
|
2204
|
-
const
|
|
2205
|
-
if (!
|
|
2206
|
-
const
|
|
2204
|
+
async webLogin(t = "snsapi_userinfo", r) {
|
|
2205
|
+
const n = P("code"), i = Date.now(), o = +P("state");
|
|
2206
|
+
if (!n || !o || o < i - 1e3 * 60 * 5 || o > i) {
|
|
2207
|
+
const le = Q(["code", "state"]);
|
|
2207
2208
|
location.replace(
|
|
2208
|
-
`https://open.weixin.qq.com/connect/oauth2/authorize?appid=${this.appid}&redirect_uri=${encodeURIComponent(
|
|
2209
|
+
`https://open.weixin.qq.com/connect/oauth2/authorize?appid=${this.appid}&redirect_uri=${encodeURIComponent(le)}&response_type=code&scope=${t}&state=${i}#wechat_redirect`
|
|
2209
2210
|
);
|
|
2210
2211
|
return;
|
|
2211
2212
|
}
|
|
2212
|
-
if (/^100\d{2}$/.test(
|
|
2213
|
+
if (/^100\d{2}$/.test(n))
|
|
2213
2214
|
return {
|
|
2214
|
-
message: "Error: " +
|
|
2215
|
-
error:
|
|
2215
|
+
message: "Error: " + n,
|
|
2216
|
+
error: n
|
|
2216
2217
|
};
|
|
2217
|
-
const
|
|
2218
|
-
"replaceState" in history && history.replaceState({}, "",
|
|
2218
|
+
const g = Q(["code", "state"]);
|
|
2219
|
+
"replaceState" in history && history.replaceState({}, "", g);
|
|
2219
2220
|
const {
|
|
2220
2221
|
data: m,
|
|
2221
|
-
code:
|
|
2222
|
-
message:
|
|
2223
|
-
} = await this.req.post("weixin/login", { code:
|
|
2222
|
+
code: h,
|
|
2223
|
+
message: ue
|
|
2224
|
+
} = await this.req.post("weixin/login", { code: n, appid: this.appid }, E, r);
|
|
2224
2225
|
return m && (this.token.weixinToken = m.weixin_token, await this.token.autoLogin()), m ?? {
|
|
2225
|
-
message:
|
|
2226
|
-
error:
|
|
2226
|
+
message: ue,
|
|
2227
|
+
error: h
|
|
2227
2228
|
};
|
|
2228
2229
|
}
|
|
2229
2230
|
/**
|
|
@@ -2238,14 +2239,14 @@ class Ir {
|
|
|
2238
2239
|
* @param weixinToken 调用 login 后,得到的 weixinToken,如果 weixinToken 为空则跳过不处理
|
|
2239
2240
|
* @param gameCode 从游戏内跳转至小程序时,通过请求参数 query 携带的 game_code,如果值为空则跳过不处理
|
|
2240
2241
|
*/
|
|
2241
|
-
async linkPlayer(t,
|
|
2242
|
-
if (!t || !
|
|
2242
|
+
async linkPlayer(t, r, n) {
|
|
2243
|
+
if (!t || !r)
|
|
2243
2244
|
return !1;
|
|
2244
|
-
const { ok:
|
|
2245
|
-
...
|
|
2245
|
+
const { ok: i } = await this.req.post("weixin/link-player", { weixin_token: t, game_code: r }, null, {
|
|
2246
|
+
...n,
|
|
2246
2247
|
message: !1
|
|
2247
2248
|
});
|
|
2248
|
-
return
|
|
2249
|
+
return i;
|
|
2249
2250
|
}
|
|
2250
2251
|
/**
|
|
2251
2252
|
* 获取集成 JSSDK 所需的签名信息
|
|
@@ -2253,162 +2254,162 @@ class Ir {
|
|
|
2253
2254
|
* https://kdocs.cn/l/cf2mO2uRLqh9?linkname=CuWOqxr9Ue
|
|
2254
2255
|
*/
|
|
2255
2256
|
async getJSSDKConfig(t) {
|
|
2256
|
-
const { data:
|
|
2257
|
+
const { data: r } = await this.req.get("weixin/offiaccount/jssdk-sign", Rr, {
|
|
2257
2258
|
...t,
|
|
2258
2259
|
params: {
|
|
2259
2260
|
appid: this.appid,
|
|
2260
2261
|
url: location.href.split("#")[0]
|
|
2261
2262
|
}
|
|
2262
2263
|
});
|
|
2263
|
-
return
|
|
2264
|
+
return r ? {
|
|
2264
2265
|
appid: this.appid,
|
|
2265
|
-
nonceStr:
|
|
2266
|
-
timestamp:
|
|
2267
|
-
signature:
|
|
2266
|
+
nonceStr: r.nonce_str,
|
|
2267
|
+
timestamp: r.timestamp,
|
|
2268
|
+
signature: r.signature
|
|
2268
2269
|
} : null;
|
|
2269
2270
|
}
|
|
2270
2271
|
}
|
|
2271
2272
|
export {
|
|
2272
|
-
|
|
2273
|
-
|
|
2274
|
-
|
|
2275
|
-
|
|
2276
|
-
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
|
|
2281
|
-
|
|
2282
|
-
|
|
2283
|
-
|
|
2284
|
-
|
|
2285
|
-
|
|
2286
|
-
|
|
2287
|
-
|
|
2288
|
-
|
|
2289
|
-
|
|
2290
|
-
|
|
2291
|
-
|
|
2292
|
-
|
|
2293
|
-
|
|
2294
|
-
|
|
2295
|
-
|
|
2296
|
-
|
|
2297
|
-
|
|
2273
|
+
ce as AntispamValidator,
|
|
2274
|
+
Sr as AuthToken,
|
|
2275
|
+
cn as CashbackEngagementDataValidator,
|
|
2276
|
+
un as ClaimActivationKeyEngagementDataValidator,
|
|
2277
|
+
b as ClaimRewardStatus,
|
|
2278
|
+
U as ClaimRewardStatusValidator,
|
|
2279
|
+
Pn as ClaimedItemValidator,
|
|
2280
|
+
W as ClubAddressValidator,
|
|
2281
|
+
Er as ClubApi,
|
|
2282
|
+
ee as ClubBenefitSummaryValidator,
|
|
2283
|
+
Ae as ClubBenefitValidator,
|
|
2284
|
+
Te as ClubCreditChangeScene,
|
|
2285
|
+
qe as ClubCreditChangeSceneValidator,
|
|
2286
|
+
Re as ClubCreditChangeType,
|
|
2287
|
+
je as ClubCreditChangeTypeValidator,
|
|
2288
|
+
Ge as ClubCreditLogValidator,
|
|
2289
|
+
Ee as ClubGlobalConfigValidator,
|
|
2290
|
+
xe as ClubItemType,
|
|
2291
|
+
X as ClubItemTypeValidator,
|
|
2292
|
+
Pe as ClubPlayerValidator,
|
|
2293
|
+
te as ClubProductValidator,
|
|
2294
|
+
Se as ClubRedemptionStatus,
|
|
2295
|
+
Le as ClubRedemptionStatusValidator,
|
|
2296
|
+
Ie as ClubUserCreditValidator,
|
|
2297
|
+
De as ClubUserProfileValidator,
|
|
2298
|
+
jn as CommentEngagementValidator,
|
|
2298
2299
|
v as CommentValidator,
|
|
2299
|
-
|
|
2300
|
-
|
|
2301
|
-
|
|
2302
|
-
|
|
2303
|
-
|
|
2304
|
-
|
|
2305
|
-
|
|
2306
|
-
|
|
2307
|
-
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
|
|
2312
|
-
|
|
2313
|
-
|
|
2314
|
-
|
|
2315
|
-
|
|
2316
|
-
|
|
2317
|
-
|
|
2318
|
-
|
|
2319
|
-
|
|
2320
|
-
|
|
2321
|
-
|
|
2322
|
-
|
|
2323
|
-
|
|
2324
|
-
|
|
2325
|
-
|
|
2326
|
-
|
|
2327
|
-
|
|
2328
|
-
|
|
2329
|
-
|
|
2330
|
-
|
|
2331
|
-
|
|
2300
|
+
Nr as CommunityApi,
|
|
2301
|
+
We as EngageAccountType,
|
|
2302
|
+
et as EngageAccountTypeValidator,
|
|
2303
|
+
En as EngageResponseValidator,
|
|
2304
|
+
qn as EngageRewardValidator,
|
|
2305
|
+
Gr as EventApi,
|
|
2306
|
+
sn as EventConfigValidator,
|
|
2307
|
+
bt as EventFeatureConfigOfCashbackValidator,
|
|
2308
|
+
ft as EventFeatureConfigOfCheckInValidator,
|
|
2309
|
+
wt as EventFeatureConfigOfClaimActivationKeyValidator,
|
|
2310
|
+
vt as EventFeatureConfigOfClaimRewardsValidator,
|
|
2311
|
+
Vt as EventFeatureConfigOfCommentValidator,
|
|
2312
|
+
jt as EventFeatureConfigOfFollowValidator,
|
|
2313
|
+
xt as EventFeatureConfigOfGiftCodeValidator,
|
|
2314
|
+
Lt as EventFeatureConfigOfInviteValidator,
|
|
2315
|
+
Pt as EventFeatureConfigOfInvitedRegisterValidator,
|
|
2316
|
+
Gt as EventFeatureConfigOfLotteryDrawValidator,
|
|
2317
|
+
Dt as EventFeatureConfigOfLotteryValidator,
|
|
2318
|
+
Nt as EventFeatureConfigOfPreregisterValidator,
|
|
2319
|
+
Bt as EventFeatureConfigOfQuestValidator,
|
|
2320
|
+
Mt as EventFeatureConfigOfRegisterValidator,
|
|
2321
|
+
Ht as EventFeatureConfigOfShareValidator,
|
|
2322
|
+
Jt as EventFeatureConfigOfSubscribeValidator,
|
|
2323
|
+
Xt as EventFeatureConfigOfSurveyValidator,
|
|
2324
|
+
Wt as EventFeatureConfigOfTeamValidator,
|
|
2325
|
+
nn as EventFeatureConfigOfVoteValidator,
|
|
2326
|
+
an as EventFeatureConfigValidator,
|
|
2327
|
+
tt as EventPeriodType,
|
|
2328
|
+
nt as EventPeriodTypeValidator,
|
|
2329
|
+
D as EventRewardItemConfigValidator,
|
|
2330
|
+
Oe as ExtraGameRewardValidator,
|
|
2331
|
+
Ne as ExtraPhysicalShipmentValidator,
|
|
2332
|
+
pt as FeatureRewardValidator,
|
|
2332
2333
|
u as FeatureType,
|
|
2333
|
-
|
|
2334
|
-
|
|
2335
|
-
|
|
2336
|
-
|
|
2334
|
+
rt as FeatureTypeValidator,
|
|
2335
|
+
Jn as ForumMode,
|
|
2336
|
+
Zn as ForumModeValidator,
|
|
2337
|
+
se as ForumValidator,
|
|
2337
2338
|
R as GamerItemType,
|
|
2338
|
-
|
|
2339
|
-
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
|
|
2343
|
-
|
|
2344
|
-
|
|
2345
|
-
|
|
2346
|
-
|
|
2339
|
+
ne as GamerItemTypeValidator,
|
|
2340
|
+
Ce as Gender,
|
|
2341
|
+
Ve as GenderValidator,
|
|
2342
|
+
ln as GiftCodeEngagementDataValidator,
|
|
2343
|
+
mn as InviteEngagementDataValidator,
|
|
2344
|
+
mt as LotteryDrawAction,
|
|
2345
|
+
Dr as LotteryDrawActionValidator,
|
|
2346
|
+
_n as LotteryDrawEngagementDataValidator,
|
|
2347
|
+
dn as LotteryEngagementDataValidator,
|
|
2347
2348
|
k as LotteryTicketStatus,
|
|
2348
|
-
|
|
2349
|
-
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
|
|
2353
|
-
|
|
2349
|
+
Ur as LotteryTicketStatusValidator,
|
|
2350
|
+
f as NotificationBaseValidator,
|
|
2351
|
+
Yn as NotificationCategory,
|
|
2352
|
+
Ar as NotificationCategoryValidator,
|
|
2353
|
+
ar as NotificationCommentReplyValidator,
|
|
2354
|
+
sr as NotificationCommentValidator,
|
|
2354
2355
|
T as NotificationPayloadCommentValidator,
|
|
2355
|
-
|
|
2356
|
-
|
|
2357
|
-
|
|
2358
|
-
|
|
2359
|
-
|
|
2360
|
-
|
|
2361
|
-
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
|
|
2367
|
-
|
|
2368
|
-
|
|
2369
|
-
|
|
2370
|
-
|
|
2371
|
-
|
|
2372
|
-
|
|
2373
|
-
|
|
2374
|
-
|
|
2375
|
-
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2356
|
+
O as NotificationPayloadPostValidator,
|
|
2357
|
+
B as NotificationPayloadReplyValidator,
|
|
2358
|
+
nr as NotificationPayloadSystemValidator,
|
|
2359
|
+
or as NotificationPostCommentValidator,
|
|
2360
|
+
ir as NotificationPostValidator,
|
|
2361
|
+
cr as NotificationReplyRepliedValidator,
|
|
2362
|
+
ur as NotificationReplyValidator,
|
|
2363
|
+
rr as NotificationSystemValidator,
|
|
2364
|
+
p as NotificationType,
|
|
2365
|
+
Wn as NotificationTypeValidator,
|
|
2366
|
+
lr as NotificationValidator,
|
|
2367
|
+
Fe as PlayerRoleCardValidator,
|
|
2368
|
+
Y as PlayerRoleValidator,
|
|
2369
|
+
Xn as PostStatus,
|
|
2370
|
+
ae as PostStatusValidator,
|
|
2371
|
+
N as PostValidator,
|
|
2372
|
+
bn as PreregisterEngagementDataValidator,
|
|
2373
|
+
tr as PresignedUrlResponseValidator,
|
|
2374
|
+
yn as QuestEngagementDataValidator,
|
|
2375
|
+
it as QuestObjective,
|
|
2376
|
+
ie as QuestObjectiveValidator,
|
|
2377
|
+
Lr as RedeemParamsValidator,
|
|
2378
|
+
Be as RedemptionValidator,
|
|
2379
|
+
gt as RegularRewardValidator,
|
|
2380
|
+
er as ReplyToValidator,
|
|
2380
2381
|
j as ReplyValidator,
|
|
2381
|
-
|
|
2382
|
-
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
|
|
2386
|
-
|
|
2387
|
-
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
|
|
2391
|
-
|
|
2392
|
-
|
|
2393
|
-
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
|
|
2397
|
-
|
|
2398
|
-
|
|
2399
|
-
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2403
|
-
|
|
2404
|
-
|
|
2405
|
-
|
|
2406
|
-
|
|
2407
|
-
|
|
2408
|
-
|
|
2409
|
-
|
|
2410
|
-
|
|
2411
|
-
|
|
2412
|
-
|
|
2413
|
-
|
|
2382
|
+
Pr as RewardItemType,
|
|
2383
|
+
re as RewardItemTypeValidator,
|
|
2384
|
+
st as RewardSource,
|
|
2385
|
+
F as RewardSourceValidator,
|
|
2386
|
+
_ as RewardStatus,
|
|
2387
|
+
$ as RewardStatusSuffix,
|
|
2388
|
+
oe as RewardStatusSuffixValidator,
|
|
2389
|
+
$r as RewardStatusValidator,
|
|
2390
|
+
Tn as RewardValidator,
|
|
2391
|
+
Ue as RoleBaseInfoValidator,
|
|
2392
|
+
$e as ServerBaseInfoValidator,
|
|
2393
|
+
fn as ShareEngagementDataValidator,
|
|
2394
|
+
wn as SurveyEngagementDataValidator,
|
|
2395
|
+
lt as TeamAction,
|
|
2396
|
+
Fr as TeamActionValidator,
|
|
2397
|
+
vn as TeamEngagementDataValidator,
|
|
2398
|
+
kn as TeamEngagementValidator,
|
|
2399
|
+
Ir as TeamMemberValidator,
|
|
2400
|
+
ct as TeamVisibility,
|
|
2401
|
+
ut as TeamVisibilityValidator,
|
|
2402
|
+
A as TopicValidator,
|
|
2403
|
+
G as UserEngagementDataValidator,
|
|
2404
|
+
xn as UserEngagementValidator,
|
|
2405
|
+
Ln as UserFeatureStatusValidator,
|
|
2406
|
+
I as UserRewardValidator,
|
|
2407
|
+
Sn as VerifyMobileResultValidator,
|
|
2408
|
+
Cn as VoteEngagementDataValidator,
|
|
2409
|
+
ot as VoteOptionSource,
|
|
2410
|
+
at as VoteOptionSourceValidator,
|
|
2411
|
+
Or as WeixinApi,
|
|
2412
|
+
hn as WeixinSubscribeEngagementDataValidator,
|
|
2413
|
+
jr as WeixinWebLoginErrorCode,
|
|
2414
|
+
Rr as isWeixinSignResponse
|
|
2414
2415
|
};
|