beatsaber-bot-core 0.2.0-dev.8 → 0.2.0-rc.1

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.
Files changed (211) hide show
  1. package/lib/api/base/aioclient.d.ts +11 -0
  2. package/lib/api/base/aioclient.js +20 -0
  3. package/lib/api/base/aioclient.js.map +1 -0
  4. package/lib/api/base/blclient.d.ts +18 -0
  5. package/lib/api/base/blclient.js +60 -0
  6. package/lib/api/base/blclient.js.map +1 -0
  7. package/lib/api/base/bsclient.d.ts +17 -0
  8. package/lib/api/base/bsclient.js +75 -0
  9. package/lib/api/base/bsclient.js.map +1 -0
  10. package/lib/api/base/index.d.ts +4 -12
  11. package/lib/api/base/index.js +4 -4
  12. package/lib/api/base/index.js.map +1 -1
  13. package/lib/api/base/scRequest.d.ts +2 -0
  14. package/lib/api/base/scRequest.js +28 -13
  15. package/lib/api/base/scRequest.js.map +1 -1
  16. package/lib/api/base/ssclient.d.ts +13 -0
  17. package/lib/api/base/ssclient.js +48 -0
  18. package/lib/api/base/ssclient.js.map +1 -0
  19. package/lib/api/composed/beatleader.d.ts +8 -3
  20. package/lib/api/composed/beatleader.js +39 -5
  21. package/lib/api/composed/beatleader.js.map +1 -1
  22. package/lib/api/composed/beatsaver.d.ts +2 -3
  23. package/lib/api/composed/beatsaver.js +2 -1
  24. package/lib/api/composed/beatsaver.js.map +1 -1
  25. package/lib/api/composed/scoresaber.js +5 -1
  26. package/lib/api/composed/scoresaber.js.map +1 -1
  27. package/lib/api/error.d.ts +9 -0
  28. package/lib/api/error.js +27 -0
  29. package/lib/api/error.js.map +1 -0
  30. package/lib/api/helper.d.ts +19 -0
  31. package/lib/api/helper.js +102 -0
  32. package/lib/api/helper.js.map +1 -0
  33. package/lib/api/index.d.ts +6 -23
  34. package/lib/api/index.js +22 -113
  35. package/lib/api/index.js.map +1 -1
  36. package/lib/api/interfaces/beatsaver/bsmap.d.ts +2 -0
  37. package/lib/api/interfaces/beatsaver/index.d.ts +2 -1
  38. package/lib/api/interfaces/index.d.ts +12 -0
  39. package/lib/api/interfaces/index.js +3 -0
  40. package/lib/api/interfaces/index.js.map +1 -0
  41. package/lib/api/interfaces/scoresaber/item.d.ts +12 -3
  42. package/lib/api/interfaces/scoresaber/leaderboard.d.ts +10 -0
  43. package/lib/api/interfaces/scoresaber/leaderboard.js +3 -0
  44. package/lib/api/interfaces/scoresaber/leaderboard.js.map +1 -0
  45. package/lib/cmd/bind/bind-beatleader.js +15 -17
  46. package/lib/cmd/bind/bind-beatleader.js.map +1 -1
  47. package/lib/cmd/bind/bind-beatsaver.js +27 -21
  48. package/lib/cmd/bind/bind-beatsaver.js.map +1 -1
  49. package/lib/cmd/bind/bind-id-beatleader.js +8 -10
  50. package/lib/cmd/bind/bind-id-beatleader.js.map +1 -1
  51. package/lib/cmd/bind/bind-id-beatsaver.js +8 -10
  52. package/lib/cmd/bind/bind-id-beatsaver.js.map +1 -1
  53. package/lib/cmd/bind/bind-scoresaber.js +7 -9
  54. package/lib/cmd/bind/bind-scoresaber.js.map +1 -1
  55. package/lib/cmd/bind/index.js +6 -3
  56. package/lib/cmd/bind/index.js.map +1 -1
  57. package/lib/cmd/bsmap/id-search.js +5 -6
  58. package/lib/cmd/bsmap/id-search.js.map +1 -1
  59. package/lib/cmd/bsmap/key-search.js +10 -10
  60. package/lib/cmd/bsmap/key-search.js.map +1 -1
  61. package/lib/cmd/bsmap/latest.js +13 -19
  62. package/lib/cmd/bsmap/latest.js.map +1 -1
  63. package/lib/cmd/config/index.d.ts +12 -0
  64. package/lib/cmd/config/index.js +70 -0
  65. package/lib/cmd/config/index.js.map +1 -0
  66. package/lib/cmd/deprecated/me.d.ts +1 -1
  67. package/lib/cmd/deprecated/me.js +6 -6
  68. package/lib/cmd/deprecated/me.js.map +1 -1
  69. package/lib/cmd/deprecated/tmp.js +2 -0
  70. package/lib/cmd/deprecated/tmp.js.map +1 -1
  71. package/lib/cmd/deprecated/whois.js +2 -2
  72. package/lib/cmd/deprecated/whois.js.map +1 -1
  73. package/lib/cmd/help.js +2 -2
  74. package/lib/cmd/index.js +3 -1
  75. package/lib/cmd/index.js.map +1 -1
  76. package/lib/cmd/rank.js +12 -18
  77. package/lib/cmd/rank.js.map +1 -1
  78. package/lib/cmd/score.d.ts +1 -1
  79. package/lib/cmd/score.js +20 -12
  80. package/lib/cmd/score.js.map +1 -1
  81. package/lib/cmd/subscribe/group-beatleader-score.d.ts +2 -0
  82. package/lib/cmd/subscribe/group-beatleader-score.js +41 -0
  83. package/lib/cmd/subscribe/group-beatleader-score.js.map +1 -0
  84. package/lib/cmd/subscribe/group-beatsaver-mapper.d.ts +2 -0
  85. package/lib/cmd/subscribe/group-beatsaver-mapper.js +42 -0
  86. package/lib/cmd/subscribe/group-beatsaver-mapper.js.map +1 -0
  87. package/lib/cmd/subscribe/id-beatleader-score.d.ts +2 -0
  88. package/lib/cmd/subscribe/id-beatleader-score.js +41 -0
  89. package/lib/cmd/subscribe/id-beatleader-score.js.map +1 -0
  90. package/lib/cmd/subscribe/id-beatsaver-mapper.d.ts +2 -0
  91. package/lib/cmd/subscribe/id-beatsaver-mapper.js +42 -0
  92. package/lib/cmd/subscribe/id-beatsaver-mapper.js.map +1 -0
  93. package/lib/cmd/subscribe/index.js +22 -6
  94. package/lib/cmd/subscribe/index.js.map +1 -1
  95. package/lib/cmd/subscribe/unsubscribe.d.ts +4 -3
  96. package/lib/cmd/subscribe/unsubscribe.js +38 -0
  97. package/lib/cmd/subscribe/unsubscribe.js.map +1 -1
  98. package/lib/config.d.ts +21 -4
  99. package/lib/errors/index.d.ts +30 -0
  100. package/lib/errors/index.js +94 -1
  101. package/lib/errors/index.js.map +1 -1
  102. package/lib/i18n/index.js +17 -11
  103. package/lib/i18n/index.js.map +1 -1
  104. package/lib/i18n/parser.d.ts +14 -0
  105. package/lib/i18n/parser.js +165 -0
  106. package/lib/i18n/parser.js.map +1 -0
  107. package/lib/i18n/zh-cn.json +1 -1
  108. package/lib/img-render/components/RankDifficulty.d.ts +6 -0
  109. package/lib/img-render/components/RankDifficulty.js +17 -0
  110. package/lib/img-render/components/RankDifficulty.js.map +1 -0
  111. package/lib/img-render/components/base/avatar.d.ts +7 -0
  112. package/lib/img-render/components/base/avatar.js +11 -0
  113. package/lib/img-render/components/base/avatar.js.map +1 -1
  114. package/lib/img-render/components/bl-rank-score-item.d.ts +18 -0
  115. package/lib/img-render/components/bl-rank-score-item.js +42 -0
  116. package/lib/img-render/components/bl-rank-score-item.js.map +1 -0
  117. package/lib/img-render/components/bl-score-item.d.ts +6 -0
  118. package/lib/img-render/components/bl-score-item.js +14 -0
  119. package/lib/img-render/components/bl-score-item.js.map +1 -0
  120. package/lib/img-render/components/blScoreItem.js +2 -2
  121. package/lib/img-render/components/blScoreItem.js.map +1 -1
  122. package/lib/img-render/components/rankScoreItem.d.ts +18 -0
  123. package/lib/img-render/components/rankScoreItem.js +42 -0
  124. package/lib/img-render/components/rankScoreItem.js.map +1 -0
  125. package/lib/img-render/components/scoregraph.d.ts +3 -1
  126. package/lib/img-render/components/scoregraph.js +5 -4
  127. package/lib/img-render/components/scoregraph.js.map +1 -1
  128. package/lib/img-render/components/ss-rank-score-item.d.ts +18 -0
  129. package/lib/img-render/components/ss-rank-score-item.js +42 -0
  130. package/lib/img-render/components/ss-rank-score-item.js.map +1 -0
  131. package/lib/img-render/components/ss-score-item.d.ts +4 -0
  132. package/lib/img-render/components/ss-score-item.js +14 -0
  133. package/lib/img-render/components/ss-score-item.js.map +1 -0
  134. package/lib/img-render/components/ssScoreItem.js +1 -1
  135. package/lib/img-render/components/ssScoreItem.js.map +1 -1
  136. package/lib/img-render/index.d.ts +13 -10
  137. package/lib/img-render/index.js +61 -34
  138. package/lib/img-render/index.js.map +1 -1
  139. package/lib/img-render/interfaces.d.ts +2 -0
  140. package/lib/img-render/render.js +26 -1
  141. package/lib/img-render/render.js.map +1 -1
  142. package/lib/img-render/result/bl-player.d.ts +2 -1
  143. package/lib/img-render/result/bl-player.js +7 -4
  144. package/lib/img-render/result/bl-player.js.map +1 -1
  145. package/lib/img-render/result/bl-score-with-rank.d.ts +14 -0
  146. package/lib/img-render/result/bl-score-with-rank.js +33 -0
  147. package/lib/img-render/result/bl-score-with-rank.js.map +1 -0
  148. package/lib/img-render/result/bl-score.js +1 -1
  149. package/lib/img-render/result/bl-score.js.map +1 -1
  150. package/lib/img-render/result/bs-score-with-rank.d.ts +13 -0
  151. package/lib/img-render/result/bs-score-with-rank.js +33 -0
  152. package/lib/img-render/result/bs-score-with-rank.js.map +1 -0
  153. package/lib/img-render/result/index.d.ts +3 -2
  154. package/lib/img-render/result/index.js +10 -5
  155. package/lib/img-render/result/index.js.map +1 -1
  156. package/lib/img-render/result/ss-player.d.ts +2 -1
  157. package/lib/img-render/result/ss-player.js +3 -4
  158. package/lib/img-render/result/ss-player.js.map +1 -1
  159. package/lib/img-render/result/ss-score-with-rank.d.ts +0 -0
  160. package/lib/img-render/result/ss-score-with-rank.js +277 -0
  161. package/lib/img-render/result/ss-score-with-rank.js.map +1 -0
  162. package/lib/img-render/utils/canvas.js +9 -3
  163. package/lib/img-render/utils/canvas.js.map +1 -1
  164. package/lib/img-render/utils/format.d.ts +3 -0
  165. package/lib/img-render/utils/format.js +25 -1
  166. package/lib/img-render/utils/format.js.map +1 -1
  167. package/lib/img-render/utils/index.d.ts +1 -1
  168. package/lib/img-render/utils/index.js +1 -1
  169. package/lib/img-render/utils/index.js.map +1 -1
  170. package/lib/img-render/utils/qrcode.js +8 -1
  171. package/lib/img-render/utils/qrcode.js.map +1 -1
  172. package/lib/interface/cmd.d.ts +3 -0
  173. package/lib/interface/db/index.d.ts +7 -0
  174. package/lib/interface/db/models.d.ts +5 -0
  175. package/lib/interface/render.d.ts +7 -5
  176. package/lib/schedules/index.d.ts +6 -2
  177. package/lib/schedules/index.js +9 -2
  178. package/lib/schedules/index.js.map +1 -1
  179. package/lib/schedules/interface.d.ts +2 -1
  180. package/lib/schedules/oauthTokenRefreshTask.js +8 -8
  181. package/lib/schedules/oauthTokenRefreshTask.js.map +1 -1
  182. package/lib/schedules/temp.d.ts +2 -1
  183. package/lib/schedules/temp.js +20 -25
  184. package/lib/schedules/temp.js.map +1 -1
  185. package/lib/utils/cache.d.ts +2 -1
  186. package/lib/utils/cache.js +4 -4
  187. package/lib/utils/cache.js.map +1 -1
  188. package/lib/utils/fetch/error.d.ts +9 -0
  189. package/lib/utils/fetch/error.js +27 -0
  190. package/lib/utils/fetch/error.js.map +1 -0
  191. package/lib/utils/fetch/index.d.ts +4 -0
  192. package/lib/utils/fetch/index.js +34 -0
  193. package/lib/utils/fetch/index.js.map +1 -0
  194. package/lib/utils/fetch/ofetch.d.ts +23 -0
  195. package/lib/utils/fetch/ofetch.js +85 -0
  196. package/lib/utils/fetch/ofetch.js.map +1 -0
  197. package/lib/utils/index.d.ts +3 -0
  198. package/lib/utils/index.js +4 -1
  199. package/lib/utils/index.js.map +1 -1
  200. package/lib/utils/preference.d.ts +35 -0
  201. package/lib/utils/preference.js +115 -0
  202. package/lib/utils/preference.js.map +1 -0
  203. package/lib/utils/puppeteer.d.ts +23 -0
  204. package/lib/utils/puppeteer.js +92 -0
  205. package/lib/utils/puppeteer.js.map +1 -0
  206. package/lib/utils/s3.d.ts +11 -0
  207. package/lib/utils/s3.js +60 -0
  208. package/lib/utils/s3.js.map +1 -0
  209. package/lib/ws/beatsaver.js +16 -2
  210. package/lib/ws/beatsaver.js.map +1 -1
  211. package/package.json +12 -4
