beatsaber-bot-core 0.3.0-rc.2 → 0.3.0-rc.3
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/cjs/cmd/bind/bind-beatleader.js +8 -11
- package/dist/cjs/cmd/bind/bind-beatleader.js.map +1 -1
- package/dist/cjs/cmd/bind/bind-beatsaver.js +7 -12
- package/dist/cjs/cmd/bind/bind-beatsaver.js.map +1 -1
- package/dist/cjs/cmd/bind/bind-id-beatleader.js +8 -11
- package/dist/cjs/cmd/bind/bind-id-beatleader.js.map +1 -1
- package/dist/cjs/cmd/bind/bind-id-beatsaver.js +7 -11
- package/dist/cjs/cmd/bind/bind-id-beatsaver.js.map +1 -1
- package/dist/cjs/cmd/bind/bind-scoresaber.js +9 -14
- package/dist/cjs/cmd/bind/bind-scoresaber.js.map +1 -1
- package/dist/cjs/cmd/subscribe/beatleader.js +1 -1
- package/dist/cjs/cmd/subscribe/beatleader.js.map +1 -1
- package/dist/cjs/cmd/subscribe/beatsaver.js +1 -1
- package/dist/cjs/cmd/subscribe/beatsaver.js.map +1 -1
- package/dist/cjs/cmd/subscribe/id-beatleader-score.js +1 -1
- package/dist/cjs/cmd/subscribe/id-beatleader-score.js.map +1 -1
- package/dist/cjs/cmd/subscribe/id-beatsaver-mapper.js +1 -1
- package/dist/cjs/cmd/subscribe/id-beatsaver-mapper.js.map +1 -1
- package/dist/cjs/cmd/subscribe/index.js +4 -4
- package/dist/cjs/cmd/subscribe/index.js.map +1 -1
- package/dist/cjs/cmd/subscribe/subleave.js +4 -4
- package/dist/cjs/cmd/subscribe/subleave.js.map +1 -1
- package/dist/esm/cmd/bind/bind-beatleader.js +8 -11
- package/dist/esm/cmd/bind/bind-beatleader.js.map +1 -1
- package/dist/esm/cmd/bind/bind-beatsaver.js +7 -12
- package/dist/esm/cmd/bind/bind-beatsaver.js.map +1 -1
- package/dist/esm/cmd/bind/bind-id-beatleader.js +8 -11
- package/dist/esm/cmd/bind/bind-id-beatleader.js.map +1 -1
- package/dist/esm/cmd/bind/bind-id-beatsaver.js +7 -11
- package/dist/esm/cmd/bind/bind-id-beatsaver.js.map +1 -1
- package/dist/esm/cmd/bind/bind-scoresaber.js +9 -14
- package/dist/esm/cmd/bind/bind-scoresaber.js.map +1 -1
- package/dist/esm/cmd/subscribe/beatleader.js +1 -1
- package/dist/esm/cmd/subscribe/beatleader.js.map +1 -1
- package/dist/esm/cmd/subscribe/beatsaver.js +1 -1
- package/dist/esm/cmd/subscribe/beatsaver.js.map +1 -1
- package/dist/esm/cmd/subscribe/id-beatleader-score.js +1 -1
- package/dist/esm/cmd/subscribe/id-beatleader-score.js.map +1 -1
- package/dist/esm/cmd/subscribe/id-beatsaver-mapper.js +1 -1
- package/dist/esm/cmd/subscribe/id-beatsaver-mapper.js.map +1 -1
- package/dist/esm/cmd/subscribe/index.js +4 -4
- package/dist/esm/cmd/subscribe/index.js.map +1 -1
- package/dist/esm/cmd/subscribe/subleave.js +4 -4
- package/dist/esm/cmd/subscribe/subleave.js.map +1 -1
- package/package.json +2 -1
@@ -41,6 +41,7 @@ __export(bind_beatleader_exports, {
|
|
41
41
|
});
|
42
42
|
module.exports = __toCommonJS(bind_beatleader_exports);
|
43
43
|
const handleBeatLeaderBind = (c) => __async(null, null, function* () {
|
44
|
+
var _a;
|
44
45
|
const tokenInfo = yield c.services.api.AIOSaber.getBLOAuthToken(c.input);
|
45
46
|
if (!tokenInfo) {
|
46
47
|
c.session.sendQuote(c.session.text("commands.bsbot.bl.account.not-found"));
|
@@ -70,22 +71,18 @@ const handleBeatLeaderBind = (c) => __async(null, null, function* () {
|
|
70
71
|
const now = /* @__PURE__ */ new Date();
|
71
72
|
const { blAccount } = yield c.services.db.getUserAccountsByUid(c.session.user.id);
|
72
73
|
const account = {
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
otherPlatformInfo: {},
|
74
|
+
userId: c.session.user.id,
|
75
|
+
accountId: (_a = blAccount == null ? void 0 : blAccount.id) != null ? _a : "",
|
76
|
+
providerId: "beatleader",
|
77
|
+
providerUsername: self.name,
|
78
|
+
metadata: {},
|
79
79
|
accessToken: token.access_token,
|
80
80
|
refreshToken: token.refresh_token,
|
81
81
|
lastModifiedAt: now,
|
82
82
|
lastRefreshAt: now,
|
83
|
-
|
84
|
-
|
83
|
+
createdAt: now,
|
84
|
+
type: "oauth"
|
85
85
|
};
|
86
|
-
if (blAccount) {
|
87
|
-
account.id = blAccount.id;
|
88
|
-
}
|
89
86
|
yield c.services.db.addUserBindingInfo(account);
|
90
87
|
c.session.sendQuote(
|
91
88
|
c.session.text("commands.bsbot.bind.bl.success", {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/cmd/bind/bind-beatleader.ts"],"sourcesContent":["import {
|
1
|
+
{"version":3,"sources":["../../../../src/cmd/bind/bind-beatleader.ts"],"sourcesContent":["import { Account } from '@/interface'\nimport {CmdContext} from \"@/interface\";\n\nexport const handleBeatLeaderBind = async (c: CmdContext) => {\n const tokenInfo = await c.services.api.AIOSaber.getBLOAuthToken(c.input)\n if (!tokenInfo) {\n c.session.sendQuote(c.session.text('commands.bsbot.bl.account.not-found'))\n return\n }\n let token = tokenInfo\n let self = await c.services.api.BeatLeader.getTokenInfo(token.access_token)\n if (!self) {\n const refreshToken = await c.services.api.BeatLeader.refreshOAuthToken(\n token.refresh_token\n )\n if (!refreshToken) {\n c.session.sendQuote(\n c.session.text('commands.bsbot.bind.bl.invalid-token')\n )\n return\n }\n token = refreshToken\n self = await c.services.api.BeatLeader.getTokenInfo(token.access_token)\n if (!self) {\n c.session.sendQuote(\n c.session.text('commands.bsbot.bind.bl.unknown-error')\n )\n return\n }\n }\n const now = new Date()\n const { blAccount } = await c.services.db.getUserAccountsByUid(c.session.user.id)\n const account: Partial<Account> = {\n userId: c.session.user.id,\n accountId: blAccount?.id ?? '',\n providerId: 'beatleader',\n providerUsername: self.name,\n metadata: {},\n accessToken: token.access_token,\n refreshToken: token.refresh_token,\n lastModifiedAt: now,\n lastRefreshAt: now,\n createdAt: now,\n type: 'oauth',\n }\n await c.services.db.addUserBindingInfo(account)\n c.session.sendQuote(\n c.session.text('commands.bsbot.bind.bl.success', {\n name: self.name,\n id: self.id,\n })\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,MAAM,uBAAuB,CAAO,MAAkB;AAH7D;AAIE,QAAM,YAAY,MAAM,EAAE,SAAS,IAAI,SAAS,gBAAgB,EAAE,KAAK;AACvE,MAAI,CAAC,WAAW;AACd,MAAE,QAAQ,UAAU,EAAE,QAAQ,KAAK,qCAAqC,CAAC;AACzE;AAAA,EACF;AACA,MAAI,QAAQ;AACZ,MAAI,OAAO,MAAM,EAAE,SAAS,IAAI,WAAW,aAAa,MAAM,YAAY;AAC1E,MAAI,CAAC,MAAM;AACT,UAAM,eAAe,MAAM,EAAE,SAAS,IAAI,WAAW;AAAA,MACnD,MAAM;AAAA,IACR;AACA,QAAI,CAAC,cAAc;AACjB,QAAE,QAAQ;AAAA,QACR,EAAE,QAAQ,KAAK,sCAAsC;AAAA,MACvD;AACA;AAAA,IACF;AACA,YAAQ;AACR,WAAO,MAAM,EAAE,SAAS,IAAI,WAAW,aAAa,MAAM,YAAY;AACtE,QAAI,CAAC,MAAM;AACT,QAAE,QAAQ;AAAA,QACR,EAAE,QAAQ,KAAK,sCAAsC;AAAA,MACvD;AACA;AAAA,IACF;AAAA,EACF;AACA,QAAM,MAAM,oBAAI,KAAK;AACrB,QAAM,EAAE,UAAU,IAAI,MAAM,EAAE,SAAS,GAAG,qBAAqB,EAAE,QAAQ,KAAK,EAAE;AAChF,QAAM,UAA4B;AAAA,IAChC,QAAQ,EAAE,QAAQ,KAAK;AAAA,IACvB,YAAW,4CAAW,OAAX,YAAiB;AAAA,IAC5B,YAAY;AAAA,IACZ,kBAAkB,KAAK;AAAA,IACvB,UAAU,CAAC;AAAA,IACX,aAAa,MAAM;AAAA,IACnB,cAAc,MAAM;AAAA,IACpB,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,WAAW;AAAA,IACX,MAAM;AAAA,EACR;AACA,QAAM,EAAE,SAAS,GAAG,mBAAmB,OAAO;AAC9C,IAAE,QAAQ;AAAA,IACR,EAAE,QAAQ,KAAK,kCAAkC;AAAA,MAC/C,MAAM,KAAK;AAAA,MACX,IAAI,KAAK;AAAA,IACX,CAAC;AAAA,EACH;AACF;","names":[]}
|
@@ -62,24 +62,19 @@ const handleBeatSaverBind = (c) => __async(null, null, function* () {
|
|
62
62
|
self = yield c.services.api.BeatSaver.getTokenInfo(token.access_token);
|
63
63
|
}
|
64
64
|
const now = /* @__PURE__ */ new Date();
|
65
|
-
const { bsAccount } = yield c.services.db.getUserAccountsByUid(c.session.user.id);
|
66
65
|
const account = {
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
66
|
+
userId: c.session.user.id,
|
67
|
+
providerId: "beatsaver",
|
68
|
+
accountId: self.id,
|
69
|
+
providerUsername: self.name,
|
70
|
+
metadata: {},
|
71
|
+
scope: "identity,alerts",
|
73
72
|
accessToken: token.access_token,
|
74
73
|
refreshToken: token.refresh_token,
|
75
74
|
lastModifiedAt: now,
|
76
75
|
lastRefreshAt: now,
|
77
|
-
type: "oauth"
|
78
|
-
status: "ok"
|
76
|
+
type: "oauth"
|
79
77
|
};
|
80
|
-
if (bsAccount) {
|
81
|
-
account.id = bsAccount.id;
|
82
|
-
}
|
83
78
|
yield c.services.db.addUserBindingInfo(account);
|
84
79
|
c.session.sendQuote(
|
85
80
|
c.session.text("commands.bsbot.bind.bs.success", {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/cmd/bind/bind-beatsaver.ts"],"sourcesContent":["import { CmdContext,
|
1
|
+
{"version":3,"sources":["../../../../src/cmd/bind/bind-beatsaver.ts"],"sourcesContent":["import { CmdContext, Account } from '@/interface'\n\nexport const handleBeatSaverBind = async (c: CmdContext) => {\n const tokenInfo = await c.services.api.AIOSaber.getBSOAuthToken(c.input)\n if (!tokenInfo) {\n c.session.sendQuote(c.session.text('commands.bsbot.bind.bs.not-found'))\n return\n }\n let token = tokenInfo\n let self = await c.services.api.BeatSaver.getTokenInfo(token.access_token)\n if (!self) {\n const refreshToken = await c.services.api.BeatSaver.refreshOAuthToken(\n token.refresh_token\n )\n if (!refreshToken) {\n c.session.sendQuote(\n c.session.text('commands.bsbot.bind.bs.invalid-token')\n )\n return\n }\n token = refreshToken\n self = await c.services.api.BeatSaver.getTokenInfo(token.access_token)\n }\n const now = new Date()\n const account: Partial<Account> = {\n userId: c.session.user.id,\n providerId: 'beatsaver',\n accountId: self.id,\n providerUsername: self.name,\n metadata: {},\n scope: 'identity,alerts',\n accessToken: token.access_token,\n refreshToken: token.refresh_token,\n lastModifiedAt: now,\n lastRefreshAt: now,\n type: 'oauth',\n }\n await c.services.db.addUserBindingInfo(account)\n c.session.sendQuote(\n c.session.text('commands.bsbot.bind.bs.success', {\n name: self.name,\n id: self.id,\n })\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAM,sBAAsB,CAAO,MAAkB;AAC1D,QAAM,YAAY,MAAM,EAAE,SAAS,IAAI,SAAS,gBAAgB,EAAE,KAAK;AACvE,MAAI,CAAC,WAAW;AACd,MAAE,QAAQ,UAAU,EAAE,QAAQ,KAAK,kCAAkC,CAAC;AACtE;AAAA,EACF;AACA,MAAI,QAAQ;AACZ,MAAI,OAAO,MAAM,EAAE,SAAS,IAAI,UAAU,aAAa,MAAM,YAAY;AACzE,MAAI,CAAC,MAAM;AACT,UAAM,eAAe,MAAM,EAAE,SAAS,IAAI,UAAU;AAAA,MAClD,MAAM;AAAA,IACR;AACA,QAAI,CAAC,cAAc;AACjB,QAAE,QAAQ;AAAA,QACR,EAAE,QAAQ,KAAK,sCAAsC;AAAA,MACvD;AACA;AAAA,IACF;AACA,YAAQ;AACR,WAAO,MAAM,EAAE,SAAS,IAAI,UAAU,aAAa,MAAM,YAAY;AAAA,EACvE;AACA,QAAM,MAAM,oBAAI,KAAK;AACrB,QAAM,UAA4B;AAAA,IAChC,QAAQ,EAAE,QAAQ,KAAK;AAAA,IACvB,YAAY;AAAA,IACZ,WAAW,KAAK;AAAA,IAChB,kBAAkB,KAAK;AAAA,IACvB,UAAU,CAAC;AAAA,IACX,OAAO;AAAA,IACP,aAAa,MAAM;AAAA,IACnB,cAAc,MAAM;AAAA,IACpB,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,MAAM;AAAA,EACR;AACA,QAAM,EAAE,SAAS,GAAG,mBAAmB,OAAO;AAC9C,IAAE,QAAQ;AAAA,IACR,EAAE,QAAQ,KAAK,kCAAkC;AAAA,MAC/C,MAAM,KAAK;AAAA,MACX,IAAI,KAAK;AAAA,IACX,CAAC;AAAA,EACH;AACF;","names":[]}
|
@@ -51,7 +51,7 @@ const handleBeatLeaderIDBind = (c) => __async(null, null, function* () {
|
|
51
51
|
const text = c.session.text("commands.bsbot.bind.ack-prompt", {
|
52
52
|
user: `${player.name}(${player.id})`
|
53
53
|
}) + (blAccount ? "," + c.session.text("commands.bsbot.bind.exist", {
|
54
|
-
id: blAccount.
|
54
|
+
id: blAccount.accountId
|
55
55
|
}) : "");
|
56
56
|
yield c.session.sendQuote(text);
|
57
57
|
const prompt = yield c.session.prompt(3e4);
|
@@ -59,19 +59,16 @@ const handleBeatLeaderIDBind = (c) => __async(null, null, function* () {
|
|
59
59
|
throw prompt ? new import_errors.SessionPromotionCancelError() : new import_errors.SessionPromotionTimeoutError();
|
60
60
|
}
|
61
61
|
const account = {
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
62
|
+
userId: c.session.user.id,
|
63
|
+
providerId: "beatleader",
|
64
|
+
accountId: player.id.toString(),
|
65
|
+
providerUsername: player.name,
|
66
|
+
metadata: {},
|
67
67
|
lastModifiedAt: now,
|
68
68
|
lastRefreshAt: now,
|
69
|
-
|
70
|
-
|
69
|
+
createdAt: now,
|
70
|
+
type: "id"
|
71
71
|
};
|
72
|
-
if (blAccount) {
|
73
|
-
account.id = blAccount.id;
|
74
|
-
}
|
75
72
|
yield c.services.db.addUserBindingInfo(account);
|
76
73
|
yield c.session.sendQuote(
|
77
74
|
c.session.text("commands.bsbot.bind.bl.success", {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/cmd/bind/bind-id-beatleader.ts"],"sourcesContent":["import { CmdContext,
|
1
|
+
{"version":3,"sources":["../../../../src/cmd/bind/bind-id-beatleader.ts"],"sourcesContent":["import { CmdContext, Account } from '@/interface'\nimport {\n BLIDNotFoundError,\n SessionPromotionCancelError,\n SessionPromotionTimeoutError,\n} from '@/services/errors'\n\nexport const handleBeatLeaderIDBind = async (c: CmdContext) => {\n const player = await c.services.api.BeatLeader.getPlayerInfo(c.input)\n if (!player) {\n throw new BLIDNotFoundError({ accountId: c.input })\n }\n\n const now = new Date()\n const { blAccount } = await c.services.db.getUserAccountsByUid(c.session.user.id)\n\n const text =\n c.session.text('commands.bsbot.bind.ack-prompt', {\n user: `${player.name}(${player.id})`,\n }) +\n (blAccount\n ? ',' +\n c.session.text('commands.bsbot.bind.exist', {\n id: blAccount.accountId,\n })\n : '')\n\n await c.session.sendQuote(text)\n\n const prompt = await c.session.prompt(30000)\n if (!prompt || (prompt != 'y' && prompt != 'yes')) {\n throw prompt\n ? new SessionPromotionCancelError()\n : new SessionPromotionTimeoutError()\n }\n const account: Partial<Account> = {\n userId: c.session.user.id,\n providerId: 'beatleader',\n accountId: player.id.toString(),\n providerUsername: player.name,\n metadata: {},\n lastModifiedAt: now,\n lastRefreshAt: now,\n createdAt: now,\n type: 'id',\n }\n await c.services.db.addUserBindingInfo(account)\n await c.session.sendQuote(\n c.session.text('commands.bsbot.bind.bl.success', {\n name: player.name,\n id: player.id,\n })\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAIO;AAEA,MAAM,yBAAyB,CAAO,MAAkB;AAC7D,QAAM,SAAS,MAAM,EAAE,SAAS,IAAI,WAAW,cAAc,EAAE,KAAK;AACpE,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,gCAAkB,EAAE,WAAW,EAAE,MAAM,CAAC;AAAA,EACpD;AAEA,QAAM,MAAM,oBAAI,KAAK;AACrB,QAAM,EAAE,UAAU,IAAI,MAAM,EAAE,SAAS,GAAG,qBAAqB,EAAE,QAAQ,KAAK,EAAE;AAEhF,QAAM,OACJ,EAAE,QAAQ,KAAK,kCAAkC;AAAA,IAC/C,MAAM,GAAG,OAAO,IAAI,IAAI,OAAO,EAAE;AAAA,EACnC,CAAC,KACA,YACG,MACA,EAAE,QAAQ,KAAK,6BAA6B;AAAA,IAC1C,IAAI,UAAU;AAAA,EAChB,CAAC,IACD;AAEN,QAAM,EAAE,QAAQ,UAAU,IAAI;AAE9B,QAAM,SAAS,MAAM,EAAE,QAAQ,OAAO,GAAK;AAC3C,MAAI,CAAC,UAAW,UAAU,OAAO,UAAU,OAAQ;AACjD,UAAM,SACF,IAAI,0CAA4B,IAChC,IAAI,2CAA6B;AAAA,EACvC;AACA,QAAM,UAA4B;AAAA,IAChC,QAAQ,EAAE,QAAQ,KAAK;AAAA,IACvB,YAAY;AAAA,IACZ,WAAW,OAAO,GAAG,SAAS;AAAA,IAC9B,kBAAkB,OAAO;AAAA,IACzB,UAAU,CAAC;AAAA,IACX,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,WAAW;AAAA,IACX,MAAM;AAAA,EACR;AACA,QAAM,EAAE,SAAS,GAAG,mBAAmB,OAAO;AAC9C,QAAM,EAAE,QAAQ;AAAA,IACd,EAAE,QAAQ,KAAK,kCAAkC;AAAA,MAC/C,MAAM,OAAO;AAAA,MACb,IAAI,OAAO;AAAA,IACb,CAAC;AAAA,EACH;AACF;","names":[]}
|
@@ -51,7 +51,7 @@ const handleBeatSaverIDBind = (c) => __async(null, null, function* () {
|
|
51
51
|
const text = c.session.text("commands.bsbot.bind.ack-prompt", {
|
52
52
|
user: `${mapper.name}(${mapper.id})`
|
53
53
|
}) + (bsAccount ? "," + c.session.text("commands.bsbot.bind.exist", {
|
54
|
-
id: bsAccount.
|
54
|
+
id: bsAccount.accountId
|
55
55
|
}) : "");
|
56
56
|
yield c.session.sendQuote(text);
|
57
57
|
const prompt = yield c.session.prompt(3e4);
|
@@ -59,19 +59,15 @@ const handleBeatSaverIDBind = (c) => __async(null, null, function* () {
|
|
59
59
|
throw prompt ? new import_errors.SessionPromotionCancelError() : new import_errors.SessionPromotionTimeoutError();
|
60
60
|
}
|
61
61
|
const account = {
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
62
|
+
userId: c.session.user.id,
|
63
|
+
providerId: "beatsaver",
|
64
|
+
accountId: mapper.id.toString(),
|
65
|
+
providerUsername: mapper.name,
|
66
|
+
metadata: {},
|
67
67
|
lastModifiedAt: now,
|
68
68
|
lastRefreshAt: now,
|
69
|
-
type: "id"
|
70
|
-
status: "ok"
|
69
|
+
type: "id"
|
71
70
|
};
|
72
|
-
if (bsAccount) {
|
73
|
-
account.id = bsAccount.id;
|
74
|
-
}
|
75
71
|
yield c.services.db.addUserBindingInfo(account);
|
76
72
|
c.session.sendQuote(
|
77
73
|
c.session.text("commands.bsbot.bind.bs.success", {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/cmd/bind/bind-id-beatsaver.ts"],"sourcesContent":["import { CmdContext,
|
1
|
+
{"version":3,"sources":["../../../../src/cmd/bind/bind-id-beatsaver.ts"],"sourcesContent":["import { CmdContext, Account } from '@/interface'\n\nimport {\n BSIDNotFoundError,\n SessionPromotionCancelError,\n SessionPromotionTimeoutError,\n} from '@/services/errors'\n\nexport const handleBeatSaverIDBind = async (c: CmdContext) => {\n const mapper = await c.services.api.BeatSaver.getBSMapperById(c.input)\n if (!mapper) {\n throw new BSIDNotFoundError({ accountId: c.input })\n }\n // 如果当前bind 是 oauth?改为 id?\n const now = new Date()\n const { bsAccount } = await c.services.db.getUserAccountsByUid(c.session.user.id)\n\n const text =\n c.session.text('commands.bsbot.bind.ack-prompt', {\n user: `${mapper.name}(${mapper.id})`,\n }) +\n (bsAccount\n ? ',' +\n c.session.text('commands.bsbot.bind.exist', {\n id: bsAccount.accountId,\n })\n : '')\n\n await c.session.sendQuote(text)\n\n const prompt = await c.session.prompt(30000)\n if (!prompt || (prompt != 'y' && prompt != 'yes')) {\n throw prompt\n ? new SessionPromotionCancelError()\n : new SessionPromotionTimeoutError()\n }\n const account: Partial<Account> = {\n userId: c.session.user.id,\n providerId: 'beatsaver',\n accountId: mapper.id.toString(),\n providerUsername: mapper.name,\n metadata: {},\n lastModifiedAt: now,\n lastRefreshAt: now,\n type: 'id',\n }\n await c.services.db.addUserBindingInfo(account)\n c.session.sendQuote(\n c.session.text('commands.bsbot.bind.bs.success', {\n name: mapper.name,\n id: mapper.id,\n })\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAIO;AAEA,MAAM,wBAAwB,CAAO,MAAkB;AAC5D,QAAM,SAAS,MAAM,EAAE,SAAS,IAAI,UAAU,gBAAgB,EAAE,KAAK;AACrE,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,gCAAkB,EAAE,WAAW,EAAE,MAAM,CAAC;AAAA,EACpD;AAEA,QAAM,MAAM,oBAAI,KAAK;AACrB,QAAM,EAAE,UAAU,IAAI,MAAM,EAAE,SAAS,GAAG,qBAAqB,EAAE,QAAQ,KAAK,EAAE;AAEhF,QAAM,OACJ,EAAE,QAAQ,KAAK,kCAAkC;AAAA,IAC/C,MAAM,GAAG,OAAO,IAAI,IAAI,OAAO,EAAE;AAAA,EACnC,CAAC,KACA,YACG,MACA,EAAE,QAAQ,KAAK,6BAA6B;AAAA,IAC1C,IAAI,UAAU;AAAA,EAChB,CAAC,IACD;AAEN,QAAM,EAAE,QAAQ,UAAU,IAAI;AAE9B,QAAM,SAAS,MAAM,EAAE,QAAQ,OAAO,GAAK;AAC3C,MAAI,CAAC,UAAW,UAAU,OAAO,UAAU,OAAQ;AACjD,UAAM,SACF,IAAI,0CAA4B,IAChC,IAAI,2CAA6B;AAAA,EACvC;AACA,QAAM,UAA4B;AAAA,IAChC,QAAQ,EAAE,QAAQ,KAAK;AAAA,IACvB,YAAY;AAAA,IACZ,WAAW,OAAO,GAAG,SAAS;AAAA,IAC9B,kBAAkB,OAAO;AAAA,IACzB,UAAU,CAAC;AAAA,IACX,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,MAAM;AAAA,EACR;AACA,QAAM,EAAE,SAAS,GAAG,mBAAmB,OAAO;AAC9C,IAAE,QAAQ;AAAA,IACR,EAAE,QAAQ,KAAK,kCAAkC;AAAA,MAC/C,MAAM,OAAO;AAAA,MACb,IAAI,OAAO;AAAA,IACb,CAAC;AAAA,EACH;AACF;","names":[]}
|
@@ -46,12 +46,10 @@ const handleScoreSaberBind = (c) => __async(null, null, function* () {
|
|
46
46
|
if (!scoreSaberUser) {
|
47
47
|
throw new import_errors.SSIDNotFoundError({ accountId: c.input });
|
48
48
|
}
|
49
|
-
const { ssAccount
|
50
|
-
c.session.user.id
|
51
|
-
);
|
49
|
+
const { ssAccount } = yield c.services.db.getUserAccountsByUid(c.session.user.id);
|
52
50
|
const text = c.session.text("commands.bsbot.bind.ack-prompt", {
|
53
51
|
user: `${scoreSaberUser.name}(${scoreSaberUser.id})`
|
54
|
-
}) + (ssAccount ? "," + c.session.text("commands.bsbot.bind.exist", { id: ssAccount.
|
52
|
+
}) + (ssAccount ? "," + c.session.text("commands.bsbot.bind.exist", { id: ssAccount.accountId }) : "");
|
55
53
|
yield c.session.sendQuote(text);
|
56
54
|
const prompt = yield c.session.prompt(3e4);
|
57
55
|
if (!prompt || prompt != "y" && prompt != "yes") {
|
@@ -59,20 +57,17 @@ const handleScoreSaberBind = (c) => __async(null, null, function* () {
|
|
59
57
|
}
|
60
58
|
const now = /* @__PURE__ */ new Date();
|
61
59
|
const account = {
|
62
|
-
|
63
|
-
|
64
|
-
|
60
|
+
userId: c.session.user.id,
|
61
|
+
accountId: scoreSaberUser.id,
|
62
|
+
providerId: "scoresaber",
|
63
|
+
providerUsername: scoreSaberUser.name,
|
65
64
|
lastModifiedAt: now,
|
66
65
|
lastRefreshAt: now,
|
67
|
-
|
68
|
-
type: "id"
|
69
|
-
status: "ok"
|
66
|
+
createdAt: now,
|
67
|
+
type: "id"
|
70
68
|
};
|
71
|
-
if (ssAccount) {
|
72
|
-
account.id = ssAccount.id;
|
73
|
-
}
|
74
69
|
yield c.services.db.addUserBindingInfo(account);
|
75
|
-
c.session.sendQuote(
|
70
|
+
yield c.session.sendQuote(
|
76
71
|
c.session.text("commands.bsbot.bind.success", {
|
77
72
|
user: `${scoreSaberUser.name}(${scoreSaberUser.id})`
|
78
73
|
})
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/cmd/bind/bind-scoresaber.ts"],"sourcesContent":["import {
|
1
|
+
{"version":3,"sources":["../../../../src/cmd/bind/bind-scoresaber.ts"],"sourcesContent":["import {Account, CmdContext} from '@/interface'\nimport {\n SessionPromotionCancelError,\n SessionPromotionTimeoutError,\n SSIDNotFoundError,\n} from '@/services/errors'\n\nexport const handleScoreSaberBind = async (c: CmdContext) => {\n const scoreSaberUser = await c.services.api.ScoreSaber.getScoreUserById(c.input)\n if (!scoreSaberUser) {\n throw new SSIDNotFoundError({accountId: c.input})\n }\n const {ssAccount} = await c.services.db.getUserAccountsByUid(c.session.user.id)\n const text =\n c.session.text('commands.bsbot.bind.ack-prompt', {\n user: `${scoreSaberUser.name}(${scoreSaberUser.id})`,\n }) +\n (ssAccount ? ',' + c.session.text('commands.bsbot.bind.exist', {id: ssAccount.accountId,}) : '')\n\n await c.session.sendQuote(text)\n\n const prompt = await c.session.prompt(30000)\n if (!prompt || (prompt != 'y' && prompt != 'yes')) {\n throw prompt\n ? new SessionPromotionCancelError()\n : new SessionPromotionTimeoutError()\n }\n const now = new Date()\n const account: Partial<Account> = {\n userId: c.session.user.id,\n accountId: scoreSaberUser.id,\n providerId: 'scoresaber',\n providerUsername: scoreSaberUser.name,\n lastModifiedAt: now,\n lastRefreshAt: now,\n createdAt: now,\n type: 'id',\n }\n await c.services.db.addUserBindingInfo(account)\n await c.session.sendQuote(\n c.session.text('commands.bsbot.bind.success', {\n user: `${scoreSaberUser.name}(${scoreSaberUser.id})`,\n })\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAIO;AAEA,MAAM,uBAAuB,CAAO,MAAkB;AAC3D,QAAM,iBAAiB,MAAM,EAAE,SAAS,IAAI,WAAW,iBAAiB,EAAE,KAAK;AAC/E,MAAI,CAAC,gBAAgB;AACnB,UAAM,IAAI,gCAAkB,EAAC,WAAW,EAAE,MAAK,CAAC;AAAA,EAClD;AACA,QAAM,EAAC,UAAS,IAAI,MAAM,EAAE,SAAS,GAAG,qBAAqB,EAAE,QAAQ,KAAK,EAAE;AAC9E,QAAM,OACJ,EAAE,QAAQ,KAAK,kCAAkC;AAAA,IAC/C,MAAM,GAAG,eAAe,IAAI,IAAI,eAAe,EAAE;AAAA,EACnD,CAAC,KACA,YAAY,MAAM,EAAE,QAAQ,KAAK,6BAA6B,EAAC,IAAI,UAAU,UAAU,CAAC,IAAI;AAE/F,QAAM,EAAE,QAAQ,UAAU,IAAI;AAE9B,QAAM,SAAS,MAAM,EAAE,QAAQ,OAAO,GAAK;AAC3C,MAAI,CAAC,UAAW,UAAU,OAAO,UAAU,OAAQ;AACjD,UAAM,SACF,IAAI,0CAA4B,IAChC,IAAI,2CAA6B;AAAA,EACvC;AACA,QAAM,MAAM,oBAAI,KAAK;AACrB,QAAM,UAA4B;AAAA,IAChC,QAAQ,EAAE,QAAQ,KAAK;AAAA,IACvB,WAAW,eAAe;AAAA,IAC1B,YAAY;AAAA,IACZ,kBAAkB,eAAe;AAAA,IACjC,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,WAAW;AAAA,IACX,MAAM;AAAA,EACR;AACA,QAAM,EAAE,SAAS,GAAG,mBAAmB,OAAO;AAC9C,QAAM,EAAE,QAAQ;AAAA,IACd,EAAE,QAAQ,KAAK,+BAA+B;AAAA,MAC5C,MAAM,GAAG,eAAe,IAAI,IAAI,eAAe,EAAE;AAAA,IACnD,CAAC;AAAA,EACH;AACF;","names":[]}
|
@@ -61,7 +61,7 @@ var import_errors = require("../../services/errors/index.js");
|
|
61
61
|
const beatleader = (c) => __async(null, null, function* () {
|
62
62
|
const { blSub } = yield c.services.db.getSubscriptionsByGID(c.session.channel.id);
|
63
63
|
if (blSub) {
|
64
|
-
if (blSub.
|
64
|
+
if (blSub.enabled) {
|
65
65
|
throw new import_errors.SubscriptionExistError();
|
66
66
|
}
|
67
67
|
const data2 = __spreadProps(__spreadValues({}, blSub), { enable: true });
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/cmd/subscribe/beatleader.ts"],"sourcesContent":["import { CmdContext } from '@/interface'\nimport { SubscriptionExistError } from '@/services/errors'\n\nexport const beatleader = async (c: CmdContext) => {\n const { blSub } = await c.services.db.getSubscriptionsByGID(c.session.channel.id)\n if (blSub) {\n if (blSub.
|
1
|
+
{"version":3,"sources":["../../../../src/cmd/subscribe/beatleader.ts"],"sourcesContent":["import { CmdContext } from '@/interface'\nimport { SubscriptionExistError } from '@/services/errors'\n\nexport const beatleader = async (c: CmdContext) => {\n const { blSub } = await c.services.db.getSubscriptionsByGID(c.session.channel.id)\n if (blSub) {\n if (blSub.enabled) {\n throw new SubscriptionExistError()\n }\n const data = { ...blSub, enable: true }\n await c.services.db.upsertSubscription(data)\n await c.session.sendQuote(\n c.session.text('commands.bsbot.subscribe.beatleader.success')\n )\n return\n }\n\n const data = {\n gid: c.session.channel.id,\n type: 'beatleader-score',\n time: new Date(),\n enable: true,\n data: {},\n }\n await c.services.db.upsertSubscription(data)\n await c.session.sendQuote(\n c.session.text('commands.bsbot.subscribe.beatleader.success')\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAAuC;AAEhC,MAAM,aAAa,CAAO,MAAkB;AACjD,QAAM,EAAE,MAAM,IAAI,MAAM,EAAE,SAAS,GAAG,sBAAsB,EAAE,QAAQ,QAAQ,EAAE;AAChF,MAAI,OAAO;AACT,QAAI,MAAM,SAAS;AACjB,YAAM,IAAI,qCAAuB;AAAA,IACnC;AACA,UAAMA,QAAO,iCAAK,QAAL,EAAY,QAAQ,KAAK;AACtC,UAAM,EAAE,SAAS,GAAG,mBAAmBA,KAAI;AAC3C,UAAM,EAAE,QAAQ;AAAA,MACd,EAAE,QAAQ,KAAK,6CAA6C;AAAA,IAC9D;AACA;AAAA,EACF;AAEA,QAAM,OAAO;AAAA,IACX,KAAK,EAAE,QAAQ,QAAQ;AAAA,IACvB,MAAM;AAAA,IACN,MAAM,oBAAI,KAAK;AAAA,IACf,QAAQ;AAAA,IACR,MAAM,CAAC;AAAA,EACT;AACA,QAAM,EAAE,SAAS,GAAG,mBAAmB,IAAI;AAC3C,QAAM,EAAE,QAAQ;AAAA,IACd,EAAE,QAAQ,KAAK,6CAA6C;AAAA,EAC9D;AACF;","names":["data"]}
|
@@ -61,7 +61,7 @@ var import_errors = require("../../services/errors/index.js");
|
|
61
61
|
const beatsaver = (c) => __async(null, null, function* () {
|
62
62
|
const { bsMapSub } = yield c.services.db.getSubscriptionsByGID(c.session.channel.id);
|
63
63
|
if (bsMapSub) {
|
64
|
-
if (bsMapSub.
|
64
|
+
if (bsMapSub.enabled) {
|
65
65
|
throw new import_errors.SubscriptionExistError();
|
66
66
|
}
|
67
67
|
const data2 = __spreadProps(__spreadValues({}, bsMapSub), { enable: true });
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/cmd/subscribe/beatsaver.ts"],"sourcesContent":["import { CmdContext } from '@/interface'\nimport { SubscriptionExistError } from '@/services/errors'\nexport const beatsaver = async (c: CmdContext) => {\n const { bsMapSub } = await c.services.db.getSubscriptionsByGID(c.session.channel.id)\n if (bsMapSub) {\n if (bsMapSub.
|
1
|
+
{"version":3,"sources":["../../../../src/cmd/subscribe/beatsaver.ts"],"sourcesContent":["import { CmdContext } from '@/interface'\nimport { SubscriptionExistError } from '@/services/errors'\nexport const beatsaver = async (c: CmdContext) => {\n const { bsMapSub } = await c.services.db.getSubscriptionsByGID(c.session.channel.id)\n if (bsMapSub) {\n if (bsMapSub.enabled) {\n throw new SubscriptionExistError()\n }\n const data = { ...bsMapSub, enable: true }\n await c.services.db.upsertSubscription(data)\n await c.session.sendQuote(\n c.session.text('commands.bsbot.subscribe.beatsaver.success')\n )\n return\n }\n const data = {\n gid: c.session.channel.id,\n type: 'beatsaver-map',\n time: new Date(),\n enable: true,\n data: {},\n }\n await c.services.db.upsertSubscription(data)\n await c.session.sendQuote(\n c.session.text('commands.bsbot.subscribe.beatsaver.success')\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAAuC;AAChC,MAAM,YAAY,CAAO,MAAkB;AAChD,QAAM,EAAE,SAAS,IAAI,MAAM,EAAE,SAAS,GAAG,sBAAsB,EAAE,QAAQ,QAAQ,EAAE;AACnF,MAAI,UAAU;AACZ,QAAI,SAAS,SAAS;AACpB,YAAM,IAAI,qCAAuB;AAAA,IACnC;AACA,UAAMA,QAAO,iCAAK,WAAL,EAAe,QAAQ,KAAK;AACzC,UAAM,EAAE,SAAS,GAAG,mBAAmBA,KAAI;AAC3C,UAAM,EAAE,QAAQ;AAAA,MACd,EAAE,QAAQ,KAAK,4CAA4C;AAAA,IAC7D;AACA;AAAA,EACF;AACA,QAAM,OAAO;AAAA,IACX,KAAK,EAAE,QAAQ,QAAQ;AAAA,IACvB,MAAM;AAAA,IACN,MAAM,oBAAI,KAAK;AAAA,IACf,QAAQ;AAAA,IACR,MAAM,CAAC;AAAA,EACT;AACA,QAAM,EAAE,SAAS,GAAG,mBAAmB,IAAI;AAC3C,QAAM,EAAE,QAAQ;AAAA,IACd,EAAE,QAAQ,KAAK,4CAA4C;AAAA,EAC7D;AACF;","names":["data"]}
|
@@ -75,7 +75,7 @@ const idBeatleaderScore = (c) => __async(null, null, function* () {
|
|
75
75
|
return ((_a = it2.data) == null ? void 0 : _a.playerId) === bluser.id;
|
76
76
|
});
|
77
77
|
if (it) {
|
78
|
-
if (it.
|
78
|
+
if (it.enabled) {
|
79
79
|
throw new import_errors.SubscriptionExistError();
|
80
80
|
}
|
81
81
|
const data2 = __spreadProps(__spreadValues({}, it), { enable: true });
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/cmd/subscribe/id-beatleader-score.ts"],"sourcesContent":["import { CmdContext } from '@/interface'\nimport { BLIDNotFoundError, SubscriptionExistError } from '@/services/errors'\n\nexport const idBeatleaderScore = async (c: CmdContext) => {\n if (!c.input) {\n return\n }\n const bluser = await c.services.api.BeatLeader.getPlayerInfo(c.input)\n if (!bluser) {\n throw new BLIDNotFoundError({ accountId: c.input })\n }\n\n const subscribes = await c.services.db.getIDSubscriptionByChannelIDAndType(\n c.session.channel.id,\n 'id-beatleader-score'\n )\n const it = subscribes.find((it) => it.data?.playerId === bluser.id)\n if (it) {\n if (it.
|
1
|
+
{"version":3,"sources":["../../../../src/cmd/subscribe/id-beatleader-score.ts"],"sourcesContent":["import { CmdContext } from '@/interface'\nimport { BLIDNotFoundError, SubscriptionExistError } from '@/services/errors'\n\nexport const idBeatleaderScore = async (c: CmdContext) => {\n if (!c.input) {\n return\n }\n const bluser = await c.services.api.BeatLeader.getPlayerInfo(c.input)\n if (!bluser) {\n throw new BLIDNotFoundError({ accountId: c.input })\n }\n\n const subscribes = await c.services.db.getIDSubscriptionByChannelIDAndType(\n c.session.channel.id,\n 'id-beatleader-score'\n )\n const it = subscribes.find((it) => it.data?.playerId === bluser.id)\n if (it) {\n if (it.enabled) {\n throw new SubscriptionExistError()\n }\n\n const data = { ...it, enable: true }\n await c.services.db.upsertSubscription(data)\n await c.session.sendQuote(\n c.session.text('commands.bsbot.subscribe.beatsaver-mapper.success', {\n name: bluser.name,\n })\n )\n return\n }\n const data = {\n gid: c.session.channel.id,\n type: 'id-beatsaver-map',\n time: new Date(),\n enable: true,\n data: {\n playerId: bluser.id,\n },\n }\n await c.services.db.upsertSubscription(data)\n await c.session.sendQuote(\n c.session.text('commands.bsbot.subscribe.beatsaver-mapper.success', {\n name: bluser.name,\n })\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA0D;AAEnD,MAAM,oBAAoB,CAAO,MAAkB;AACxD,MAAI,CAAC,EAAE,OAAO;AACZ;AAAA,EACF;AACA,QAAM,SAAS,MAAM,EAAE,SAAS,IAAI,WAAW,cAAc,EAAE,KAAK;AACpE,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,gCAAkB,EAAE,WAAW,EAAE,MAAM,CAAC;AAAA,EACpD;AAEA,QAAM,aAAa,MAAM,EAAE,SAAS,GAAG;AAAA,IACrC,EAAE,QAAQ,QAAQ;AAAA,IAClB;AAAA,EACF;AACA,QAAM,KAAK,WAAW,KAAK,CAACA,QAAI;AAhBlC;AAgBqC,kBAAAA,IAAG,SAAH,mBAAS,cAAa,OAAO;AAAA,GAAE;AAClE,MAAI,IAAI;AACN,QAAI,GAAG,SAAS;AACd,YAAM,IAAI,qCAAuB;AAAA,IACnC;AAEA,UAAMC,QAAO,iCAAK,KAAL,EAAS,QAAQ,KAAK;AACnC,UAAM,EAAE,SAAS,GAAG,mBAAmBA,KAAI;AAC3C,UAAM,EAAE,QAAQ;AAAA,MACd,EAAE,QAAQ,KAAK,qDAAqD;AAAA,QAClE,MAAM,OAAO;AAAA,MACf,CAAC;AAAA,IACH;AACA;AAAA,EACF;AACA,QAAM,OAAO;AAAA,IACX,KAAK,EAAE,QAAQ,QAAQ;AAAA,IACvB,MAAM;AAAA,IACN,MAAM,oBAAI,KAAK;AAAA,IACf,QAAQ;AAAA,IACR,MAAM;AAAA,MACJ,UAAU,OAAO;AAAA,IACnB;AAAA,EACF;AACA,QAAM,EAAE,SAAS,GAAG,mBAAmB,IAAI;AAC3C,QAAM,EAAE,QAAQ;AAAA,IACd,EAAE,QAAQ,KAAK,qDAAqD;AAAA,MAClE,MAAM,OAAO;AAAA,IACf,CAAC;AAAA,EACH;AACF;","names":["it","data"]}
|
@@ -75,7 +75,7 @@ const idBeatsaverMapper = (c) => __async(null, null, function* () {
|
|
75
75
|
return ((_a = it2.data) == null ? void 0 : _a.mapperId) === mapper.id;
|
76
76
|
});
|
77
77
|
if (it) {
|
78
|
-
if (it.
|
78
|
+
if (it.enabled) {
|
79
79
|
throw new import_errors.SubscriptionExistError();
|
80
80
|
}
|
81
81
|
const data2 = __spreadProps(__spreadValues({}, it), { enable: true });
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/cmd/subscribe/id-beatsaver-mapper.ts"],"sourcesContent":["import { CmdContext } from '@/interface'\nimport { BSIDNotFoundError, SubscriptionExistError } from '@/services/errors'\nexport const idBeatsaverMapper = async (c: CmdContext) => {\n if (!c.input) {\n return\n }\n const mapper = await c.services.api.BeatSaver.getBSMapperById(c.input)\n if (!mapper) {\n throw new BSIDNotFoundError({ accountId: c.input })\n }\n const subscribes = await c.services.db.getIDSubscriptionByChannelIDAndType(\n c.session.channel.id,\n 'id-beatsaver-map'\n )\n const it = subscribes.find((it) => it.data?.mapperId === mapper.id)\n if (it) {\n if (it.
|
1
|
+
{"version":3,"sources":["../../../../src/cmd/subscribe/id-beatsaver-mapper.ts"],"sourcesContent":["import { CmdContext } from '@/interface'\nimport { BSIDNotFoundError, SubscriptionExistError } from '@/services/errors'\nexport const idBeatsaverMapper = async (c: CmdContext) => {\n if (!c.input) {\n return\n }\n const mapper = await c.services.api.BeatSaver.getBSMapperById(c.input)\n if (!mapper) {\n throw new BSIDNotFoundError({ accountId: c.input })\n }\n const subscribes = await c.services.db.getIDSubscriptionByChannelIDAndType(\n c.session.channel.id,\n 'id-beatsaver-map'\n )\n const it = subscribes.find((it) => it.data?.mapperId === mapper.id)\n if (it) {\n if (it.enabled) {\n throw new SubscriptionExistError()\n }\n\n const data = { ...it, enable: true }\n await c.services.db.upsertSubscription(data)\n await c.session.sendQuote(\n c.session.text('commands.bsbot.subscribe.beatsaver-mapper.success', {\n name: mapper.name,\n })\n )\n return\n }\n const data = {\n gid: c.session.channel.id,\n type: 'id-beatsaver-map',\n time: new Date(),\n enable: true,\n data: {\n mapperId: mapper.id,\n mapperName: mapper.name,\n },\n }\n await c.services.db.upsertSubscription(data)\n await c.session.sendQuote(\n c.session.text('commands.bsbot.subscribe.beatsaver-mapper.success', {\n name: mapper.name,\n })\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA0D;AACnD,MAAM,oBAAoB,CAAO,MAAkB;AACxD,MAAI,CAAC,EAAE,OAAO;AACZ;AAAA,EACF;AACA,QAAM,SAAS,MAAM,EAAE,SAAS,IAAI,UAAU,gBAAgB,EAAE,KAAK;AACrE,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,gCAAkB,EAAE,WAAW,EAAE,MAAM,CAAC;AAAA,EACpD;AACA,QAAM,aAAa,MAAM,EAAE,SAAS,GAAG;AAAA,IACrC,EAAE,QAAQ,QAAQ;AAAA,IAClB;AAAA,EACF;AACA,QAAM,KAAK,WAAW,KAAK,CAACA,QAAI;AAdlC;AAcqC,kBAAAA,IAAG,SAAH,mBAAS,cAAa,OAAO;AAAA,GAAE;AAClE,MAAI,IAAI;AACN,QAAI,GAAG,SAAS;AACd,YAAM,IAAI,qCAAuB;AAAA,IACnC;AAEA,UAAMC,QAAO,iCAAK,KAAL,EAAS,QAAQ,KAAK;AACnC,UAAM,EAAE,SAAS,GAAG,mBAAmBA,KAAI;AAC3C,UAAM,EAAE,QAAQ;AAAA,MACd,EAAE,QAAQ,KAAK,qDAAqD;AAAA,QAClE,MAAM,OAAO;AAAA,MACf,CAAC;AAAA,IACH;AACA;AAAA,EACF;AACA,QAAM,OAAO;AAAA,IACX,KAAK,EAAE,QAAQ,QAAQ;AAAA,IACvB,MAAM;AAAA,IACN,MAAM,oBAAI,KAAK;AAAA,IACf,QAAQ;AAAA,IACR,MAAM;AAAA,MACJ,UAAU,OAAO;AAAA,MACjB,YAAY,OAAO;AAAA,IACrB;AAAA,EACF;AACA,QAAM,EAAE,SAAS,GAAG,mBAAmB,IAAI;AAC3C,QAAM,EAAE,QAAQ;AAAA,IACd,EAAE,QAAQ,KAAK,qDAAqD;AAAA,MAClE,MAAM,OAAO;AAAA,IACf,CAAC;AAAA,EACH;AACF;","names":["it","data"]}
|
@@ -63,18 +63,18 @@ var subscribe_default = () => new import_interface.CommandBuilder().setName("sub
|
|
63
63
|
}
|
64
64
|
let text = c.session.text("commands.bsbot.subscribe.info.header") + "\n";
|
65
65
|
for (const row of rows) {
|
66
|
-
if (row.
|
66
|
+
if (row.subscription.type.startsWith("group")) {
|
67
67
|
text += c.session.text(
|
68
68
|
"commands.bsbot.subscribe.info.group-body-item",
|
69
69
|
{
|
70
|
-
type: row.
|
70
|
+
type: row.subscription.type + `(${(_a = row.subscription.data) == null ? void 0 : _a.mapperName} ${(_b = row.subscription.data) == null ? void 0 : _b.mapperId})`
|
71
71
|
}
|
72
72
|
);
|
73
73
|
} else {
|
74
74
|
text += c.session.text("commands.bsbot.subscribe.info.body-item", {
|
75
|
-
type: row.
|
75
|
+
type: row.subscription.type,
|
76
76
|
cnt: row.memberCount,
|
77
|
-
enable: row.
|
77
|
+
enable: row.subscription.enabled
|
78
78
|
});
|
79
79
|
if (row.me) {
|
80
80
|
text += c.session.text(
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/cmd/subscribe/index.ts"],"sourcesContent":["import {CommandBuilder} from \"@/interface\";\nimport { beatleader } from './beatleader'\nimport { beatsaver } from './beatsaver'\nimport { NoneSubscriptionExistError } from '@/services/errors'\nimport { idBeatsaverMapper } from './id-beatsaver-mapper'\n\nexport default () =>\n new CommandBuilder()\n .setName('subscribe')\n .addAlias('bbsub')\n .addAlias('/subbl', { options: { type: 'beatleader' } })\n .addAlias('/subbs', { options: { type: 'beatsaver' } })\n .addAlias('blsub', { options: { type: 'beatleader' } })\n .addAlias('bssub', { options: { type: 'beatsaver' } })\n .addAlias('subbl', { options: { type: 'beatleader' } })\n .addAlias('subbs', { options: { type: 'beatsaver' } })\n .addAlias('subbl', { options: { type: 'beatleader' } })\n .addAlias('submapper', { options: { type: 'bsmapper' } })\n .addOption('type', 'type:string')\n .setDescription('clear an auth account relate info')\n .setExecutor(async (c) => {\n // check admin permission\n // if (options.type === 'beatsaver-alert') {\n // return alert(c)\n // }\n\n if (c.options.type === 'beatsaver') {\n if (c.input) return idBeatsaverMapper(c)\n return beatsaver(c)\n }\n\n if (c.options.type === 'beatleader') {\n return beatleader(c)\n }\n\n // return subscription info\n const rows = await c.services.db.getSubscriptionInfoByUGID(\n c.session.channel.id,\n c.session.user.id\n )\n\n if (rows.length < 1) {\n throw new NoneSubscriptionExistError()\n }\n let text = c.session.text('commands.bsbot.subscribe.info.header') + '\\n'\n for (const row of rows) {\n if (row.
|
1
|
+
{"version":3,"sources":["../../../../src/cmd/subscribe/index.ts"],"sourcesContent":["import {CommandBuilder} from \"@/interface\";\nimport { beatleader } from './beatleader'\nimport { beatsaver } from './beatsaver'\nimport { NoneSubscriptionExistError } from '@/services/errors'\nimport { idBeatsaverMapper } from './id-beatsaver-mapper'\n\nexport default () =>\n new CommandBuilder()\n .setName('subscribe')\n .addAlias('bbsub')\n .addAlias('/subbl', { options: { type: 'beatleader' } })\n .addAlias('/subbs', { options: { type: 'beatsaver' } })\n .addAlias('blsub', { options: { type: 'beatleader' } })\n .addAlias('bssub', { options: { type: 'beatsaver' } })\n .addAlias('subbl', { options: { type: 'beatleader' } })\n .addAlias('subbs', { options: { type: 'beatsaver' } })\n .addAlias('subbl', { options: { type: 'beatleader' } })\n .addAlias('submapper', { options: { type: 'bsmapper' } })\n .addOption('type', 'type:string')\n .setDescription('clear an auth account relate info')\n .setExecutor(async (c) => {\n // check admin permission\n // if (options.type === 'beatsaver-alert') {\n // return alert(c)\n // }\n\n if (c.options.type === 'beatsaver') {\n if (c.input) return idBeatsaverMapper(c)\n return beatsaver(c)\n }\n\n if (c.options.type === 'beatleader') {\n return beatleader(c)\n }\n\n // return subscription info\n const rows = await c.services.db.getSubscriptionInfoByUGID(\n c.session.channel.id,\n c.session.user.id\n )\n\n if (rows.length < 1) {\n throw new NoneSubscriptionExistError()\n }\n let text = c.session.text('commands.bsbot.subscribe.info.header') + '\\n'\n for (const row of rows) {\n if (row.subscription.type.startsWith('group')) {\n text += c.session.text(\n 'commands.bsbot.subscribe.info.group-body-item',\n {\n type:\n row.subscription.type +\n `(${row.subscription.data?.mapperName} ${row.subscription.data?.mapperId})`,\n }\n )\n } else {\n text += c.session.text('commands.bsbot.subscribe.info.body-item', {\n type: row.subscription.type,\n cnt: row.memberCount,\n enable: row.subscription.enabled,\n })\n if (row.me) {\n text += c.session.text(\n 'commands.bsbot.subscribe.info.body-item-include-you'\n )\n }\n }\n\n text += '\\n\\n'\n }\n await c.session.sendQuote(text)\n })\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA6B;AAC7B,wBAA2B;AAC3B,uBAA0B;AAC1B,oBAA2C;AAC3C,iCAAkC;AAElC,IAAO,oBAAQ,MACb,IAAI,gCAAe,EAChB,QAAQ,WAAW,EACnB,SAAS,OAAO,EAChB,SAAS,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,EAAE,CAAC,EACtD,SAAS,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,EAAE,CAAC,EACrD,SAAS,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,EAAE,CAAC,EACrD,SAAS,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,EAAE,CAAC,EACpD,SAAS,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,EAAE,CAAC,EACrD,SAAS,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,EAAE,CAAC,EACpD,SAAS,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,EAAE,CAAC,EACrD,SAAS,aAAa,EAAE,SAAS,EAAE,MAAM,WAAW,EAAE,CAAC,EACvD,UAAU,QAAQ,aAAa,EAC/B,eAAe,mCAAmC,EAClD,YAAY,CAAO,MAAM;AApB9B;AA0BM,MAAI,EAAE,QAAQ,SAAS,aAAa;AAClC,QAAI,EAAE,MAAO,YAAO,8CAAkB,CAAC;AACvC,eAAO,4BAAU,CAAC;AAAA,EACpB;AAEA,MAAI,EAAE,QAAQ,SAAS,cAAc;AACnC,eAAO,8BAAW,CAAC;AAAA,EACrB;AAGA,QAAM,OAAO,MAAM,EAAE,SAAS,GAAG;AAAA,IAC/B,EAAE,QAAQ,QAAQ;AAAA,IAClB,EAAE,QAAQ,KAAK;AAAA,EACjB;AAEA,MAAI,KAAK,SAAS,GAAG;AACnB,UAAM,IAAI,yCAA2B;AAAA,EACvC;AACA,MAAI,OAAO,EAAE,QAAQ,KAAK,sCAAsC,IAAI;AACpE,aAAW,OAAO,MAAM;AACtB,QAAI,IAAI,aAAa,KAAK,WAAW,OAAO,GAAG;AAC7C,cAAQ,EAAE,QAAQ;AAAA,QAChB;AAAA,QACA;AAAA,UACE,MACE,IAAI,aAAa,OACjB,KAAI,SAAI,aAAa,SAAjB,mBAAuB,UAAU,KAAI,SAAI,aAAa,SAAjB,mBAAuB,QAAQ;AAAA,QAC5E;AAAA,MACF;AAAA,IACF,OAAO;AACL,cAAQ,EAAE,QAAQ,KAAK,2CAA2C;AAAA,QAChE,MAAM,IAAI,aAAa;AAAA,QACvB,KAAK,IAAI;AAAA,QACT,QAAQ,IAAI,aAAa;AAAA,MAC3B,CAAC;AACD,UAAI,IAAI,IAAI;AACV,gBAAQ,EAAE,QAAQ;AAAA,UAChB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,YAAQ;AAAA,EACV;AACA,QAAM,EAAE,QAAQ,UAAU,IAAI;AAChC,EAAC;","names":[]}
|
@@ -47,7 +47,7 @@ var subleave_default = () => new import_interface.CommandBuilder().setName("subl
|
|
47
47
|
c.session.user.id
|
48
48
|
);
|
49
49
|
if (c.options.type === "beatleader") {
|
50
|
-
const blSub = subs.find((it) => it.
|
50
|
+
const blSub = subs.find((it) => it.subscription.type == "beatleader-score");
|
51
51
|
if (!(blSub == null ? void 0 : blSub.me)) {
|
52
52
|
return c.session.sendQuote(
|
53
53
|
c.session.text(
|
@@ -56,14 +56,14 @@ var subleave_default = () => new import_interface.CommandBuilder().setName("subl
|
|
56
56
|
);
|
57
57
|
}
|
58
58
|
yield c.services.db.removeFromSubGroupBySubAndUid(
|
59
|
-
blSub.
|
59
|
+
blSub.subscription.id,
|
60
60
|
c.session.user.id
|
61
61
|
);
|
62
62
|
yield c.session.sendQuote(
|
63
63
|
c.session.text("commands.bsbot.subscribe.leave.success.beatleader")
|
64
64
|
);
|
65
65
|
} else if (c.options.type === "beatsaver") {
|
66
|
-
const bsSub = subs.find((it) => it.
|
66
|
+
const bsSub = subs.find((it) => it.subscription.type == "beatsaver-map");
|
67
67
|
if (!(bsSub == null ? void 0 : bsSub.me)) {
|
68
68
|
yield c.session.sendQuote(
|
69
69
|
c.session.text("commands.bsbot.subscribe.leave.not-exist.beatsaver")
|
@@ -71,7 +71,7 @@ var subleave_default = () => new import_interface.CommandBuilder().setName("subl
|
|
71
71
|
return;
|
72
72
|
}
|
73
73
|
yield c.services.db.removeFromSubGroupBySubAndUid(
|
74
|
-
bsSub.
|
74
|
+
bsSub.subscription.id,
|
75
75
|
c.session.user.id
|
76
76
|
);
|
77
77
|
yield c.session.sendQuote(
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/cmd/subscribe/subleave.ts"],"sourcesContent":["import {CommandBuilder} from \"@/interface\";\n\nexport default () =>\n new CommandBuilder()\n .setName('subleave')\n .addAlias('bbleave')\n .addAlias('/leavebl', { options: { type: 'beatleader' } })\n .addAlias('/leavebs', { options: { type: 'beatsaver' } })\n .addAlias('leavebl', { options: { type: 'beatleader' } })\n .addAlias('leavebs', { options: { type: 'beatsaver' } })\n .addOption('type', 'type:string')\n .setDescription('')\n .setExecutor(async (c) => {\n // getUserJoinedGroupMember\n const subs = await c.services.db.getSubscriptionInfoByUGID(\n c.session.channel.id,\n c.session.user.id\n )\n if (c.options.type === 'beatleader') {\n const blSub = subs.find((it) => it.
|
1
|
+
{"version":3,"sources":["../../../../src/cmd/subscribe/subleave.ts"],"sourcesContent":["import {CommandBuilder} from \"@/interface\";\n\nexport default () =>\n new CommandBuilder()\n .setName('subleave')\n .addAlias('bbleave')\n .addAlias('/leavebl', { options: { type: 'beatleader' } })\n .addAlias('/leavebs', { options: { type: 'beatsaver' } })\n .addAlias('leavebl', { options: { type: 'beatleader' } })\n .addAlias('leavebs', { options: { type: 'beatsaver' } })\n .addOption('type', 'type:string')\n .setDescription('')\n .setExecutor(async (c) => {\n // getUserJoinedGroupMember\n const subs = await c.services.db.getSubscriptionInfoByUGID(\n c.session.channel.id,\n c.session.user.id\n )\n if (c.options.type === 'beatleader') {\n const blSub = subs.find((it) => it.subscription.type == 'beatleader-score')\n if (!blSub?.me) {\n return c.session.sendQuote(\n c.session.text(\n 'commands.bsbot.subscribe.leave.not-exist.beatleader'\n )\n )\n }\n await c.services.db.removeFromSubGroupBySubAndUid(\n blSub.subscription.id,\n c.session.user.id\n )\n await c.session.sendQuote(\n c.session.text('commands.bsbot.subscribe.leave.success.beatleader')\n )\n } else if (c.options.type === 'beatsaver') {\n const bsSub = subs.find((it) => it.subscription.type == 'beatsaver-map')\n if (!bsSub?.me) {\n await c.session.sendQuote(\n c.session.text('commands.bsbot.subscribe.leave.not-exist.beatsaver')\n )\n return\n }\n\n await c.services.db.removeFromSubGroupBySubAndUid(\n bsSub.subscription.id,\n c.session.user.id\n )\n await c.session.sendQuote(\n c.session.text('commands.bsbot.subscribe.leave.success.beatsaver')\n )\n }\n })\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA6B;AAE7B,IAAO,mBAAQ,MACb,IAAI,gCAAe,EAChB,QAAQ,UAAU,EAClB,SAAS,SAAS,EAClB,SAAS,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,EAAE,CAAC,EACxD,SAAS,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,EAAE,CAAC,EACvD,SAAS,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,EAAE,CAAC,EACvD,SAAS,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,EAAE,CAAC,EACtD,UAAU,QAAQ,aAAa,EAC/B,eAAe,EAAE,EACjB,YAAY,CAAO,MAAM;AAExB,QAAM,OAAO,MAAM,EAAE,SAAS,GAAG;AAAA,IAC/B,EAAE,QAAQ,QAAQ;AAAA,IAClB,EAAE,QAAQ,KAAK;AAAA,EACjB;AACA,MAAI,EAAE,QAAQ,SAAS,cAAc;AACnC,UAAM,QAAQ,KAAK,KAAK,CAAC,OAAO,GAAG,aAAa,QAAQ,kBAAkB;AAC1E,QAAI,EAAC,+BAAO,KAAI;AACd,aAAO,EAAE,QAAQ;AAAA,QACf,EAAE,QAAQ;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,IACF;AACA,UAAM,EAAE,SAAS,GAAG;AAAA,MAClB,MAAM,aAAa;AAAA,MACnB,EAAE,QAAQ,KAAK;AAAA,IACjB;AACA,UAAM,EAAE,QAAQ;AAAA,MACd,EAAE,QAAQ,KAAK,mDAAmD;AAAA,IACpE;AAAA,EACF,WAAW,EAAE,QAAQ,SAAS,aAAa;AACzC,UAAM,QAAQ,KAAK,KAAK,CAAC,OAAO,GAAG,aAAa,QAAQ,eAAe;AACvE,QAAI,EAAC,+BAAO,KAAI;AACd,YAAM,EAAE,QAAQ;AAAA,QACd,EAAE,QAAQ,KAAK,oDAAoD;AAAA,MACrE;AACA;AAAA,IACF;AAEA,UAAM,EAAE,SAAS,GAAG;AAAA,MAClB,MAAM,aAAa;AAAA,MACnB,EAAE,QAAQ,KAAK;AAAA,IACjB;AACA,UAAM,EAAE,QAAQ;AAAA,MACd,EAAE,QAAQ,KAAK,kDAAkD;AAAA,IACnE;AAAA,EACF;AACF,EAAC;","names":[]}
|
@@ -19,6 +19,7 @@ var __async = (__this, __arguments, generator) => {
|
|
19
19
|
});
|
20
20
|
};
|
21
21
|
const handleBeatLeaderBind = (c) => __async(null, null, function* () {
|
22
|
+
var _a;
|
22
23
|
const tokenInfo = yield c.services.api.AIOSaber.getBLOAuthToken(c.input);
|
23
24
|
if (!tokenInfo) {
|
24
25
|
c.session.sendQuote(c.session.text("commands.bsbot.bl.account.not-found"));
|
@@ -48,22 +49,18 @@ const handleBeatLeaderBind = (c) => __async(null, null, function* () {
|
|
48
49
|
const now = /* @__PURE__ */ new Date();
|
49
50
|
const { blAccount } = yield c.services.db.getUserAccountsByUid(c.session.user.id);
|
50
51
|
const account = {
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
otherPlatformInfo: {},
|
52
|
+
userId: c.session.user.id,
|
53
|
+
accountId: (_a = blAccount == null ? void 0 : blAccount.id) != null ? _a : "",
|
54
|
+
providerId: "beatleader",
|
55
|
+
providerUsername: self.name,
|
56
|
+
metadata: {},
|
57
57
|
accessToken: token.access_token,
|
58
58
|
refreshToken: token.refresh_token,
|
59
59
|
lastModifiedAt: now,
|
60
60
|
lastRefreshAt: now,
|
61
|
-
|
62
|
-
|
61
|
+
createdAt: now,
|
62
|
+
type: "oauth"
|
63
63
|
};
|
64
|
-
if (blAccount) {
|
65
|
-
account.id = blAccount.id;
|
66
|
-
}
|
67
64
|
yield c.services.db.addUserBindingInfo(account);
|
68
65
|
c.session.sendQuote(
|
69
66
|
c.session.text("commands.bsbot.bind.bl.success", {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/cmd/bind/bind-beatleader.ts"],"sourcesContent":["import {
|
1
|
+
{"version":3,"sources":["../../../../src/cmd/bind/bind-beatleader.ts"],"sourcesContent":["import { Account } from '@/interface'\nimport {CmdContext} from \"@/interface\";\n\nexport const handleBeatLeaderBind = async (c: CmdContext) => {\n const tokenInfo = await c.services.api.AIOSaber.getBLOAuthToken(c.input)\n if (!tokenInfo) {\n c.session.sendQuote(c.session.text('commands.bsbot.bl.account.not-found'))\n return\n }\n let token = tokenInfo\n let self = await c.services.api.BeatLeader.getTokenInfo(token.access_token)\n if (!self) {\n const refreshToken = await c.services.api.BeatLeader.refreshOAuthToken(\n token.refresh_token\n )\n if (!refreshToken) {\n c.session.sendQuote(\n c.session.text('commands.bsbot.bind.bl.invalid-token')\n )\n return\n }\n token = refreshToken\n self = await c.services.api.BeatLeader.getTokenInfo(token.access_token)\n if (!self) {\n c.session.sendQuote(\n c.session.text('commands.bsbot.bind.bl.unknown-error')\n )\n return\n }\n }\n const now = new Date()\n const { blAccount } = await c.services.db.getUserAccountsByUid(c.session.user.id)\n const account: Partial<Account> = {\n userId: c.session.user.id,\n accountId: blAccount?.id ?? '',\n providerId: 'beatleader',\n providerUsername: self.name,\n metadata: {},\n accessToken: token.access_token,\n refreshToken: token.refresh_token,\n lastModifiedAt: now,\n lastRefreshAt: now,\n createdAt: now,\n type: 'oauth',\n }\n await c.services.db.addUserBindingInfo(account)\n c.session.sendQuote(\n c.session.text('commands.bsbot.bind.bl.success', {\n name: self.name,\n id: self.id,\n })\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAGO,MAAM,uBAAuB,CAAO,MAAkB;AAH7D;AAIE,QAAM,YAAY,MAAM,EAAE,SAAS,IAAI,SAAS,gBAAgB,EAAE,KAAK;AACvE,MAAI,CAAC,WAAW;AACd,MAAE,QAAQ,UAAU,EAAE,QAAQ,KAAK,qCAAqC,CAAC;AACzE;AAAA,EACF;AACA,MAAI,QAAQ;AACZ,MAAI,OAAO,MAAM,EAAE,SAAS,IAAI,WAAW,aAAa,MAAM,YAAY;AAC1E,MAAI,CAAC,MAAM;AACT,UAAM,eAAe,MAAM,EAAE,SAAS,IAAI,WAAW;AAAA,MACnD,MAAM;AAAA,IACR;AACA,QAAI,CAAC,cAAc;AACjB,QAAE,QAAQ;AAAA,QACR,EAAE,QAAQ,KAAK,sCAAsC;AAAA,MACvD;AACA;AAAA,IACF;AACA,YAAQ;AACR,WAAO,MAAM,EAAE,SAAS,IAAI,WAAW,aAAa,MAAM,YAAY;AACtE,QAAI,CAAC,MAAM;AACT,QAAE,QAAQ;AAAA,QACR,EAAE,QAAQ,KAAK,sCAAsC;AAAA,MACvD;AACA;AAAA,IACF;AAAA,EACF;AACA,QAAM,MAAM,oBAAI,KAAK;AACrB,QAAM,EAAE,UAAU,IAAI,MAAM,EAAE,SAAS,GAAG,qBAAqB,EAAE,QAAQ,KAAK,EAAE;AAChF,QAAM,UAA4B;AAAA,IAChC,QAAQ,EAAE,QAAQ,KAAK;AAAA,IACvB,YAAW,4CAAW,OAAX,YAAiB;AAAA,IAC5B,YAAY;AAAA,IACZ,kBAAkB,KAAK;AAAA,IACvB,UAAU,CAAC;AAAA,IACX,aAAa,MAAM;AAAA,IACnB,cAAc,MAAM;AAAA,IACpB,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,WAAW;AAAA,IACX,MAAM;AAAA,EACR;AACA,QAAM,EAAE,SAAS,GAAG,mBAAmB,OAAO;AAC9C,IAAE,QAAQ;AAAA,IACR,EAAE,QAAQ,KAAK,kCAAkC;AAAA,MAC/C,MAAM,KAAK;AAAA,MACX,IAAI,KAAK;AAAA,IACX,CAAC;AAAA,EACH;AACF;","names":[]}
|
@@ -40,24 +40,19 @@ const handleBeatSaverBind = (c) => __async(null, null, function* () {
|
|
40
40
|
self = yield c.services.api.BeatSaver.getTokenInfo(token.access_token);
|
41
41
|
}
|
42
42
|
const now = /* @__PURE__ */ new Date();
|
43
|
-
const { bsAccount } = yield c.services.db.getUserAccountsByUid(c.session.user.id);
|
44
43
|
const account = {
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
44
|
+
userId: c.session.user.id,
|
45
|
+
providerId: "beatsaver",
|
46
|
+
accountId: self.id,
|
47
|
+
providerUsername: self.name,
|
48
|
+
metadata: {},
|
49
|
+
scope: "identity,alerts",
|
51
50
|
accessToken: token.access_token,
|
52
51
|
refreshToken: token.refresh_token,
|
53
52
|
lastModifiedAt: now,
|
54
53
|
lastRefreshAt: now,
|
55
|
-
type: "oauth"
|
56
|
-
status: "ok"
|
54
|
+
type: "oauth"
|
57
55
|
};
|
58
|
-
if (bsAccount) {
|
59
|
-
account.id = bsAccount.id;
|
60
|
-
}
|
61
56
|
yield c.services.db.addUserBindingInfo(account);
|
62
57
|
c.session.sendQuote(
|
63
58
|
c.session.text("commands.bsbot.bind.bs.success", {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/cmd/bind/bind-beatsaver.ts"],"sourcesContent":["import { CmdContext,
|
1
|
+
{"version":3,"sources":["../../../../src/cmd/bind/bind-beatsaver.ts"],"sourcesContent":["import { CmdContext, Account } from '@/interface'\n\nexport const handleBeatSaverBind = async (c: CmdContext) => {\n const tokenInfo = await c.services.api.AIOSaber.getBSOAuthToken(c.input)\n if (!tokenInfo) {\n c.session.sendQuote(c.session.text('commands.bsbot.bind.bs.not-found'))\n return\n }\n let token = tokenInfo\n let self = await c.services.api.BeatSaver.getTokenInfo(token.access_token)\n if (!self) {\n const refreshToken = await c.services.api.BeatSaver.refreshOAuthToken(\n token.refresh_token\n )\n if (!refreshToken) {\n c.session.sendQuote(\n c.session.text('commands.bsbot.bind.bs.invalid-token')\n )\n return\n }\n token = refreshToken\n self = await c.services.api.BeatSaver.getTokenInfo(token.access_token)\n }\n const now = new Date()\n const account: Partial<Account> = {\n userId: c.session.user.id,\n providerId: 'beatsaver',\n accountId: self.id,\n providerUsername: self.name,\n metadata: {},\n scope: 'identity,alerts',\n accessToken: token.access_token,\n refreshToken: token.refresh_token,\n lastModifiedAt: now,\n lastRefreshAt: now,\n type: 'oauth',\n }\n await c.services.db.addUserBindingInfo(account)\n c.session.sendQuote(\n c.session.text('commands.bsbot.bind.bs.success', {\n name: self.name,\n id: self.id,\n })\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAEO,MAAM,sBAAsB,CAAO,MAAkB;AAC1D,QAAM,YAAY,MAAM,EAAE,SAAS,IAAI,SAAS,gBAAgB,EAAE,KAAK;AACvE,MAAI,CAAC,WAAW;AACd,MAAE,QAAQ,UAAU,EAAE,QAAQ,KAAK,kCAAkC,CAAC;AACtE;AAAA,EACF;AACA,MAAI,QAAQ;AACZ,MAAI,OAAO,MAAM,EAAE,SAAS,IAAI,UAAU,aAAa,MAAM,YAAY;AACzE,MAAI,CAAC,MAAM;AACT,UAAM,eAAe,MAAM,EAAE,SAAS,IAAI,UAAU;AAAA,MAClD,MAAM;AAAA,IACR;AACA,QAAI,CAAC,cAAc;AACjB,QAAE,QAAQ;AAAA,QACR,EAAE,QAAQ,KAAK,sCAAsC;AAAA,MACvD;AACA;AAAA,IACF;AACA,YAAQ;AACR,WAAO,MAAM,EAAE,SAAS,IAAI,UAAU,aAAa,MAAM,YAAY;AAAA,EACvE;AACA,QAAM,MAAM,oBAAI,KAAK;AACrB,QAAM,UAA4B;AAAA,IAChC,QAAQ,EAAE,QAAQ,KAAK;AAAA,IACvB,YAAY;AAAA,IACZ,WAAW,KAAK;AAAA,IAChB,kBAAkB,KAAK;AAAA,IACvB,UAAU,CAAC;AAAA,IACX,OAAO;AAAA,IACP,aAAa,MAAM;AAAA,IACnB,cAAc,MAAM;AAAA,IACpB,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,MAAM;AAAA,EACR;AACA,QAAM,EAAE,SAAS,GAAG,mBAAmB,OAAO;AAC9C,IAAE,QAAQ;AAAA,IACR,EAAE,QAAQ,KAAK,kCAAkC;AAAA,MAC/C,MAAM,KAAK;AAAA,MACX,IAAI,KAAK;AAAA,IACX,CAAC;AAAA,EACH;AACF;","names":[]}
|
@@ -33,7 +33,7 @@ const handleBeatLeaderIDBind = (c) => __async(null, null, function* () {
|
|
33
33
|
const text = c.session.text("commands.bsbot.bind.ack-prompt", {
|
34
34
|
user: `${player.name}(${player.id})`
|
35
35
|
}) + (blAccount ? "," + c.session.text("commands.bsbot.bind.exist", {
|
36
|
-
id: blAccount.
|
36
|
+
id: blAccount.accountId
|
37
37
|
}) : "");
|
38
38
|
yield c.session.sendQuote(text);
|
39
39
|
const prompt = yield c.session.prompt(3e4);
|
@@ -41,19 +41,16 @@ const handleBeatLeaderIDBind = (c) => __async(null, null, function* () {
|
|
41
41
|
throw prompt ? new SessionPromotionCancelError() : new SessionPromotionTimeoutError();
|
42
42
|
}
|
43
43
|
const account = {
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
44
|
+
userId: c.session.user.id,
|
45
|
+
providerId: "beatleader",
|
46
|
+
accountId: player.id.toString(),
|
47
|
+
providerUsername: player.name,
|
48
|
+
metadata: {},
|
49
49
|
lastModifiedAt: now,
|
50
50
|
lastRefreshAt: now,
|
51
|
-
|
52
|
-
|
51
|
+
createdAt: now,
|
52
|
+
type: "id"
|
53
53
|
};
|
54
|
-
if (blAccount) {
|
55
|
-
account.id = blAccount.id;
|
56
|
-
}
|
57
54
|
yield c.services.db.addUserBindingInfo(account);
|
58
55
|
yield c.session.sendQuote(
|
59
56
|
c.session.text("commands.bsbot.bind.bl.success", {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/cmd/bind/bind-id-beatleader.ts"],"sourcesContent":["import { CmdContext,
|
1
|
+
{"version":3,"sources":["../../../../src/cmd/bind/bind-id-beatleader.ts"],"sourcesContent":["import { CmdContext, Account } from '@/interface'\nimport {\n BLIDNotFoundError,\n SessionPromotionCancelError,\n SessionPromotionTimeoutError,\n} from '@/services/errors'\n\nexport const handleBeatLeaderIDBind = async (c: CmdContext) => {\n const player = await c.services.api.BeatLeader.getPlayerInfo(c.input)\n if (!player) {\n throw new BLIDNotFoundError({ accountId: c.input })\n }\n\n const now = new Date()\n const { blAccount } = await c.services.db.getUserAccountsByUid(c.session.user.id)\n\n const text =\n c.session.text('commands.bsbot.bind.ack-prompt', {\n user: `${player.name}(${player.id})`,\n }) +\n (blAccount\n ? ',' +\n c.session.text('commands.bsbot.bind.exist', {\n id: blAccount.accountId,\n })\n : '')\n\n await c.session.sendQuote(text)\n\n const prompt = await c.session.prompt(30000)\n if (!prompt || (prompt != 'y' && prompt != 'yes')) {\n throw prompt\n ? new SessionPromotionCancelError()\n : new SessionPromotionTimeoutError()\n }\n const account: Partial<Account> = {\n userId: c.session.user.id,\n providerId: 'beatleader',\n accountId: player.id.toString(),\n providerUsername: player.name,\n metadata: {},\n lastModifiedAt: now,\n lastRefreshAt: now,\n createdAt: now,\n type: 'id',\n }\n await c.services.db.addUserBindingInfo(account)\n await c.session.sendQuote(\n c.session.text('commands.bsbot.bind.bl.success', {\n name: player.name,\n id: player.id,\n })\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEA,MAAM,yBAAyB,CAAO,MAAkB;AAC7D,QAAM,SAAS,MAAM,EAAE,SAAS,IAAI,WAAW,cAAc,EAAE,KAAK;AACpE,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,kBAAkB,EAAE,WAAW,EAAE,MAAM,CAAC;AAAA,EACpD;AAEA,QAAM,MAAM,oBAAI,KAAK;AACrB,QAAM,EAAE,UAAU,IAAI,MAAM,EAAE,SAAS,GAAG,qBAAqB,EAAE,QAAQ,KAAK,EAAE;AAEhF,QAAM,OACJ,EAAE,QAAQ,KAAK,kCAAkC;AAAA,IAC/C,MAAM,GAAG,OAAO,IAAI,IAAI,OAAO,EAAE;AAAA,EACnC,CAAC,KACA,YACG,MACA,EAAE,QAAQ,KAAK,6BAA6B;AAAA,IAC1C,IAAI,UAAU;AAAA,EAChB,CAAC,IACD;AAEN,QAAM,EAAE,QAAQ,UAAU,IAAI;AAE9B,QAAM,SAAS,MAAM,EAAE,QAAQ,OAAO,GAAK;AAC3C,MAAI,CAAC,UAAW,UAAU,OAAO,UAAU,OAAQ;AACjD,UAAM,SACF,IAAI,4BAA4B,IAChC,IAAI,6BAA6B;AAAA,EACvC;AACA,QAAM,UAA4B;AAAA,IAChC,QAAQ,EAAE,QAAQ,KAAK;AAAA,IACvB,YAAY;AAAA,IACZ,WAAW,OAAO,GAAG,SAAS;AAAA,IAC9B,kBAAkB,OAAO;AAAA,IACzB,UAAU,CAAC;AAAA,IACX,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,WAAW;AAAA,IACX,MAAM;AAAA,EACR;AACA,QAAM,EAAE,SAAS,GAAG,mBAAmB,OAAO;AAC9C,QAAM,EAAE,QAAQ;AAAA,IACd,EAAE,QAAQ,KAAK,kCAAkC;AAAA,MAC/C,MAAM,OAAO;AAAA,MACb,IAAI,OAAO;AAAA,IACb,CAAC;AAAA,EACH;AACF;","names":[]}
|
@@ -33,7 +33,7 @@ const handleBeatSaverIDBind = (c) => __async(null, null, function* () {
|
|
33
33
|
const text = c.session.text("commands.bsbot.bind.ack-prompt", {
|
34
34
|
user: `${mapper.name}(${mapper.id})`
|
35
35
|
}) + (bsAccount ? "," + c.session.text("commands.bsbot.bind.exist", {
|
36
|
-
id: bsAccount.
|
36
|
+
id: bsAccount.accountId
|
37
37
|
}) : "");
|
38
38
|
yield c.session.sendQuote(text);
|
39
39
|
const prompt = yield c.session.prompt(3e4);
|
@@ -41,19 +41,15 @@ const handleBeatSaverIDBind = (c) => __async(null, null, function* () {
|
|
41
41
|
throw prompt ? new SessionPromotionCancelError() : new SessionPromotionTimeoutError();
|
42
42
|
}
|
43
43
|
const account = {
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
44
|
+
userId: c.session.user.id,
|
45
|
+
providerId: "beatsaver",
|
46
|
+
accountId: mapper.id.toString(),
|
47
|
+
providerUsername: mapper.name,
|
48
|
+
metadata: {},
|
49
49
|
lastModifiedAt: now,
|
50
50
|
lastRefreshAt: now,
|
51
|
-
type: "id"
|
52
|
-
status: "ok"
|
51
|
+
type: "id"
|
53
52
|
};
|
54
|
-
if (bsAccount) {
|
55
|
-
account.id = bsAccount.id;
|
56
|
-
}
|
57
53
|
yield c.services.db.addUserBindingInfo(account);
|
58
54
|
c.session.sendQuote(
|
59
55
|
c.session.text("commands.bsbot.bind.bs.success", {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/cmd/bind/bind-id-beatsaver.ts"],"sourcesContent":["import { CmdContext,
|
1
|
+
{"version":3,"sources":["../../../../src/cmd/bind/bind-id-beatsaver.ts"],"sourcesContent":["import { CmdContext, Account } from '@/interface'\n\nimport {\n BSIDNotFoundError,\n SessionPromotionCancelError,\n SessionPromotionTimeoutError,\n} from '@/services/errors'\n\nexport const handleBeatSaverIDBind = async (c: CmdContext) => {\n const mapper = await c.services.api.BeatSaver.getBSMapperById(c.input)\n if (!mapper) {\n throw new BSIDNotFoundError({ accountId: c.input })\n }\n // 如果当前bind 是 oauth?改为 id?\n const now = new Date()\n const { bsAccount } = await c.services.db.getUserAccountsByUid(c.session.user.id)\n\n const text =\n c.session.text('commands.bsbot.bind.ack-prompt', {\n user: `${mapper.name}(${mapper.id})`,\n }) +\n (bsAccount\n ? ',' +\n c.session.text('commands.bsbot.bind.exist', {\n id: bsAccount.accountId,\n })\n : '')\n\n await c.session.sendQuote(text)\n\n const prompt = await c.session.prompt(30000)\n if (!prompt || (prompt != 'y' && prompt != 'yes')) {\n throw prompt\n ? new SessionPromotionCancelError()\n : new SessionPromotionTimeoutError()\n }\n const account: Partial<Account> = {\n userId: c.session.user.id,\n providerId: 'beatsaver',\n accountId: mapper.id.toString(),\n providerUsername: mapper.name,\n metadata: {},\n lastModifiedAt: now,\n lastRefreshAt: now,\n type: 'id',\n }\n await c.services.db.addUserBindingInfo(account)\n c.session.sendQuote(\n c.session.text('commands.bsbot.bind.bs.success', {\n name: mapper.name,\n id: mapper.id,\n })\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAEA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEA,MAAM,wBAAwB,CAAO,MAAkB;AAC5D,QAAM,SAAS,MAAM,EAAE,SAAS,IAAI,UAAU,gBAAgB,EAAE,KAAK;AACrE,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,kBAAkB,EAAE,WAAW,EAAE,MAAM,CAAC;AAAA,EACpD;AAEA,QAAM,MAAM,oBAAI,KAAK;AACrB,QAAM,EAAE,UAAU,IAAI,MAAM,EAAE,SAAS,GAAG,qBAAqB,EAAE,QAAQ,KAAK,EAAE;AAEhF,QAAM,OACJ,EAAE,QAAQ,KAAK,kCAAkC;AAAA,IAC/C,MAAM,GAAG,OAAO,IAAI,IAAI,OAAO,EAAE;AAAA,EACnC,CAAC,KACA,YACG,MACA,EAAE,QAAQ,KAAK,6BAA6B;AAAA,IAC1C,IAAI,UAAU;AAAA,EAChB,CAAC,IACD;AAEN,QAAM,EAAE,QAAQ,UAAU,IAAI;AAE9B,QAAM,SAAS,MAAM,EAAE,QAAQ,OAAO,GAAK;AAC3C,MAAI,CAAC,UAAW,UAAU,OAAO,UAAU,OAAQ;AACjD,UAAM,SACF,IAAI,4BAA4B,IAChC,IAAI,6BAA6B;AAAA,EACvC;AACA,QAAM,UAA4B;AAAA,IAChC,QAAQ,EAAE,QAAQ,KAAK;AAAA,IACvB,YAAY;AAAA,IACZ,WAAW,OAAO,GAAG,SAAS;AAAA,IAC9B,kBAAkB,OAAO;AAAA,IACzB,UAAU,CAAC;AAAA,IACX,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,MAAM;AAAA,EACR;AACA,QAAM,EAAE,SAAS,GAAG,mBAAmB,OAAO;AAC9C,IAAE,QAAQ;AAAA,IACR,EAAE,QAAQ,KAAK,kCAAkC;AAAA,MAC/C,MAAM,OAAO;AAAA,MACb,IAAI,OAAO;AAAA,IACb,CAAC;AAAA,EACH;AACF;","names":[]}
|
@@ -28,12 +28,10 @@ const handleScoreSaberBind = (c) => __async(null, null, function* () {
|
|
28
28
|
if (!scoreSaberUser) {
|
29
29
|
throw new SSIDNotFoundError({ accountId: c.input });
|
30
30
|
}
|
31
|
-
const { ssAccount
|
32
|
-
c.session.user.id
|
33
|
-
);
|
31
|
+
const { ssAccount } = yield c.services.db.getUserAccountsByUid(c.session.user.id);
|
34
32
|
const text = c.session.text("commands.bsbot.bind.ack-prompt", {
|
35
33
|
user: `${scoreSaberUser.name}(${scoreSaberUser.id})`
|
36
|
-
}) + (ssAccount ? "," + c.session.text("commands.bsbot.bind.exist", { id: ssAccount.
|
34
|
+
}) + (ssAccount ? "," + c.session.text("commands.bsbot.bind.exist", { id: ssAccount.accountId }) : "");
|
37
35
|
yield c.session.sendQuote(text);
|
38
36
|
const prompt = yield c.session.prompt(3e4);
|
39
37
|
if (!prompt || prompt != "y" && prompt != "yes") {
|
@@ -41,20 +39,17 @@ const handleScoreSaberBind = (c) => __async(null, null, function* () {
|
|
41
39
|
}
|
42
40
|
const now = /* @__PURE__ */ new Date();
|
43
41
|
const account = {
|
44
|
-
|
45
|
-
|
46
|
-
|
42
|
+
userId: c.session.user.id,
|
43
|
+
accountId: scoreSaberUser.id,
|
44
|
+
providerId: "scoresaber",
|
45
|
+
providerUsername: scoreSaberUser.name,
|
47
46
|
lastModifiedAt: now,
|
48
47
|
lastRefreshAt: now,
|
49
|
-
|
50
|
-
type: "id"
|
51
|
-
status: "ok"
|
48
|
+
createdAt: now,
|
49
|
+
type: "id"
|
52
50
|
};
|
53
|
-
if (ssAccount) {
|
54
|
-
account.id = ssAccount.id;
|
55
|
-
}
|
56
51
|
yield c.services.db.addUserBindingInfo(account);
|
57
|
-
c.session.sendQuote(
|
52
|
+
yield c.session.sendQuote(
|
58
53
|
c.session.text("commands.bsbot.bind.success", {
|
59
54
|
user: `${scoreSaberUser.name}(${scoreSaberUser.id})`
|
60
55
|
})
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/cmd/bind/bind-scoresaber.ts"],"sourcesContent":["import {
|
1
|
+
{"version":3,"sources":["../../../../src/cmd/bind/bind-scoresaber.ts"],"sourcesContent":["import {Account, CmdContext} from '@/interface'\nimport {\n SessionPromotionCancelError,\n SessionPromotionTimeoutError,\n SSIDNotFoundError,\n} from '@/services/errors'\n\nexport const handleScoreSaberBind = async (c: CmdContext) => {\n const scoreSaberUser = await c.services.api.ScoreSaber.getScoreUserById(c.input)\n if (!scoreSaberUser) {\n throw new SSIDNotFoundError({accountId: c.input})\n }\n const {ssAccount} = await c.services.db.getUserAccountsByUid(c.session.user.id)\n const text =\n c.session.text('commands.bsbot.bind.ack-prompt', {\n user: `${scoreSaberUser.name}(${scoreSaberUser.id})`,\n }) +\n (ssAccount ? ',' + c.session.text('commands.bsbot.bind.exist', {id: ssAccount.accountId,}) : '')\n\n await c.session.sendQuote(text)\n\n const prompt = await c.session.prompt(30000)\n if (!prompt || (prompt != 'y' && prompt != 'yes')) {\n throw prompt\n ? new SessionPromotionCancelError()\n : new SessionPromotionTimeoutError()\n }\n const now = new Date()\n const account: Partial<Account> = {\n userId: c.session.user.id,\n accountId: scoreSaberUser.id,\n providerId: 'scoresaber',\n providerUsername: scoreSaberUser.name,\n lastModifiedAt: now,\n lastRefreshAt: now,\n createdAt: now,\n type: 'id',\n }\n await c.services.db.addUserBindingInfo(account)\n await c.session.sendQuote(\n c.session.text('commands.bsbot.bind.success', {\n user: `${scoreSaberUser.name}(${scoreSaberUser.id})`,\n })\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEA,MAAM,uBAAuB,CAAO,MAAkB;AAC3D,QAAM,iBAAiB,MAAM,EAAE,SAAS,IAAI,WAAW,iBAAiB,EAAE,KAAK;AAC/E,MAAI,CAAC,gBAAgB;AACnB,UAAM,IAAI,kBAAkB,EAAC,WAAW,EAAE,MAAK,CAAC;AAAA,EAClD;AACA,QAAM,EAAC,UAAS,IAAI,MAAM,EAAE,SAAS,GAAG,qBAAqB,EAAE,QAAQ,KAAK,EAAE;AAC9E,QAAM,OACJ,EAAE,QAAQ,KAAK,kCAAkC;AAAA,IAC/C,MAAM,GAAG,eAAe,IAAI,IAAI,eAAe,EAAE;AAAA,EACnD,CAAC,KACA,YAAY,MAAM,EAAE,QAAQ,KAAK,6BAA6B,EAAC,IAAI,UAAU,UAAU,CAAC,IAAI;AAE/F,QAAM,EAAE,QAAQ,UAAU,IAAI;AAE9B,QAAM,SAAS,MAAM,EAAE,QAAQ,OAAO,GAAK;AAC3C,MAAI,CAAC,UAAW,UAAU,OAAO,UAAU,OAAQ;AACjD,UAAM,SACF,IAAI,4BAA4B,IAChC,IAAI,6BAA6B;AAAA,EACvC;AACA,QAAM,MAAM,oBAAI,KAAK;AACrB,QAAM,UAA4B;AAAA,IAChC,QAAQ,EAAE,QAAQ,KAAK;AAAA,IACvB,WAAW,eAAe;AAAA,IAC1B,YAAY;AAAA,IACZ,kBAAkB,eAAe;AAAA,IACjC,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,WAAW;AAAA,IACX,MAAM;AAAA,EACR;AACA,QAAM,EAAE,SAAS,GAAG,mBAAmB,OAAO;AAC9C,QAAM,EAAE,QAAQ;AAAA,IACd,EAAE,QAAQ,KAAK,+BAA+B;AAAA,MAC5C,MAAM,GAAG,eAAe,IAAI,IAAI,eAAe,EAAE;AAAA,IACnD,CAAC;AAAA,EACH;AACF;","names":[]}
|
@@ -41,7 +41,7 @@ import { SubscriptionExistError } from "../../services/errors/index.js";
|
|
41
41
|
const beatleader = (c) => __async(null, null, function* () {
|
42
42
|
const { blSub } = yield c.services.db.getSubscriptionsByGID(c.session.channel.id);
|
43
43
|
if (blSub) {
|
44
|
-
if (blSub.
|
44
|
+
if (blSub.enabled) {
|
45
45
|
throw new SubscriptionExistError();
|
46
46
|
}
|
47
47
|
const data2 = __spreadProps(__spreadValues({}, blSub), { enable: true });
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/cmd/subscribe/beatleader.ts"],"sourcesContent":["import { CmdContext } from '@/interface'\nimport { SubscriptionExistError } from '@/services/errors'\n\nexport const beatleader = async (c: CmdContext) => {\n const { blSub } = await c.services.db.getSubscriptionsByGID(c.session.channel.id)\n if (blSub) {\n if (blSub.
|
1
|
+
{"version":3,"sources":["../../../../src/cmd/subscribe/beatleader.ts"],"sourcesContent":["import { CmdContext } from '@/interface'\nimport { SubscriptionExistError } from '@/services/errors'\n\nexport const beatleader = async (c: CmdContext) => {\n const { blSub } = await c.services.db.getSubscriptionsByGID(c.session.channel.id)\n if (blSub) {\n if (blSub.enabled) {\n throw new SubscriptionExistError()\n }\n const data = { ...blSub, enable: true }\n await c.services.db.upsertSubscription(data)\n await c.session.sendQuote(\n c.session.text('commands.bsbot.subscribe.beatleader.success')\n )\n return\n }\n\n const data = {\n gid: c.session.channel.id,\n type: 'beatleader-score',\n time: new Date(),\n enable: true,\n data: {},\n }\n await c.services.db.upsertSubscription(data)\n await c.session.sendQuote(\n c.session.text('commands.bsbot.subscribe.beatleader.success')\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,SAAS,8BAA8B;AAEhC,MAAM,aAAa,CAAO,MAAkB;AACjD,QAAM,EAAE,MAAM,IAAI,MAAM,EAAE,SAAS,GAAG,sBAAsB,EAAE,QAAQ,QAAQ,EAAE;AAChF,MAAI,OAAO;AACT,QAAI,MAAM,SAAS;AACjB,YAAM,IAAI,uBAAuB;AAAA,IACnC;AACA,UAAMA,QAAO,iCAAK,QAAL,EAAY,QAAQ,KAAK;AACtC,UAAM,EAAE,SAAS,GAAG,mBAAmBA,KAAI;AAC3C,UAAM,EAAE,QAAQ;AAAA,MACd,EAAE,QAAQ,KAAK,6CAA6C;AAAA,IAC9D;AACA;AAAA,EACF;AAEA,QAAM,OAAO;AAAA,IACX,KAAK,EAAE,QAAQ,QAAQ;AAAA,IACvB,MAAM;AAAA,IACN,MAAM,oBAAI,KAAK;AAAA,IACf,QAAQ;AAAA,IACR,MAAM,CAAC;AAAA,EACT;AACA,QAAM,EAAE,SAAS,GAAG,mBAAmB,IAAI;AAC3C,QAAM,EAAE,QAAQ;AAAA,IACd,EAAE,QAAQ,KAAK,6CAA6C;AAAA,EAC9D;AACF;","names":["data"]}
|
@@ -41,7 +41,7 @@ import { SubscriptionExistError } from "../../services/errors/index.js";
|
|
41
41
|
const beatsaver = (c) => __async(null, null, function* () {
|
42
42
|
const { bsMapSub } = yield c.services.db.getSubscriptionsByGID(c.session.channel.id);
|
43
43
|
if (bsMapSub) {
|
44
|
-
if (bsMapSub.
|
44
|
+
if (bsMapSub.enabled) {
|
45
45
|
throw new SubscriptionExistError();
|
46
46
|
}
|
47
47
|
const data2 = __spreadProps(__spreadValues({}, bsMapSub), { enable: true });
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/cmd/subscribe/beatsaver.ts"],"sourcesContent":["import { CmdContext } from '@/interface'\nimport { SubscriptionExistError } from '@/services/errors'\nexport const beatsaver = async (c: CmdContext) => {\n const { bsMapSub } = await c.services.db.getSubscriptionsByGID(c.session.channel.id)\n if (bsMapSub) {\n if (bsMapSub.
|
1
|
+
{"version":3,"sources":["../../../../src/cmd/subscribe/beatsaver.ts"],"sourcesContent":["import { CmdContext } from '@/interface'\nimport { SubscriptionExistError } from '@/services/errors'\nexport const beatsaver = async (c: CmdContext) => {\n const { bsMapSub } = await c.services.db.getSubscriptionsByGID(c.session.channel.id)\n if (bsMapSub) {\n if (bsMapSub.enabled) {\n throw new SubscriptionExistError()\n }\n const data = { ...bsMapSub, enable: true }\n await c.services.db.upsertSubscription(data)\n await c.session.sendQuote(\n c.session.text('commands.bsbot.subscribe.beatsaver.success')\n )\n return\n }\n const data = {\n gid: c.session.channel.id,\n type: 'beatsaver-map',\n time: new Date(),\n enable: true,\n data: {},\n }\n await c.services.db.upsertSubscription(data)\n await c.session.sendQuote(\n c.session.text('commands.bsbot.subscribe.beatsaver.success')\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,SAAS,8BAA8B;AAChC,MAAM,YAAY,CAAO,MAAkB;AAChD,QAAM,EAAE,SAAS,IAAI,MAAM,EAAE,SAAS,GAAG,sBAAsB,EAAE,QAAQ,QAAQ,EAAE;AACnF,MAAI,UAAU;AACZ,QAAI,SAAS,SAAS;AACpB,YAAM,IAAI,uBAAuB;AAAA,IACnC;AACA,UAAMA,QAAO,iCAAK,WAAL,EAAe,QAAQ,KAAK;AACzC,UAAM,EAAE,SAAS,GAAG,mBAAmBA,KAAI;AAC3C,UAAM,EAAE,QAAQ;AAAA,MACd,EAAE,QAAQ,KAAK,4CAA4C;AAAA,IAC7D;AACA;AAAA,EACF;AACA,QAAM,OAAO;AAAA,IACX,KAAK,EAAE,QAAQ,QAAQ;AAAA,IACvB,MAAM;AAAA,IACN,MAAM,oBAAI,KAAK;AAAA,IACf,QAAQ;AAAA,IACR,MAAM,CAAC;AAAA,EACT;AACA,QAAM,EAAE,SAAS,GAAG,mBAAmB,IAAI;AAC3C,QAAM,EAAE,QAAQ;AAAA,IACd,EAAE,QAAQ,KAAK,4CAA4C;AAAA,EAC7D;AACF;","names":["data"]}
|
@@ -55,7 +55,7 @@ const idBeatleaderScore = (c) => __async(null, null, function* () {
|
|
55
55
|
return ((_a = it2.data) == null ? void 0 : _a.playerId) === bluser.id;
|
56
56
|
});
|
57
57
|
if (it) {
|
58
|
-
if (it.
|
58
|
+
if (it.enabled) {
|
59
59
|
throw new SubscriptionExistError();
|
60
60
|
}
|
61
61
|
const data2 = __spreadProps(__spreadValues({}, it), { enable: true });
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/cmd/subscribe/id-beatleader-score.ts"],"sourcesContent":["import { CmdContext } from '@/interface'\nimport { BLIDNotFoundError, SubscriptionExistError } from '@/services/errors'\n\nexport const idBeatleaderScore = async (c: CmdContext) => {\n if (!c.input) {\n return\n }\n const bluser = await c.services.api.BeatLeader.getPlayerInfo(c.input)\n if (!bluser) {\n throw new BLIDNotFoundError({ accountId: c.input })\n }\n\n const subscribes = await c.services.db.getIDSubscriptionByChannelIDAndType(\n c.session.channel.id,\n 'id-beatleader-score'\n )\n const it = subscribes.find((it) => it.data?.playerId === bluser.id)\n if (it) {\n if (it.
|
1
|
+
{"version":3,"sources":["../../../../src/cmd/subscribe/id-beatleader-score.ts"],"sourcesContent":["import { CmdContext } from '@/interface'\nimport { BLIDNotFoundError, SubscriptionExistError } from '@/services/errors'\n\nexport const idBeatleaderScore = async (c: CmdContext) => {\n if (!c.input) {\n return\n }\n const bluser = await c.services.api.BeatLeader.getPlayerInfo(c.input)\n if (!bluser) {\n throw new BLIDNotFoundError({ accountId: c.input })\n }\n\n const subscribes = await c.services.db.getIDSubscriptionByChannelIDAndType(\n c.session.channel.id,\n 'id-beatleader-score'\n )\n const it = subscribes.find((it) => it.data?.playerId === bluser.id)\n if (it) {\n if (it.enabled) {\n throw new SubscriptionExistError()\n }\n\n const data = { ...it, enable: true }\n await c.services.db.upsertSubscription(data)\n await c.session.sendQuote(\n c.session.text('commands.bsbot.subscribe.beatsaver-mapper.success', {\n name: bluser.name,\n })\n )\n return\n }\n const data = {\n gid: c.session.channel.id,\n type: 'id-beatsaver-map',\n time: new Date(),\n enable: true,\n data: {\n playerId: bluser.id,\n },\n }\n await c.services.db.upsertSubscription(data)\n await c.session.sendQuote(\n c.session.text('commands.bsbot.subscribe.beatsaver-mapper.success', {\n name: bluser.name,\n })\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,SAAS,mBAAmB,8BAA8B;AAEnD,MAAM,oBAAoB,CAAO,MAAkB;AACxD,MAAI,CAAC,EAAE,OAAO;AACZ;AAAA,EACF;AACA,QAAM,SAAS,MAAM,EAAE,SAAS,IAAI,WAAW,cAAc,EAAE,KAAK;AACpE,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,kBAAkB,EAAE,WAAW,EAAE,MAAM,CAAC;AAAA,EACpD;AAEA,QAAM,aAAa,MAAM,EAAE,SAAS,GAAG;AAAA,IACrC,EAAE,QAAQ,QAAQ;AAAA,IAClB;AAAA,EACF;AACA,QAAM,KAAK,WAAW,KAAK,CAACA,QAAI;AAhBlC;AAgBqC,kBAAAA,IAAG,SAAH,mBAAS,cAAa,OAAO;AAAA,GAAE;AAClE,MAAI,IAAI;AACN,QAAI,GAAG,SAAS;AACd,YAAM,IAAI,uBAAuB;AAAA,IACnC;AAEA,UAAMC,QAAO,iCAAK,KAAL,EAAS,QAAQ,KAAK;AACnC,UAAM,EAAE,SAAS,GAAG,mBAAmBA,KAAI;AAC3C,UAAM,EAAE,QAAQ;AAAA,MACd,EAAE,QAAQ,KAAK,qDAAqD;AAAA,QAClE,MAAM,OAAO;AAAA,MACf,CAAC;AAAA,IACH;AACA;AAAA,EACF;AACA,QAAM,OAAO;AAAA,IACX,KAAK,EAAE,QAAQ,QAAQ;AAAA,IACvB,MAAM;AAAA,IACN,MAAM,oBAAI,KAAK;AAAA,IACf,QAAQ;AAAA,IACR,MAAM;AAAA,MACJ,UAAU,OAAO;AAAA,IACnB;AAAA,EACF;AACA,QAAM,EAAE,SAAS,GAAG,mBAAmB,IAAI;AAC3C,QAAM,EAAE,QAAQ;AAAA,IACd,EAAE,QAAQ,KAAK,qDAAqD;AAAA,MAClE,MAAM,OAAO;AAAA,IACf,CAAC;AAAA,EACH;AACF;","names":["it","data"]}
|
@@ -55,7 +55,7 @@ const idBeatsaverMapper = (c) => __async(null, null, function* () {
|
|
55
55
|
return ((_a = it2.data) == null ? void 0 : _a.mapperId) === mapper.id;
|
56
56
|
});
|
57
57
|
if (it) {
|
58
|
-
if (it.
|
58
|
+
if (it.enabled) {
|
59
59
|
throw new SubscriptionExistError();
|
60
60
|
}
|
61
61
|
const data2 = __spreadProps(__spreadValues({}, it), { enable: true });
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/cmd/subscribe/id-beatsaver-mapper.ts"],"sourcesContent":["import { CmdContext } from '@/interface'\nimport { BSIDNotFoundError, SubscriptionExistError } from '@/services/errors'\nexport const idBeatsaverMapper = async (c: CmdContext) => {\n if (!c.input) {\n return\n }\n const mapper = await c.services.api.BeatSaver.getBSMapperById(c.input)\n if (!mapper) {\n throw new BSIDNotFoundError({ accountId: c.input })\n }\n const subscribes = await c.services.db.getIDSubscriptionByChannelIDAndType(\n c.session.channel.id,\n 'id-beatsaver-map'\n )\n const it = subscribes.find((it) => it.data?.mapperId === mapper.id)\n if (it) {\n if (it.
|
1
|
+
{"version":3,"sources":["../../../../src/cmd/subscribe/id-beatsaver-mapper.ts"],"sourcesContent":["import { CmdContext } from '@/interface'\nimport { BSIDNotFoundError, SubscriptionExistError } from '@/services/errors'\nexport const idBeatsaverMapper = async (c: CmdContext) => {\n if (!c.input) {\n return\n }\n const mapper = await c.services.api.BeatSaver.getBSMapperById(c.input)\n if (!mapper) {\n throw new BSIDNotFoundError({ accountId: c.input })\n }\n const subscribes = await c.services.db.getIDSubscriptionByChannelIDAndType(\n c.session.channel.id,\n 'id-beatsaver-map'\n )\n const it = subscribes.find((it) => it.data?.mapperId === mapper.id)\n if (it) {\n if (it.enabled) {\n throw new SubscriptionExistError()\n }\n\n const data = { ...it, enable: true }\n await c.services.db.upsertSubscription(data)\n await c.session.sendQuote(\n c.session.text('commands.bsbot.subscribe.beatsaver-mapper.success', {\n name: mapper.name,\n })\n )\n return\n }\n const data = {\n gid: c.session.channel.id,\n type: 'id-beatsaver-map',\n time: new Date(),\n enable: true,\n data: {\n mapperId: mapper.id,\n mapperName: mapper.name,\n },\n }\n await c.services.db.upsertSubscription(data)\n await c.session.sendQuote(\n c.session.text('commands.bsbot.subscribe.beatsaver-mapper.success', {\n name: mapper.name,\n })\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,SAAS,mBAAmB,8BAA8B;AACnD,MAAM,oBAAoB,CAAO,MAAkB;AACxD,MAAI,CAAC,EAAE,OAAO;AACZ;AAAA,EACF;AACA,QAAM,SAAS,MAAM,EAAE,SAAS,IAAI,UAAU,gBAAgB,EAAE,KAAK;AACrE,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,kBAAkB,EAAE,WAAW,EAAE,MAAM,CAAC;AAAA,EACpD;AACA,QAAM,aAAa,MAAM,EAAE,SAAS,GAAG;AAAA,IACrC,EAAE,QAAQ,QAAQ;AAAA,IAClB;AAAA,EACF;AACA,QAAM,KAAK,WAAW,KAAK,CAACA,QAAI;AAdlC;AAcqC,kBAAAA,IAAG,SAAH,mBAAS,cAAa,OAAO;AAAA,GAAE;AAClE,MAAI,IAAI;AACN,QAAI,GAAG,SAAS;AACd,YAAM,IAAI,uBAAuB;AAAA,IACnC;AAEA,UAAMC,QAAO,iCAAK,KAAL,EAAS,QAAQ,KAAK;AACnC,UAAM,EAAE,SAAS,GAAG,mBAAmBA,KAAI;AAC3C,UAAM,EAAE,QAAQ;AAAA,MACd,EAAE,QAAQ,KAAK,qDAAqD;AAAA,QAClE,MAAM,OAAO;AAAA,MACf,CAAC;AAAA,IACH;AACA;AAAA,EACF;AACA,QAAM,OAAO;AAAA,IACX,KAAK,EAAE,QAAQ,QAAQ;AAAA,IACvB,MAAM;AAAA,IACN,MAAM,oBAAI,KAAK;AAAA,IACf,QAAQ;AAAA,IACR,MAAM;AAAA,MACJ,UAAU,OAAO;AAAA,MACjB,YAAY,OAAO;AAAA,IACrB;AAAA,EACF;AACA,QAAM,EAAE,SAAS,GAAG,mBAAmB,IAAI;AAC3C,QAAM,EAAE,QAAQ;AAAA,IACd,EAAE,QAAQ,KAAK,qDAAqD;AAAA,MAClE,MAAM,OAAO;AAAA,IACf,CAAC;AAAA,EACH;AACF;","names":["it","data"]}
|
@@ -41,18 +41,18 @@ var subscribe_default = () => new CommandBuilder().setName("subscribe").addAlias
|
|
41
41
|
}
|
42
42
|
let text = c.session.text("commands.bsbot.subscribe.info.header") + "\n";
|
43
43
|
for (const row of rows) {
|
44
|
-
if (row.
|
44
|
+
if (row.subscription.type.startsWith("group")) {
|
45
45
|
text += c.session.text(
|
46
46
|
"commands.bsbot.subscribe.info.group-body-item",
|
47
47
|
{
|
48
|
-
type: row.
|
48
|
+
type: row.subscription.type + `(${(_a = row.subscription.data) == null ? void 0 : _a.mapperName} ${(_b = row.subscription.data) == null ? void 0 : _b.mapperId})`
|
49
49
|
}
|
50
50
|
);
|
51
51
|
} else {
|
52
52
|
text += c.session.text("commands.bsbot.subscribe.info.body-item", {
|
53
|
-
type: row.
|
53
|
+
type: row.subscription.type,
|
54
54
|
cnt: row.memberCount,
|
55
|
-
enable: row.
|
55
|
+
enable: row.subscription.enabled
|
56
56
|
});
|
57
57
|
if (row.me) {
|
58
58
|
text += c.session.text(
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/cmd/subscribe/index.ts"],"sourcesContent":["import {CommandBuilder} from \"@/interface\";\nimport { beatleader } from './beatleader'\nimport { beatsaver } from './beatsaver'\nimport { NoneSubscriptionExistError } from '@/services/errors'\nimport { idBeatsaverMapper } from './id-beatsaver-mapper'\n\nexport default () =>\n new CommandBuilder()\n .setName('subscribe')\n .addAlias('bbsub')\n .addAlias('/subbl', { options: { type: 'beatleader' } })\n .addAlias('/subbs', { options: { type: 'beatsaver' } })\n .addAlias('blsub', { options: { type: 'beatleader' } })\n .addAlias('bssub', { options: { type: 'beatsaver' } })\n .addAlias('subbl', { options: { type: 'beatleader' } })\n .addAlias('subbs', { options: { type: 'beatsaver' } })\n .addAlias('subbl', { options: { type: 'beatleader' } })\n .addAlias('submapper', { options: { type: 'bsmapper' } })\n .addOption('type', 'type:string')\n .setDescription('clear an auth account relate info')\n .setExecutor(async (c) => {\n // check admin permission\n // if (options.type === 'beatsaver-alert') {\n // return alert(c)\n // }\n\n if (c.options.type === 'beatsaver') {\n if (c.input) return idBeatsaverMapper(c)\n return beatsaver(c)\n }\n\n if (c.options.type === 'beatleader') {\n return beatleader(c)\n }\n\n // return subscription info\n const rows = await c.services.db.getSubscriptionInfoByUGID(\n c.session.channel.id,\n c.session.user.id\n )\n\n if (rows.length < 1) {\n throw new NoneSubscriptionExistError()\n }\n let text = c.session.text('commands.bsbot.subscribe.info.header') + '\\n'\n for (const row of rows) {\n if (row.
|
1
|
+
{"version":3,"sources":["../../../../src/cmd/subscribe/index.ts"],"sourcesContent":["import {CommandBuilder} from \"@/interface\";\nimport { beatleader } from './beatleader'\nimport { beatsaver } from './beatsaver'\nimport { NoneSubscriptionExistError } from '@/services/errors'\nimport { idBeatsaverMapper } from './id-beatsaver-mapper'\n\nexport default () =>\n new CommandBuilder()\n .setName('subscribe')\n .addAlias('bbsub')\n .addAlias('/subbl', { options: { type: 'beatleader' } })\n .addAlias('/subbs', { options: { type: 'beatsaver' } })\n .addAlias('blsub', { options: { type: 'beatleader' } })\n .addAlias('bssub', { options: { type: 'beatsaver' } })\n .addAlias('subbl', { options: { type: 'beatleader' } })\n .addAlias('subbs', { options: { type: 'beatsaver' } })\n .addAlias('subbl', { options: { type: 'beatleader' } })\n .addAlias('submapper', { options: { type: 'bsmapper' } })\n .addOption('type', 'type:string')\n .setDescription('clear an auth account relate info')\n .setExecutor(async (c) => {\n // check admin permission\n // if (options.type === 'beatsaver-alert') {\n // return alert(c)\n // }\n\n if (c.options.type === 'beatsaver') {\n if (c.input) return idBeatsaverMapper(c)\n return beatsaver(c)\n }\n\n if (c.options.type === 'beatleader') {\n return beatleader(c)\n }\n\n // return subscription info\n const rows = await c.services.db.getSubscriptionInfoByUGID(\n c.session.channel.id,\n c.session.user.id\n )\n\n if (rows.length < 1) {\n throw new NoneSubscriptionExistError()\n }\n let text = c.session.text('commands.bsbot.subscribe.info.header') + '\\n'\n for (const row of rows) {\n if (row.subscription.type.startsWith('group')) {\n text += c.session.text(\n 'commands.bsbot.subscribe.info.group-body-item',\n {\n type:\n row.subscription.type +\n `(${row.subscription.data?.mapperName} ${row.subscription.data?.mapperId})`,\n }\n )\n } else {\n text += c.session.text('commands.bsbot.subscribe.info.body-item', {\n type: row.subscription.type,\n cnt: row.memberCount,\n enable: row.subscription.enabled,\n })\n if (row.me) {\n text += c.session.text(\n 'commands.bsbot.subscribe.info.body-item-include-you'\n )\n }\n }\n\n text += '\\n\\n'\n }\n await c.session.sendQuote(text)\n })\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,SAAQ,sBAAqB;AAC7B,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAC1B,SAAS,kCAAkC;AAC3C,SAAS,yBAAyB;AAElC,IAAO,oBAAQ,MACb,IAAI,eAAe,EAChB,QAAQ,WAAW,EACnB,SAAS,OAAO,EAChB,SAAS,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,EAAE,CAAC,EACtD,SAAS,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,EAAE,CAAC,EACrD,SAAS,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,EAAE,CAAC,EACrD,SAAS,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,EAAE,CAAC,EACpD,SAAS,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,EAAE,CAAC,EACrD,SAAS,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,EAAE,CAAC,EACpD,SAAS,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,EAAE,CAAC,EACrD,SAAS,aAAa,EAAE,SAAS,EAAE,MAAM,WAAW,EAAE,CAAC,EACvD,UAAU,QAAQ,aAAa,EAC/B,eAAe,mCAAmC,EAClD,YAAY,CAAO,MAAM;AApB9B;AA0BM,MAAI,EAAE,QAAQ,SAAS,aAAa;AAClC,QAAI,EAAE,MAAO,QAAO,kBAAkB,CAAC;AACvC,WAAO,UAAU,CAAC;AAAA,EACpB;AAEA,MAAI,EAAE,QAAQ,SAAS,cAAc;AACnC,WAAO,WAAW,CAAC;AAAA,EACrB;AAGA,QAAM,OAAO,MAAM,EAAE,SAAS,GAAG;AAAA,IAC/B,EAAE,QAAQ,QAAQ;AAAA,IAClB,EAAE,QAAQ,KAAK;AAAA,EACjB;AAEA,MAAI,KAAK,SAAS,GAAG;AACnB,UAAM,IAAI,2BAA2B;AAAA,EACvC;AACA,MAAI,OAAO,EAAE,QAAQ,KAAK,sCAAsC,IAAI;AACpE,aAAW,OAAO,MAAM;AACtB,QAAI,IAAI,aAAa,KAAK,WAAW,OAAO,GAAG;AAC7C,cAAQ,EAAE,QAAQ;AAAA,QAChB;AAAA,QACA;AAAA,UACE,MACE,IAAI,aAAa,OACjB,KAAI,SAAI,aAAa,SAAjB,mBAAuB,UAAU,KAAI,SAAI,aAAa,SAAjB,mBAAuB,QAAQ;AAAA,QAC5E;AAAA,MACF;AAAA,IACF,OAAO;AACL,cAAQ,EAAE,QAAQ,KAAK,2CAA2C;AAAA,QAChE,MAAM,IAAI,aAAa;AAAA,QACvB,KAAK,IAAI;AAAA,QACT,QAAQ,IAAI,aAAa;AAAA,MAC3B,CAAC;AACD,UAAI,IAAI,IAAI;AACV,gBAAQ,EAAE,QAAQ;AAAA,UAChB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,YAAQ;AAAA,EACV;AACA,QAAM,EAAE,QAAQ,UAAU,IAAI;AAChC,EAAC;","names":[]}
|
@@ -25,7 +25,7 @@ var subleave_default = () => new CommandBuilder().setName("subleave").addAlias("
|
|
25
25
|
c.session.user.id
|
26
26
|
);
|
27
27
|
if (c.options.type === "beatleader") {
|
28
|
-
const blSub = subs.find((it) => it.
|
28
|
+
const blSub = subs.find((it) => it.subscription.type == "beatleader-score");
|
29
29
|
if (!(blSub == null ? void 0 : blSub.me)) {
|
30
30
|
return c.session.sendQuote(
|
31
31
|
c.session.text(
|
@@ -34,14 +34,14 @@ var subleave_default = () => new CommandBuilder().setName("subleave").addAlias("
|
|
34
34
|
);
|
35
35
|
}
|
36
36
|
yield c.services.db.removeFromSubGroupBySubAndUid(
|
37
|
-
blSub.
|
37
|
+
blSub.subscription.id,
|
38
38
|
c.session.user.id
|
39
39
|
);
|
40
40
|
yield c.session.sendQuote(
|
41
41
|
c.session.text("commands.bsbot.subscribe.leave.success.beatleader")
|
42
42
|
);
|
43
43
|
} else if (c.options.type === "beatsaver") {
|
44
|
-
const bsSub = subs.find((it) => it.
|
44
|
+
const bsSub = subs.find((it) => it.subscription.type == "beatsaver-map");
|
45
45
|
if (!(bsSub == null ? void 0 : bsSub.me)) {
|
46
46
|
yield c.session.sendQuote(
|
47
47
|
c.session.text("commands.bsbot.subscribe.leave.not-exist.beatsaver")
|
@@ -49,7 +49,7 @@ var subleave_default = () => new CommandBuilder().setName("subleave").addAlias("
|
|
49
49
|
return;
|
50
50
|
}
|
51
51
|
yield c.services.db.removeFromSubGroupBySubAndUid(
|
52
|
-
bsSub.
|
52
|
+
bsSub.subscription.id,
|
53
53
|
c.session.user.id
|
54
54
|
);
|
55
55
|
yield c.session.sendQuote(
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/cmd/subscribe/subleave.ts"],"sourcesContent":["import {CommandBuilder} from \"@/interface\";\n\nexport default () =>\n new CommandBuilder()\n .setName('subleave')\n .addAlias('bbleave')\n .addAlias('/leavebl', { options: { type: 'beatleader' } })\n .addAlias('/leavebs', { options: { type: 'beatsaver' } })\n .addAlias('leavebl', { options: { type: 'beatleader' } })\n .addAlias('leavebs', { options: { type: 'beatsaver' } })\n .addOption('type', 'type:string')\n .setDescription('')\n .setExecutor(async (c) => {\n // getUserJoinedGroupMember\n const subs = await c.services.db.getSubscriptionInfoByUGID(\n c.session.channel.id,\n c.session.user.id\n )\n if (c.options.type === 'beatleader') {\n const blSub = subs.find((it) => it.
|
1
|
+
{"version":3,"sources":["../../../../src/cmd/subscribe/subleave.ts"],"sourcesContent":["import {CommandBuilder} from \"@/interface\";\n\nexport default () =>\n new CommandBuilder()\n .setName('subleave')\n .addAlias('bbleave')\n .addAlias('/leavebl', { options: { type: 'beatleader' } })\n .addAlias('/leavebs', { options: { type: 'beatsaver' } })\n .addAlias('leavebl', { options: { type: 'beatleader' } })\n .addAlias('leavebs', { options: { type: 'beatsaver' } })\n .addOption('type', 'type:string')\n .setDescription('')\n .setExecutor(async (c) => {\n // getUserJoinedGroupMember\n const subs = await c.services.db.getSubscriptionInfoByUGID(\n c.session.channel.id,\n c.session.user.id\n )\n if (c.options.type === 'beatleader') {\n const blSub = subs.find((it) => it.subscription.type == 'beatleader-score')\n if (!blSub?.me) {\n return c.session.sendQuote(\n c.session.text(\n 'commands.bsbot.subscribe.leave.not-exist.beatleader'\n )\n )\n }\n await c.services.db.removeFromSubGroupBySubAndUid(\n blSub.subscription.id,\n c.session.user.id\n )\n await c.session.sendQuote(\n c.session.text('commands.bsbot.subscribe.leave.success.beatleader')\n )\n } else if (c.options.type === 'beatsaver') {\n const bsSub = subs.find((it) => it.subscription.type == 'beatsaver-map')\n if (!bsSub?.me) {\n await c.session.sendQuote(\n c.session.text('commands.bsbot.subscribe.leave.not-exist.beatsaver')\n )\n return\n }\n\n await c.services.db.removeFromSubGroupBySubAndUid(\n bsSub.subscription.id,\n c.session.user.id\n )\n await c.session.sendQuote(\n c.session.text('commands.bsbot.subscribe.leave.success.beatsaver')\n )\n }\n })\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,SAAQ,sBAAqB;AAE7B,IAAO,mBAAQ,MACb,IAAI,eAAe,EAChB,QAAQ,UAAU,EAClB,SAAS,SAAS,EAClB,SAAS,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,EAAE,CAAC,EACxD,SAAS,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,EAAE,CAAC,EACvD,SAAS,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,EAAE,CAAC,EACvD,SAAS,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,EAAE,CAAC,EACtD,UAAU,QAAQ,aAAa,EAC/B,eAAe,EAAE,EACjB,YAAY,CAAO,MAAM;AAExB,QAAM,OAAO,MAAM,EAAE,SAAS,GAAG;AAAA,IAC/B,EAAE,QAAQ,QAAQ;AAAA,IAClB,EAAE,QAAQ,KAAK;AAAA,EACjB;AACA,MAAI,EAAE,QAAQ,SAAS,cAAc;AACnC,UAAM,QAAQ,KAAK,KAAK,CAAC,OAAO,GAAG,aAAa,QAAQ,kBAAkB;AAC1E,QAAI,EAAC,+BAAO,KAAI;AACd,aAAO,EAAE,QAAQ;AAAA,QACf,EAAE,QAAQ;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,IACF;AACA,UAAM,EAAE,SAAS,GAAG;AAAA,MAClB,MAAM,aAAa;AAAA,MACnB,EAAE,QAAQ,KAAK;AAAA,IACjB;AACA,UAAM,EAAE,QAAQ;AAAA,MACd,EAAE,QAAQ,KAAK,mDAAmD;AAAA,IACpE;AAAA,EACF,WAAW,EAAE,QAAQ,SAAS,aAAa;AACzC,UAAM,QAAQ,KAAK,KAAK,CAAC,OAAO,GAAG,aAAa,QAAQ,eAAe;AACvE,QAAI,EAAC,+BAAO,KAAI;AACd,YAAM,EAAE,QAAQ;AAAA,QACd,EAAE,QAAQ,KAAK,oDAAoD;AAAA,MACrE;AACA;AAAA,IACF;AAEA,UAAM,EAAE,SAAS,GAAG;AAAA,MAClB,MAAM,aAAa;AAAA,MACnB,EAAE,QAAQ,KAAK;AAAA,IACjB;AACA,UAAM,EAAE,QAAQ;AAAA,MACd,EAAE,QAAQ,KAAK,kDAAkD;AAAA,IACnE;AAAA,EACF;AACF,EAAC;","names":[]}
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "beatsaber-bot-core",
|
3
3
|
"description": "Beatsaber bot",
|
4
|
-
"version": "0.3.0-rc.
|
4
|
+
"version": "0.3.0-rc.3",
|
5
5
|
"files": [
|
6
6
|
"dist"
|
7
7
|
],
|
@@ -56,6 +56,7 @@
|
|
56
56
|
"access": "public"
|
57
57
|
},
|
58
58
|
"dependencies": {
|
59
|
+
"typeid-js": "1.2.0",
|
59
60
|
"@aws-sdk/client-s3": "^3.840.0",
|
60
61
|
"@ktfun/styled-qr-code-node": "^1.6.5",
|
61
62
|
"chart.js": "^4.5.0",
|