package/lib/cmd/rank.js CHANGED
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const builder_1 = require("../cmd/builder");
4
4
  const interface_1 = require("../interface");
5
+ const errors_1 = require("../errors");
5
6
  exports.default = () => new builder_1.CommandBuilder()
6
7
  .setName('rank')
7
8
  .addOption('p', 'platform:string')
@@ -20,36 +21,29 @@ exports.default = () => new builder_1.CommandBuilder()
20
21
  .addAlias('irankss', { options: { p: 'ss' } })
21
22
  .addAlias('irankbl', { options: { p: 'bl' } })
22
23
  .setExecutor(async (c) => {
23
- const platform = c.options.p == 'ss' ? interface_1.Platform.SS : interface_1.Platform.BL;
24
24
  // who,没有即是自己,有mention 就是mention,有非空 input 就视为 id 查询
25
25
  // steamid
26
26
  // let accountId = c.input
27
27
  // @someone
28
28
  let uid = c.session.u.id;
29
+ let preference = c.userPreference;
29
30
  if (c.session.mentions && c.session.mentions.length > 0) {
30
31
  uid = c.session.mentions[0].id;
32
+ preference = await c.userPreference.getUserPreference(uid);
31
33
  }
32
34
  const { blAccount, ssAccount } = await c.db.getUserAccountsByUid(uid);
33
- let accountId = interface_1.Platform.BL && blAccount.platformUid;
34
- if (!accountId) {
35
- accountId = interface_1.Platform.SS && ssAccount.platformUid;
36
- }
37
- if (!accountId && !c.input) {
38
- // c.session.sendQuote(c.session.text('commands.bsbot.me.not-found'))
39
- throw Error(`Unknown user ID: ${uid}`);
35
+ let accountId = interface_1.Platform.BL && blAccount?.platformUid;
36
+ if (c.input) {
37
+ accountId = c.input;
40
38
  }
41
39
  else if (!accountId) {
42
- accountId = c.input;
40
+ accountId = interface_1.Platform.SS && ssAccount?.platformUid;
41
+ }
42
+ if (!accountId && !c.input) {
43
+ throw new errors_1.UnknownUserIDError();
43
44
  }
44
- // const onStartRender = () => {
45
- // c.session.send(
46
- // c.session.text('common.render.wait', {
47
- // sec: c.config.rankWaitTimeout / 1000,
48
- // })
49
- // )
50
- // }
51
45
  const rankPlatform = c.options.p == 'ss' ? interface_1.Platform.SS : interface_1.Platform.BL;
52
- const img = await c.render.renderRank(accountId, rankPlatform);
53
- await c.session.sendQueued(img);
46
+ const img = await c.render.renderRank(accountId, rankPlatform, preference);
47
+ await c.session.sendImgBuffer(img);
54
48
  });
55
49
  //# sourceMappingURL=rank.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rank.js","sourceRoot":"","sources":["../../src/cmd/rank.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rank.js","sourceRoot":"","sources":["../../src/cmd/rank.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,8 @@ declare const _default: () => {
5
5
  options: import("../interface").CmdOption[];
6
6
  callback: (c: import("../interface").CmdContext<unknown, {
7
7
  d?: string;
8
- m?: string;
9
8
  p?: string;
9
+ m?: string;
10
10
  }>) => Promise<void>;
11
11
  children: any[];
12
12
  };
package/lib/cmd/score.js CHANGED
@@ -4,23 +4,25 @@ const builder_1 = require("../cmd/builder");
4
4
  const interface_1 = require("../interface");
5
5
  const utils_1 = require("../utils");
6
6
  const errors_1 = require("../errors");
7
+ const error_1 = require("../utils/fetch/error");
7
8
  exports.default = () => new builder_1.CommandBuilder()
8
9
  .setName('score') // <uid:text>
9
10
  .addOption('p', 'platform:string')
10
- .addOption('d', 'diffculty:string')
11
+ .addOption('d', 'difficulty:string')
11
12
  .addOption('m', 'mode:string')
12
13
  .addAlias('bbscore')
13
14
  .addAlias('/score')
14
15
  .setExecutor(async (c) => {
15
- // who? 没有即是自己,有mention 就是 mention
16
16
  let uid = c.session.u.id;
17
+ let preference = c.userPreference;
17
18
  if (c.session.mentions && c.session.mentions.length > 0) {
18
19
  uid = c.session.mentions[0].id;
20
+ preference = await c.userPreference.getUserPreference(uid);
19
21
  }
20
22
  const { blAccount, ssAccount } = await c.db.getUserAccountsByUid(uid);
21
- let accountId = interface_1.Platform.BL && blAccount.platformUid;
22
- accountId ||= interface_1.Platform.SS && ssAccount.platformUid;
23
- if (!accountId) {
23
+ let account = interface_1.Platform.BL && blAccount;
24
+ account ||= interface_1.Platform.SS && ssAccount;
25
+ if (!account) {
24
26
  throw new errors_1.AccountBindingNotFoundError();
25
27
  }
26
28
  let diffOption;
@@ -30,14 +32,20 @@ exports.default = () => new builder_1.CommandBuilder()
30
32
  mode: c.options.m,
31
33
  };
32
34
  }
33
- // 从 input 中提取出 mapId
34
35
  const mapId = c.input;
35
- const score = await c.api.BeatLeader.wrapperResult().getScoreByPlayerIdAndMapId(accountId, mapId, diffOption);
36
- if (!score.isSuccess()) {
37
- throw new errors_1.ScoreNotFoundError({ user: accountId, id: mapId });
38
- }
36
+ const score = await c.api.BeatLeader.getScoreByPlayerIdAndMapId(account.platformUid, mapId, diffOption).catch((e) => {
37
+ if (e instanceof error_1.NotFoundError) {
38
+ throw new errors_1.ScoreNotFoundError({
39
+ user: account.platformUname,
40
+ id: mapId,
41
+ diff: diffOption?.difficulty,
42
+ mode: c.options.m,
43
+ });
44
+ }
45
+ throw e;
46
+ });
39
47
  const platform = c.options.p == 'ss' ? interface_1.Platform.SS : interface_1.Platform.BL;
40
- const img = await c.render.renderScore(score.data.id.toString(), platform);
41
- await c.session.sendQueued(img);
48
+ const img = await c.render.renderScore(score.id?.toString(), platform, preference);
49
+ await c.session.sendImgBuffer(img);
42
50
  });
43
51
  //# sourceMappingURL=score.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"score.js","sourceRoot":"","sources":["../../src/cmd/score.ts"],"names":[],"mappings":";;AAAA,2CAA8C;AAC9C,2CAAsC;AACtC,mCAAqC;AACrC,qCAA0E;AAC1E,kBAAe,GAAG,EAAE,CAClB,IAAI,wBAAc,EAAE;KACjB,OAAO,CAAC,OAAO,CAAC,CAAC,aAAa;KAC9B,SAAS,CAAC,GAAG,EAAE,iBAAiB,CAAC;KACjC,SAAS,CAAC,GAAG,EAAE,kBAAkB,CAAC;KAClC,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC;KAC7B,QAAQ,CAAC,SAAS,CAAC;KACnB,QAAQ,CAAC,QAAQ,CAAC;KAClB,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;IACvB,kCAAkC;IAClC,IAAI,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;IACxB,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAChC,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAA;IACrE,IAAI,SAAS,GAAG,oBAAQ,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,CAAA;IACpD,SAAS,KAAK,oBAAQ,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,CAAA;IAClD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,oCAA2B,EAAE,CAAA;IACzC,CAAC;IAED,IAAI,UAAU,CAAA;IACd,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAC/B,UAAU,GAAG;YACX,UAAU,EAAE,IAAA,mBAAW,EAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACpC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;SAClB,CAAA;IACH,CAAC;IAED,qBAAqB;IACrB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAA;IAErB,MAAM,KAAK,GACT,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,0BAA0B,CAC/D,SAAS,EACT,KAAK,EACL,UAAU,CACX,CAAA;IACH,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;QACvB,MAAM,IAAI,2BAAkB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;IAC9D,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,oBAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAQ,CAAC,EAAE,CAAA;IAChE,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAA;IAC1E,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;AACjC,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"score.js","sourceRoot":"","sources":["../../src/cmd/score.ts"],"names":[],"mappings":";;AAAA,2CAA8C;AAC9C,2CAAsC;AACtC,mCAAqC;AACrC,qCAIiB;AACjB,+CAAmD;AACnD,kBAAe,GAAG,EAAE,CAClB,IAAI,wBAAc,EAAE;KACjB,OAAO,CAAC,OAAO,CAAC,CAAC,aAAa;KAC9B,SAAS,CAAC,GAAG,EAAE,iBAAiB,CAAC;KACjC,SAAS,CAAC,GAAG,EAAE,mBAAmB,CAAC;KACnC,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC;KAC7B,QAAQ,CAAC,SAAS,CAAC;KACnB,QAAQ,CAAC,QAAQ,CAAC;KAClB,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;IACvB,IAAI,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;IACxB,IAAI,UAAU,GAAG,CAAC,CAAC,cAAc,CAAA;IACjC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAC9B,UAAU,GAAG,MAAM,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;IAC5D,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAA;IACrE,IAAI,OAAO,GAAG,oBAAQ,CAAC,EAAE,IAAI,SAAS,CAAA;IACtC,OAAO,KAAK,oBAAQ,CAAC,EAAE,IAAI,SAAS,CAAA;IACpC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,oCAA2B,EAAE,CAAA;IACzC,CAAC;IAED,IAAI,UAAU,CAAA;IACd,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAC/B,UAAU,GAAG;YACX,UAAU,EAAE,IAAA,mBAAW,EAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACpC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;SAClB,CAAA;IACH,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAA;IACrB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,0BAA0B,CAC7D,OAAO,CAAC,WAAW,EACnB,KAAK,EACL,UAAU,CACX,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACZ,IAAI,CAAC,YAAY,qBAAa,EAAE,CAAC;YAC/B,MAAM,IAAI,2BAAkB,CAAC;gBAC3B,IAAI,EAAE,OAAO,CAAC,aAAa;gBAC3B,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,UAAU,EAAE,UAAU;gBAC5B,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;aAClB,CAAC,CAAA;QACJ,CAAC;QACD,MAAM,CAAC,CAAA;IACT,CAAC,CAAC,CAAA;IACF,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,oBAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAQ,CAAC,EAAE,CAAA;IAChE,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CACpC,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,EACpB,QAAQ,EACR,UAAU,CACX,CAAA;IACD,MAAM,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;AACpC,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { CmdContext } from '../../interface';
2
+ export declare const groupBeatleaderScore: <T, C>(c: CmdContext<T, C>) => Promise<void>;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.groupBeatleaderScore = void 0;
4
+ const errors_1 = require("../../errors");
5
+ const groupBeatleaderScore = async (c) => {
6
+ if (!c.input) {
7
+ return;
8
+ }
9
+ const bluser = await c.api.BeatLeader.getPlayerInfoById(c.input);
10
+ if (!bluser) {
11
+ throw new errors_1.BLIDNotFoundError({ accountId: c.input });
12
+ }
13
+ const subscribes = await c.db.getGroupSubscriptionByGIDAndType(c.session.g.id, 'group-beatleader-score');
14
+ const it = subscribes.find((it) => it.data?.playerId === bluser.id);
15
+ if (it) {
16
+ if (it.enable) {
17
+ throw new errors_1.SubscriptionExistError();
18
+ }
19
+ const data = { ...it, enable: true };
20
+ await c.db.upsertSubscription(data);
21
+ await c.session.sendQuote(c.session.text('commands.bsbot.subscribe.beatsaver-mapper.success', {
22
+ name: bluser.name,
23
+ }));
24
+ return;
25
+ }
26
+ const data = {
27
+ gid: c.session.g.id,
28
+ type: 'group-beatsaver-map',
29
+ time: new Date(),
30
+ enable: true,
31
+ data: {
32
+ playerId: bluser.id,
33
+ },
34
+ };
35
+ await c.db.upsertSubscription(data);
36
+ await c.session.sendQuote(c.session.text('commands.bsbot.subscribe.beatsaver-mapper.success', {
37
+ name: bluser.name,
38
+ }));
39
+ };
40
+ exports.groupBeatleaderScore = groupBeatleaderScore;
41
+ //# sourceMappingURL=group-beatleader-score.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group-beatleader-score.js","sourceRoot":"","sources":["../../../src/cmd/subscribe/group-beatleader-score.ts"],"names":[],"mappings":";;;AACA,qCAAoE;AAE7D,MAAM,oBAAoB,GAAG,KAAK,EAAQ,CAAmB,EAAE,EAAE;IACtE,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACb,OAAM;IACR,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAChE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,0BAAiB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;IACrD,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,gCAAgC,CAC5D,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EACd,wBAAwB,CACzB,CAAA;IACD,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,MAAM,CAAC,EAAE,CAAC,CAAA;IACnE,IAAI,EAAE,EAAE,CAAC;QACP,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;YACd,MAAM,IAAI,+BAAsB,EAAE,CAAA;QACpC,CAAC;QAED,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;QACpC,MAAM,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;QACnC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,CACvB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,mDAAmD,EAAE;YAClE,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC,CACH,CAAA;QACD,OAAM;IACR,CAAC;IACD,MAAM,IAAI,GAAG;QACX,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACnB,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,IAAI,IAAI,EAAE;QAChB,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE;YACJ,QAAQ,EAAE,MAAM,CAAC,EAAE;SACpB;KACF,CAAA;IACD,MAAM,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;IACnC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,CACvB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,mDAAmD,EAAE;QAClE,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAC,CACH,CAAA;AACH,CAAC,CAAA;AA3CY,QAAA,oBAAoB,wBA2ChC"}
@@ -0,0 +1,2 @@
1
+ import { CmdContext } from '../../interface';
2
+ export declare const groupBeatsaverMapper: <T, C>(c: CmdContext<T, C>) => Promise<void>;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.groupBeatsaverMapper = void 0;
4
+ const errors_1 = require("../../errors");
5
+ const groupBeatsaverMapper = async (c) => {
6
+ if (!c.input) {
7
+ return;
8
+ }
9
+ const mapper = await c.api.BeatSaver.getBSMapperById(c.input);
10
+ if (!mapper) {
11
+ throw new errors_1.BSIDNotFoundError({ accountId: c.input });
12
+ }
13
+ const subscribes = await c.db.getGroupSubscriptionByGIDAndType(c.session.g.id, 'group-beatsaver-map');
14
+ const it = subscribes.find((it) => it.data?.mapperId === mapper.id);
15
+ if (it) {
16
+ if (it.enable) {
17
+ throw new errors_1.SubscriptionExistError();
18
+ }
19
+ const data = { ...it, enable: true };
20
+ await c.db.upsertSubscription(data);
21
+ await c.session.sendQuote(c.session.text('commands.bsbot.subscribe.beatsaver-mapper.success', {
22
+ name: mapper.name,
23
+ }));
24
+ return;
25
+ }
26
+ const data = {
27
+ gid: c.session.g.id,
28
+ type: 'group-beatsaver-map',
29
+ time: new Date(),
30
+ enable: true,
31
+ data: {
32
+ mapperId: mapper.id,
33
+ mapperName: mapper.name,
34
+ },
35
+ };
36
+ await c.db.upsertSubscription(data);
37
+ await c.session.sendQuote(c.session.text('commands.bsbot.subscribe.beatsaver-mapper.success', {
38
+ name: mapper.name,
39
+ }));
40
+ };
41
+ exports.groupBeatsaverMapper = groupBeatsaverMapper;
42
+ //# sourceMappingURL=group-beatsaver-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group-beatsaver-mapper.js","sourceRoot":"","sources":["../../../src/cmd/subscribe/group-beatsaver-mapper.ts"],"names":[],"mappings":";;;AACA,qCAAoE;AAC7D,MAAM,oBAAoB,GAAG,KAAK,EAAQ,CAAmB,EAAE,EAAE;IACtE,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACb,OAAM;IACR,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAC7D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,0BAAiB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;IACrD,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,gCAAgC,CAC5D,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EACd,qBAAqB,CACtB,CAAA;IACD,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,MAAM,CAAC,EAAE,CAAC,CAAA;IACnE,IAAI,EAAE,EAAE,CAAC;QACP,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;YACd,MAAM,IAAI,+BAAsB,EAAE,CAAA;QACpC,CAAC;QAED,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;QACpC,MAAM,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;QACnC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,CACvB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,mDAAmD,EAAE;YAClE,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC,CACH,CAAA;QACD,OAAM;IACR,CAAC;IACD,MAAM,IAAI,GAAG;QACX,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACnB,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,IAAI,IAAI,EAAE;QAChB,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE;YACJ,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,UAAU,EAAE,MAAM,CAAC,IAAI;SACxB;KACF,CAAA;IACD,MAAM,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;IACnC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,CACvB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,mDAAmD,EAAE;QAClE,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAC,CACH,CAAA;AACH,CAAC,CAAA;AA5CY,QAAA,oBAAoB,wBA4ChC"}
@@ -0,0 +1,2 @@
1
+ import { CmdContext } from '../../interface';
2
+ export declare const idBeatleaderScore: <T, C>(c: CmdContext<T, C>) => Promise<void>;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.idBeatleaderScore = void 0;
4
+ const errors_1 = require("../../errors");
5
+ const idBeatleaderScore = async (c) => {
6
+ if (!c.input) {
7
+ return;
8
+ }
9
+ const bluser = await c.api.BeatLeader.getPlayerInfoById(c.input);
10
+ if (!bluser) {
11
+ throw new errors_1.BLIDNotFoundError({ accountId: c.input });
12
+ }
13
+ const subscribes = await c.db.getIDSubscriptionByGIDAndType(c.session.g.id, 'id-beatleader-score');
14
+ const it = subscribes.find((it) => it.data?.playerId === bluser.id);
15
+ if (it) {
16
+ if (it.enable) {
17
+ throw new errors_1.SubscriptionExistError();
18
+ }
19
+ const data = { ...it, enable: true };
20
+ await c.db.upsertSubscription(data);
21
+ await c.session.sendQuote(c.session.text('commands.bsbot.subscribe.beatsaver-mapper.success', {
22
+ name: bluser.name,
23
+ }));
24
+ return;
25
+ }
26
+ const data = {
27
+ gid: c.session.g.id,
28
+ type: 'id-beatsaver-map',
29
+ time: new Date(),
30
+ enable: true,
31
+ data: {
32
+ playerId: bluser.id,
33
+ },
34
+ };
35
+ await c.db.upsertSubscription(data);
36
+ await c.session.sendQuote(c.session.text('commands.bsbot.subscribe.beatsaver-mapper.success', {
37
+ name: bluser.name,
38
+ }));
39
+ };
40
+ exports.idBeatleaderScore = idBeatleaderScore;
41
+ //# sourceMappingURL=id-beatleader-score.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id-beatleader-score.js","sourceRoot":"","sources":["../../../src/cmd/subscribe/id-beatleader-score.ts"],"names":[],"mappings":";;;AACA,qCAAoE;AAE7D,MAAM,iBAAiB,GAAG,KAAK,EAAQ,CAAmB,EAAE,EAAE;IACnE,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACb,OAAM;IACR,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAChE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,0BAAiB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;IACrD,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,6BAA6B,CACzD,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EACd,qBAAqB,CACtB,CAAA;IACD,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,MAAM,CAAC,EAAE,CAAC,CAAA;IACnE,IAAI,EAAE,EAAE,CAAC;QACP,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;YACd,MAAM,IAAI,+BAAsB,EAAE,CAAA;QACpC,CAAC;QAED,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;QACpC,MAAM,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;QACnC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,CACvB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,mDAAmD,EAAE;YAClE,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC,CACH,CAAA;QACD,OAAM;IACR,CAAC;IACD,MAAM,IAAI,GAAG;QACX,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACnB,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,IAAI,IAAI,EAAE;QAChB,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE;YACJ,QAAQ,EAAE,MAAM,CAAC,EAAE;SACpB;KACF,CAAA;IACD,MAAM,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;IACnC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,CACvB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,mDAAmD,EAAE;QAClE,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAC,CACH,CAAA;AACH,CAAC,CAAA;AA3CY,QAAA,iBAAiB,qBA2C7B"}
@@ -0,0 +1,2 @@
1
+ import { CmdContext } from '../../interface';
2
+ export declare const idBeatsaverMapper: <T, C>(c: CmdContext<T, C>) => Promise<void>;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.idBeatsaverMapper = void 0;
4
+ const errors_1 = require("../../errors");
5
+ const idBeatsaverMapper = async (c) => {
6
+ if (!c.input) {
7
+ return;
8
+ }
9
+ const mapper = await c.api.BeatSaver.getBSMapperById(c.input);
10
+ if (!mapper) {
11
+ throw new errors_1.BSIDNotFoundError({ accountId: c.input });
12
+ }
13
+ const subscribes = await c.db.getIDSubscriptionByGIDAndType(c.session.g.id, 'id-beatsaver-map');
14
+ const it = subscribes.find((it) => it.data?.mapperId === mapper.id);
15
+ if (it) {
16
+ if (it.enable) {
17
+ throw new errors_1.SubscriptionExistError();
18
+ }
19
+ const data = { ...it, enable: true };
20
+ await c.db.upsertSubscription(data);
21
+ await c.session.sendQuote(c.session.text('commands.bsbot.subscribe.beatsaver-mapper.success', {
22
+ name: mapper.name,
23
+ }));
24
+ return;
25
+ }
26
+ const data = {
27
+ gid: c.session.g.id,
28
+ type: 'id-beatsaver-map',
29
+ time: new Date(),
30
+ enable: true,
31
+ data: {
32
+ mapperId: mapper.id,
33
+ mapperName: mapper.name,
34
+ },
35
+ };
36
+ await c.db.upsertSubscription(data);
37
+ await c.session.sendQuote(c.session.text('commands.bsbot.subscribe.beatsaver-mapper.success', {
38
+ name: mapper.name,
39
+ }));
40
+ };
41
+ exports.idBeatsaverMapper = idBeatsaverMapper;
42
+ //# sourceMappingURL=id-beatsaver-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id-beatsaver-mapper.js","sourceRoot":"","sources":["../../../src/cmd/subscribe/id-beatsaver-mapper.ts"],"names":[],"mappings":";;;AACA,qCAAoE;AAC7D,MAAM,iBAAiB,GAAG,KAAK,EAAQ,CAAmB,EAAE,EAAE;IACnE,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACb,OAAM;IACR,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAC7D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,0BAAiB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;IACrD,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,6BAA6B,CACzD,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EACd,kBAAkB,CACnB,CAAA;IACD,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,MAAM,CAAC,EAAE,CAAC,CAAA;IACnE,IAAI,EAAE,EAAE,CAAC;QACP,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;YACd,MAAM,IAAI,+BAAsB,EAAE,CAAA;QACpC,CAAC;QAED,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;QACpC,MAAM,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;QACnC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,CACvB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,mDAAmD,EAAE;YAClE,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC,CACH,CAAA;QACD,OAAM;IACR,CAAC;IACD,MAAM,IAAI,GAAG;QACX,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACnB,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,IAAI,IAAI,EAAE;QAChB,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE;YACJ,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,UAAU,EAAE,MAAM,CAAC,IAAI;SACxB;KACF,CAAA;IACD,MAAM,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;IACnC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,CACvB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,mDAAmD,EAAE;QAClE,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAC,CACH,CAAA;AACH,CAAC,CAAA;AA5CY,QAAA,iBAAiB,qBA4C7B"}
@@ -4,6 +4,7 @@ const builder_1 = require("../../cmd/builder");
4
4
  const beatleader_1 = require("../../cmd/subscribe/beatleader");
5
5
  const beatsaver_1 = require("../../cmd/subscribe/beatsaver");
6
6
  const errors_1 = require("../../errors");
7
+ const id_beatsaver_mapper_1 = require("../../cmd/subscribe/id-beatsaver-mapper");
7
8
  exports.default = () => new builder_1.CommandBuilder()
8
9
  .setName('subscribe')
9
10
  .addAlias('bbsub')
@@ -11,6 +12,10 @@ exports.default = () => new builder_1.CommandBuilder()
11
12
  .addAlias('/subbs', { options: { type: 'beatsaver' } })
12
13
  .addAlias('blsub', { options: { type: 'beatleader' } })
13
14
  .addAlias('bssub', { options: { type: 'beatsaver' } })
15
+ .addAlias('subbl', { options: { type: 'beatleader' } })
16
+ .addAlias('subbs', { options: { type: 'beatsaver' } })
17
+ .addAlias('subbl', { options: { type: 'beatleader' } })
18
+ .addAlias('submapper', { options: { type: 'bsmapper' } })
14
19
  .addOption('type', 'type:string')
15
20
  .setDescription('clear an auth account relate info')
16
21
  .setExecutor(async (c) => {
@@ -19,6 +24,8 @@ exports.default = () => new builder_1.CommandBuilder()
19
24
  // return alert(c)
20
25
  // }
21
26
  if (c.options.type === 'beatsaver') {
27
+ if (c.input)
28
+ return (0, id_beatsaver_mapper_1.idBeatsaverMapper)(c);
22
29
  return (0, beatsaver_1.beatsaver)(c);
23
30
  }
24
31
  if (c.options.type === 'beatleader') {
@@ -31,12 +38,21 @@ exports.default = () => new builder_1.CommandBuilder()
31
38
  }
32
39
  let text = c.session.text('commands.bsbot.subscribe.info.header') + '\n';
33
40
  for (const row of rows) {
34
- text += c.session.text('commands.bsbot.subscribe.info.body-item', {
35
- type: row.subscribe.type,
36
- cnt: row.memberCount,
37
- });
38
- if (row.me) {
39
- text += c.session.text('commands.bsbot.subscribe.info.body-item-include-you');
41
+ if (row.subscribe.type.startsWith('group')) {
42
+ text += c.session.text('commands.bsbot.subscribe.info.group-body-item', {
43
+ type: row.subscribe.type +
44
+ `(${row.subscribe.data?.mapperName} ${row.subscribe.data?.mapperId})`,
45
+ });
46
+ }
47
+ else {
48
+ text += c.session.text('commands.bsbot.subscribe.info.body-item', {
49
+ type: row.subscribe.type,
50
+ cnt: row.memberCount,
51
+ enable: row.subscribe.enable,
52
+ });
53
+ if (row.me) {
54
+ text += c.session.text('commands.bsbot.subscribe.info.body-item-include-you');
55
+ }
40
56
  }
41
57
  text += '\n\n';
42
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cmd/subscribe/index.ts"],"names":[],"mappings":";;AAAA,2CAA8C;AAC9C,2DAAuD;AACvD,yDAAqD;AACrD,qCAAqD;AAErD,kBAAe,GAAG,EAAE,CAClB,IAAI,wBAAc,EAAE;KACjB,OAAO,CAAC,WAAW,CAAC;KACpB,QAAQ,CAAC,OAAO,CAAC;KACjB,QAAQ,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC;KACvD,QAAQ,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC;KACtD,QAAQ,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC;KACtD,QAAQ,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC;KACrD,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;KAChC,cAAc,CAAC,mCAAmC,CAAC;KACnD,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;IACvB,yBAAyB;IACzB,4CAA4C;IAC5C,oBAAoB;IACpB,IAAI;IAEJ,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,IAAA,qBAAS,EAAC,CAAC,CAAC,CAAA;IACrB,CAAC;IAED,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACpC,OAAO,IAAA,uBAAU,EAAC,CAAC,CAAC,CAAA;IACtB,CAAC;IAED,2BAA2B;IAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,yBAAyB,CAC/C,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EACd,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CACf,CAAA;IAED,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,mCAA0B,EAAE,CAAA;IACxC,CAAC;IACD,IAAI,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC,GAAG,IAAI,CAAA;IACxE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,yCAAyC,EAAE;YAChE,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI;YACxB,GAAG,EAAE,GAAG,CAAC,WAAW;SACrB,CAAC,CAAA;QACF,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;YACX,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CACpB,qDAAqD,CACtD,CAAA;QACH,CAAC;QACD,IAAI,IAAI,MAAM,CAAA;IAChB,CAAC;IACD,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;AACjC,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cmd/subscribe/index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
+ import { CmdContext } from '../../interface';
1
2
  declare const _default: () => {
2
3
  name: string;
3
4
  description: string;
4
- aliases: import("../..").CmdAlias[];
5
- options: import("../..").CmdOption[];
6
- callback: (c: import("../..").CmdContext<unknown, {
5
+ aliases: import("../../interface").CmdAlias[];
6
+ options: import("../../interface").CmdOption[];
7
+ callback: (c: CmdContext<unknown, {
7
8
  type?: string;
8
9
  }>) => Promise<void>;
9
10
  children: any[];
@@ -14,6 +14,10 @@ exports.default = () => new builder_1.CommandBuilder()
14
14
  .setExecutor(async (c) => {
15
15
  const { blSub, bsMapSub, bsAlertSub } = await c.db.getSubscriptionsByGID(c.session.g.id);
16
16
  if (c.options.type === 'beatleader') {
17
+ // if (c.input) {
18
+ // await unsubGroupBLScore(c)
19
+ // return
20
+ // }
17
21
  if (!blSub) {
18
22
  throw new errors_1.SubscriptionNotExistError('beatleader-score');
19
23
  }
@@ -22,6 +26,10 @@ exports.default = () => new builder_1.CommandBuilder()
22
26
  await c.session.sendQuote(c.session.text('commands.bsbot.unsubscribe.success.beatleader'));
23
27
  }
24
28
  if (c.options.type === 'beatsaver') {
29
+ if (c.input) {
30
+ await unsubIDBSMapper(c);
31
+ return;
32
+ }
25
33
  if (!bsMapSub) {
26
34
  throw new errors_1.SubscriptionNotExistError('beatsaver-map');
27
35
  }
@@ -38,4 +46,34 @@ exports.default = () => new builder_1.CommandBuilder()
38
46
  await c.session.sendQuote(c.session.text('commands.bsbot.unsubscribe.success.alert'));
39
47
  }
40
48
  });
49
+ const unsubIDBSMapper = async (c) => {
50
+ const input = c.input;
51
+ if (input) {
52
+ const res = await c.db.getIDSubscriptionByGIDAndType(c.session.g.id, 'id-beatsaver-map');
53
+ const it = res.find((it) => it.data?.mapperId?.toString() === input);
54
+ if (!it) {
55
+ throw new errors_1.BSMapperSubscriptionNotExistError({ id: input });
56
+ }
57
+ await c.db.removeIDSubscriptionByID(it.id);
58
+ c.session.sendQuote(c.session.text('commands.bsbot.unsubscribe.success.beatsaver-mapper', {
59
+ name: it?.data?.mapperName,
60
+ }));
61
+ return;
62
+ }
63
+ };
64
+ const unsubIDBLScore = async (c) => {
65
+ const input = c.input;
66
+ if (input) {
67
+ const res = await c.db.getIDSubscriptionByGIDAndType(c.session.g.id, 'id-beatleader-score');
68
+ const it = res.find((it) => it.data?.playerId?.toString() === input);
69
+ if (!it) {
70
+ throw new errors_1.SubscriptionNotExistError(`id-beatleader-score(${input})`);
71
+ }
72
+ await c.db.removeIDSubscriptionByID(it.id);
73
+ c.session.sendQuote(c.session.text('commands.bsbot.unsubscribe.success.beatleader-score', {
74
+ name: it?.data?.playerId,
75
+ }));
76
+ return;
77
+ }
78
+ };
41
79
  //# sourceMappingURL=unsubscribe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"unsubscribe.js","sourceRoot":"","sources":["../../../src/cmd/subscribe/unsubscribe.ts"],"names":[],"mappings":";;AAAA,2CAA8C;AAC9C,qCAAgF;AAEhF,kBAAe,GAAG,EAAE,CAClB,IAAI,wBAAc,EAAE;KACjB,OAAO,CAAC,aAAa,CAAC;KACtB,QAAQ,CAAC,SAAS,CAAC;KACnB,QAAQ,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC;KACzD,QAAQ,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC;KACxD,QAAQ,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC;KACxD,QAAQ,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC;KACvD,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;KAChC,cAAc,CAAC,EAAE,CAAC;KAClB,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;IACvB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,qBAAqB,CACtE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CACf,CAAA;IACD,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,kCAAyB,CAAC,kBAAkB,CAAC,CAAA;QACzD,CAAC;QACD,MAAM,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;QACxC,MAAM,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;QACnC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,CACvB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAChE,CAAA;IACH,CAAC;IAED,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,kCAAyB,CAAC,eAAe,CAAC,CAAA;QACtD,CAAC;QACD,MAAM,IAAI,GAAG,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;QAC3C,MAAM,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;QACnC,CAAC,CAAC,OAAO,CAAC,SAAS,CACjB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAC/D,CAAA;IACH,CAAC;IAED,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,kCAAyB,CAAC,iBAAiB,CAAC,CAAA;QACxD,CAAC;QACD,MAAM,IAAI,GAAG,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;QAC7C,MAAM,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;QACnC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,CACvB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAC3D,CAAA;IACH,CAAC;AACH,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"unsubscribe.js","sourceRoot":"","sources":["../../../src/cmd/subscribe/unsubscribe.ts"],"names":[],"mappings":"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"}
package/lib/config.d.ts CHANGED
@@ -5,19 +5,36 @@ export interface BSAbility {
5
5
  };
6
6
  }
7
7
  export interface Config {
8
+ preferPuppeteerMode: 'local-plugin' | 'remote';
9
+ broswerlessWSEndpoint: string;
10
+ uploadImageToS3: {
11
+ enable: boolean;
12
+ s3AccessKey: string;
13
+ s3SecretKey: string;
14
+ endpoint: string;
15
+ region: string | undefined;
16
+ bucketName: string;
17
+ keyPrefix: string;
18
+ baseURL: string;
19
+ };
20
+ renderMode: 'local' | 'remote';
8
21
  beatSaverHost: string;
9
22
  beatSaverWSURL: string;
10
23
  remoteRenderURL: string;
11
24
  minRawMatchMapIdLength: number;
12
25
  defaultWaitTimeout: number;
13
26
  rankWaitTimeout: number;
14
- renderMode: 'local' | 'remote';
15
27
  bsOauthClientId: string;
16
28
  bsOauthClientSecret: string;
17
29
  blOauthClientId: string;
18
30
  blOauthClientSecret: string;
19
- bsNotifyMonitorCron: string;
20
- tokenRefreshCron: string;
21
- tempCron: string;
31
+ bsNotifyMonitorCron: ScheduleTaskConfig;
32
+ tokenRefreshCron: ScheduleTaskConfig;
33
+ tempCron: ScheduleTaskConfig;
22
34
  BLScoreFilters: any;
23
35
  }
36
+ interface ScheduleTaskConfig {
37
+ cron: string;
38
+ enable: boolean;
39
+ }
40
+ export {};
@@ -11,12 +11,24 @@ export declare class ScoreNotFoundError extends BizError {
11
11
  export declare class AccountBindingNotFoundError extends BizError {
12
12
  constructor(params?: any);
13
13
  }
14
+ export declare class UnknownUserIDError extends BizError {
15
+ constructor(params?: any);
16
+ }
14
17
  export declare class InvalidMapIdError extends BizError {
15
18
  constructor(params?: any);
16
19
  }
17
20
  export declare class MapIdNotFoundError extends BizError {
18
21
  constructor(params?: any);
19
22
  }
23
+ export declare class BLIDNotFoundError extends BizError {
24
+ constructor(params?: any);
25
+ }
26
+ export declare class SSIDNotFoundError extends BizError {
27
+ constructor(params?: any);
28
+ }
29
+ export declare class BSIDNotFoundError extends BizError {
30
+ constructor(params?: any);
31
+ }
20
32
  export declare class ScoreSaberIDNotFoundError extends BizError {
21
33
  constructor(params?: any);
22
34
  }
@@ -35,3 +47,21 @@ export declare class NoneSubscriptionExistError extends BizError {
35
47
  export declare class SubscriptionNotExistError extends BizError {
36
48
  constructor(params?: any);
37
49
  }
50
+ export declare class BSMapperSubscriptionNotExistError extends BizError {
51
+ constructor(params?: any);
52
+ }
53
+ export declare class ImageRenderError extends BizError {
54
+ constructor(params?: any);
55
+ }
56
+ export declare class RequestError extends BizError {
57
+ constructor(params?: any);
58
+ }
59
+ export declare class ReachNetworkRetryLimitError extends BizError {
60
+ constructor(params?: any);
61
+ }
62
+ export declare class NotImplementedError extends BizError {
63
+ constructor(params?: any);
64
+ }
65
+ export declare class EmptyPromptError extends BizError {
66
+ constructor(params?: any);
67
+ }