beatsaber-bot-core 0.2.0-dev.35 → 0.2.0-dev.37

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 (31) hide show
  1. package/package.json +1 -1
  2. package/lib/api/base/aioRequest.d.ts +0 -6
  3. package/lib/api/base/aioRequest.js +0 -24
  4. package/lib/api/base/aioRequest.js.map +0 -1
  5. package/lib/api/base/blRequset.d.ts +0 -12
  6. package/lib/api/base/blRequset.js +0 -68
  7. package/lib/api/base/blRequset.js.map +0 -1
  8. package/lib/api/base/bsRequest.d.ts +0 -24
  9. package/lib/api/base/bsRequest.js +0 -64
  10. package/lib/api/base/bsRequest.js.map +0 -1
  11. package/lib/api/base/scRequest.d.ts +0 -8
  12. package/lib/api/base/scRequest.js +0 -43
  13. package/lib/api/base/scRequest.js.map +0 -1
  14. package/lib/db/index.d.ts +0 -0
  15. package/lib/db/index.js +0 -1
  16. package/lib/db/index.js.map +0 -1
  17. package/lib/img-render/components/blScoreItem.d.ts +0 -6
  18. package/lib/img-render/components/blScoreItem.js +0 -14
  19. package/lib/img-render/components/blScoreItem.js.map +0 -1
  20. package/lib/img-render/components/rankScoreItem.d.ts +0 -18
  21. package/lib/img-render/components/rankScoreItem.js +0 -42
  22. package/lib/img-render/components/rankScoreItem.js.map +0 -1
  23. package/lib/img-render/components/ssScoreItem.d.ts +0 -4
  24. package/lib/img-render/components/ssScoreItem.js +0 -14
  25. package/lib/img-render/components/ssScoreItem.js.map +0 -1
  26. package/lib/img-render/result/bs-score-with-rank.d.ts +0 -13
  27. package/lib/img-render/result/bs-score-with-rank.js +0 -33
  28. package/lib/img-render/result/bs-score-with-rank.js.map +0 -1
  29. package/lib/img-render/result/ss-score-with-rank.d.ts +0 -0
  30. package/lib/img-render/result/ss-score-with-rank.js +0 -277
  31. package/lib/img-render/result/ss-score-with-rank.js.map +0 -1
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "beatsaber-bot-core",
3
3
  "description": "一个用于新版 Steam 家庭的库存监控 Bot 插件",
4
- "version": "0.2.0-dev.35",
4
+ "version": "0.2.0-dev.37",
5
5
  "types": "lib/index.d.ts",
6
6
  "files": [
7
7
  "lib"
@@ -1,6 +0,0 @@
1
- import { AioOauthTokenResponse } from '../interfaces/aiosaber';
2
- import { Config } from '../../config';
3
- export declare const aioRequest: (cfg: Config) => {
4
- getBSOAuthToken: (key: string) => Promise<AioOauthTokenResponse>;
5
- getBLOAuthToken: (key: string) => Promise<AioOauthTokenResponse>;
6
- };
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.aioRequest = void 0;
4
- const get = (...args) => fetch(args).then((res) => res.json());
5
- const aioRequest = (cfg) => {
6
- let host = 'https://aiobs.ktlab.io';
7
- if (host.endsWith('/')) {
8
- host = host.substring(0, host.length - 1);
9
- }
10
- const url = (path) => {
11
- if (!path.startsWith('/')) {
12
- path = '/' + path;
13
- }
14
- return host + path;
15
- };
16
- const getBSOAuthToken = async (key) => get(url(`/api/oauth/beatsaver/token/${key}`));
17
- const getBLOAuthToken = async (key) => get(url(`/api/oauth/beatleader/token/${key}`));
18
- return {
19
- getBSOAuthToken,
20
- getBLOAuthToken,
21
- };
22
- };
23
- exports.aioRequest = aioRequest;
24
- //# sourceMappingURL=aioRequest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aioRequest.js","sourceRoot":"","sources":["../../../src/api/base/aioRequest.ts"],"names":[],"mappings":";;;AAGA,MAAM,GAAG,GAAG,CAAI,GAAG,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAW,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAO,CAAC,CAAA;AAEtE,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,EAAE;IACxC,IAAI,IAAI,GAAG,wBAAwB,CAAA;IACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC3C,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,EAAE;QAC3B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,GAAG,GAAG,GAAG,IAAI,CAAA;QACnB,CAAC;QACD,OAAO,IAAI,GAAG,IAAI,CAAA;IACpB,CAAC,CAAA;IACD,MAAM,eAAe,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE,CAC5C,GAAG,CAAwB,GAAG,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC,CAAA;IACtE,MAAM,eAAe,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE,CAC5C,GAAG,CAAwB,GAAG,CAAC,+BAA+B,GAAG,EAAE,CAAC,CAAC,CAAA;IACvE,OAAO;QACL,eAAe;QACf,eAAe;KAChB,CAAA;AACH,CAAC,CAAA;AAnBY,QAAA,UAAU,cAmBtB"}
@@ -1,12 +0,0 @@
1
- import { BeadLeaderScoresResponse, BeatLeaderPlayerScoreRequest, Leaderboard, Score, BeatLeaderUser } from '../interfaces/beatleader';
2
- import { Config } from '../../config';
3
- import { OAuthTokenInfoResponse, OAuthTokenResponse } from './bsRequest';
4
- export declare const blRequest: (cfg: Config) => {
5
- getPlayerScore: (req: BeatLeaderPlayerScoreRequest) => Promise<Leaderboard>;
6
- getPlayerScores: (accountId: string) => Promise<BeadLeaderScoresResponse>;
7
- getPlayerInfo: (accountId: string) => Promise<BeatLeaderUser>;
8
- getPlayerPinnedScores: (accountId: string) => Promise<Score[]>;
9
- getTokenInfo: (accessToken: string) => Promise<OAuthTokenInfoResponse>;
10
- refreshOAuthToken: (refreshToken: string) => Promise<OAuthTokenResponse>;
11
- getBeatScore: (scoreId: string) => Promise<Score>;
12
- };
@@ -1,68 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.blRequest = void 0;
4
- const utils_1 = require("../../utils");
5
- const blRequest = (cfg) => {
6
- let host = 'https://api.beatleader.xyz';
7
- if (host.endsWith('/')) {
8
- host = host.substring(0, host.length - 1);
9
- }
10
- const url = (path) => {
11
- if (!path.startsWith('/')) {
12
- path = '/' + path;
13
- }
14
- return host + path;
15
- };
16
- const getPlayerScore = async (req) => {
17
- const res = await (0, utils_1.fetchWithCache)(url(`/score/${req.leaderboardContext}/${req.playerID}/${req.hash}/${req.diff}/${req.mode}`));
18
- return res;
19
- };
20
- const getTokenInfo = async (accessToken) => {
21
- return (0, utils_1.fetchWithCache)(url(`/oauth2/identity`), {
22
- headers: {
23
- Authorization: `Bearer ${accessToken}`,
24
- },
25
- });
26
- };
27
- const refreshOAuthToken = async (refreshToken) => {
28
- const form = new URLSearchParams();
29
- form.append('client_id', cfg.blOauthClientId);
30
- form.append('client_secret', cfg.blOauthClientSecret);
31
- form.append('grant_type', 'refresh_token');
32
- form.append('refresh_token', refreshToken);
33
- const res = await fetch('https://beatsaver.com/api/oauth2/token', {
34
- method: 'POST',
35
- headers: {
36
- 'Content-Type': 'application/x-www-form-urlencoded',
37
- },
38
- body: form,
39
- }).then((res) => res.json());
40
- if (!res.access_token) {
41
- throw new Error('refreshToken failed');
42
- }
43
- return res;
44
- };
45
- const getPlayerInfo = async (accountId) => {
46
- return (0, utils_1.fetchWithCache)(url(`/player/${accountId}`));
47
- };
48
- const getPlayerScores = async (accountId) => {
49
- return (0, utils_1.fetchWithCache)(url(`/player/${accountId}/scores?count=24&sortBy=pp`));
50
- };
51
- const getPlayerPinnedScores = async (accountId) => {
52
- return (0, utils_1.fetchWithCache)(url(`/player/${accountId}/pinnedScores`));
53
- };
54
- const getBeatScore = async (scoreId) => {
55
- return (0, utils_1.fetchWithCache)(url(`/score/${scoreId}`));
56
- };
57
- return {
58
- getPlayerScore,
59
- getPlayerScores,
60
- getPlayerInfo,
61
- getPlayerPinnedScores,
62
- getTokenInfo,
63
- refreshOAuthToken,
64
- getBeatScore,
65
- };
66
- };
67
- exports.blRequest = blRequest;
68
- //# sourceMappingURL=blRequset.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"blRequset.js","sourceRoot":"","sources":["../../../src/api/base/blRequset.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import { Config } from '../../config';
2
- import { BeatsaverAlert, BSMap, BSUserResponse, HashReqResponse } from '../interfaces/beatsaver';
3
- export interface OAuthTokenResponse {
4
- access_token: string;
5
- token_type: string;
6
- expires_in: number;
7
- refresh_token: string;
8
- scope?: string;
9
- }
10
- export interface OAuthTokenInfoResponse {
11
- scope?: string[];
12
- id: string;
13
- name: string;
14
- }
15
- export declare const bsRequest: (cfg: Config) => {
16
- refreshOAuthToken: (refreshToken: string) => Promise<OAuthTokenResponse>;
17
- getBSMapperById: (userId: string) => Promise<BSUserResponse>;
18
- getLatestMaps: (pageSize?: number) => Promise<BSMap[]>;
19
- searchMapByKeyword: (key: string) => Promise<BSMap[]>;
20
- searchMapById: (id: string) => Promise<BSMap>;
21
- getUnreadAlertsByPage: (accessToken: string, page: number) => Promise<BeatsaverAlert[]>;
22
- getTokenInfo: (accessToken: string) => Promise<OAuthTokenInfoResponse>;
23
- getMapsByHashes: (hashes: string[]) => Promise<HashReqResponse>;
24
- };
@@ -1,64 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.bsRequest = void 0;
4
- const get = (...args) => fetch(args).then((res) => res.json());
5
- const bsRequest = (cfg) => {
6
- let host = cfg.beatSaverHost ?? 'https://api.beatsaver.com';
7
- if (host.endsWith('/')) {
8
- host = host.substring(0, host.length - 1);
9
- }
10
- const url = (path) => {
11
- if (!path.startsWith('/')) {
12
- path = '/' + path;
13
- }
14
- return host + path;
15
- };
16
- const getBSMapperById = async (userId) => get(url(`/users/id/${userId}`));
17
- const getLatestMaps = async (pageSize = 5) => get(url(`/maps/latest?sort=FIRST_PUBLISHED&pageSize=${pageSize}`)).then((res) => res.docs);
18
- const searchMapByKeyword = async (key) => get(url(`/search/text/0?q=${key}`)).then((res) => res.docs);
19
- const searchMapById = async (id) => get(url(`/maps/id/${id}`));
20
- const getAlertsStats = async (accessToken) => get(url(`/alerts/stats`), {
21
- headers: { Authorization: `Bearer ${accessToken}` },
22
- });
23
- const getAlertsByPage = async (accessToken, type, page) => get(url(`/alerts/${type}/${page}`), {
24
- headers: { Authorization: `Bearer ${accessToken}` },
25
- });
26
- const getUnreadAlertsByPage = (accessToken, page) => getAlertsByPage(accessToken, 'unread', page);
27
- const getReadAlertsByPage = (accessToken, page) => getAlertsByPage(accessToken, 'read', page);
28
- const refreshOAuthToken = async (refreshToken) => {
29
- const form = new FormData();
30
- form.append('client_id', cfg.bsOauthClientId);
31
- form.append('client_secret', cfg.bsOauthClientSecret);
32
- form.append('grant_type', 'refresh_token');
33
- form.append('refresh_token', refreshToken);
34
- const res = await fetch('https://beatsaver.com/api/oauth2/token', {
35
- method: 'POST',
36
- body: form,
37
- }).then((res) => res.json());
38
- if (!res.access_token) {
39
- throw new Error('refreshToken failed');
40
- }
41
- return res;
42
- };
43
- //
44
- const getTokenInfo = async (accessToken) => {
45
- return get(url(`/oauth2/identity`), {
46
- headers: {
47
- Authorization: `Bearer ${accessToken}`,
48
- },
49
- });
50
- };
51
- const getMapsByHashes = async (hashes) => get(url(`/maps/hash/${hashes.join(',')}`));
52
- return {
53
- refreshOAuthToken,
54
- getBSMapperById,
55
- getLatestMaps,
56
- searchMapByKeyword,
57
- searchMapById,
58
- getUnreadAlertsByPage,
59
- getTokenInfo,
60
- getMapsByHashes,
61
- };
62
- };
63
- exports.bsRequest = bsRequest;
64
- //# sourceMappingURL=bsRequest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bsRequest.js","sourceRoot":"","sources":["../../../src/api/base/bsRequest.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import { Config } from '../../config';
2
- import { ScoreSaberUser, ScoreSaberUserResponse } from '../interfaces/scoresaber';
3
- import { ScoresaberLeaderboardResp } from '../../api/interfaces/scoresaber/leaderboard';
4
- export declare const scRequest: (cfg: Config) => {
5
- getScoreUserById: (userId: string) => Promise<ScoreSaberUser>;
6
- getScoreItemsById: (userId: string, page: number, pageSize?: number) => Promise<ScoreSaberUserResponse>;
7
- getScoreItemsByMapId: (mapId: string, diff: string, mode: string, page: number, pageSize?: number) => Promise<ScoresaberLeaderboardResp>;
8
- };
@@ -1,43 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.scRequest = void 0;
7
- const fetch_1 = __importDefault(require("../../utils/fetch"));
8
- const convertToLeaderboardId = (mapid, diff, mode) => {
9
- return mapid;
10
- };
11
- const scRequest = (cfg) => {
12
- const f = fetch_1.default.extend({
13
- baseURL: 'https://scoresaber.com',
14
- });
15
- const getScoreUserById = async (userId) => {
16
- return f.get(`/api/player/${userId}/full`);
17
- };
18
- const getScoreItemsById = (userId, page, pageSize = 8) => {
19
- return f.get(`/api/player/${userId}/scores`, {
20
- params: {
21
- sort: 'top',
22
- page: page,
23
- pageSize: pageSize,
24
- },
25
- });
26
- };
27
- const getScoreItemsByMapId = (mapId, diff, mode, page, pageSize = 8) => {
28
- const id = convertToLeaderboardId(mapId, diff, mode);
29
- return f.get(`/api/leaderboard/by-id/${id}/scores`, {
30
- params: {
31
- page: page,
32
- pageSize: pageSize,
33
- },
34
- });
35
- };
36
- return {
37
- getScoreUserById,
38
- getScoreItemsById,
39
- getScoreItemsByMapId,
40
- };
41
- };
42
- exports.scRequest = scRequest;
43
- //# sourceMappingURL=scRequest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scRequest.js","sourceRoot":"","sources":["../../../src/api/base/scRequest.ts"],"names":[],"mappings":";;;;;;AAMA,0DAAkC;AAElC,MAAM,sBAAsB,GAAG,CAAC,KAAa,EAAE,IAAY,EAAE,IAAY,EAAE,EAAE;IAC3E,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAEM,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,EAAE;IACvC,MAAM,CAAC,GAAG,eAAM,CAAC,MAAM,CAAC;QACtB,OAAO,EAAE,wBAAwB;KAClC,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;QAChD,OAAO,CAAC,CAAC,GAAG,CAAiB,eAAe,MAAM,OAAO,CAAC,CAAA;IAC5D,CAAC,CAAA;IAED,MAAM,iBAAiB,GAAG,CACxB,MAAc,EACd,IAAY,EACZ,WAAmB,CAAC,EACpB,EAAE;QACF,OAAO,CAAC,CAAC,GAAG,CAAyB,eAAe,MAAM,SAAS,EAAE;YACnE,MAAM,EAAE;gBACN,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,QAAQ;aACnB;SACF,CAAC,CAAA;IACJ,CAAC,CAAA;IACD,MAAM,oBAAoB,GAAG,CAC3B,KAAa,EACb,IAAY,EACZ,IAAY,EACZ,IAAY,EACZ,WAAmB,CAAC,EACgB,EAAE;QACtC,MAAM,EAAE,GAAG,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QACpD,OAAO,CAAC,CAAC,GAAG,CAAC,0BAA0B,EAAE,SAAS,EAAE;YAClD,MAAM,EAAE;gBACN,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,QAAQ;aACnB;SACF,CAAC,CAAA;IACJ,CAAC,CAAA;IACD,OAAO;QACL,gBAAgB;QAChB,iBAAiB;QACjB,oBAAoB;KACrB,CAAA;AACH,CAAC,CAAA;AA1CY,QAAA,SAAS,aA0CrB"}
package/lib/db/index.d.ts DELETED
File without changes
package/lib/db/index.js DELETED
@@ -1 +0,0 @@
1
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":""}
@@ -1,6 +0,0 @@
1
- import { Score } from '../../api/interfaces/beatleader';
2
- export default function BeatLeaderItem({ item, }: {
3
- item: Score & {
4
- pinned?: boolean;
5
- };
6
- }): import("react/jsx-runtime").JSX.Element;
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const jsx_runtime_1 = require("react/jsx-runtime");
4
- const lucide_react_1 = require("lucide-react");
5
- const utils_1 = require("../utils");
6
- const getModifiers = (modifiers) => {
7
- return modifiers ? modifiers.split(',') : [];
8
- };
9
- function BeatLeaderItem({ item, }) {
10
- return ((0, jsx_runtime_1.jsxs)("div", { className: "relative overflow-hidden", children: [(0, jsx_runtime_1.jsxs)("div", { className: 'rounded-lg flex bg-black/[.4] space-x-2 backdrop-blur-md', children: [(0, jsx_runtime_1.jsx)("img", { loading: 'eager', src: item.leaderboard.song.coverImage, className: 'rounded-md h-20 w-20', alt: 'score item cover' }), (0, jsx_runtime_1.jsxs)("div", { className: 'flex flex-col space-y-1 py-0.5', children: [(0, jsx_runtime_1.jsx)("div", { className: 'font-semibold text-xs text-ellipsis overflow-hidden line-clamp-1 break-all', children: item.leaderboard.song.name }), (0, jsx_runtime_1.jsxs)("div", { className: 'text-xs flex items-center space-x-2 *:flex *:items-center *:space-x-1 ', children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("span", { children: (0, jsx_runtime_1.jsx)(lucide_react_1.BarChart, { className: 'w-3 h-3' }) }), (0, jsx_runtime_1.jsx)("span", { children: (0, utils_1.diffConv)(item.leaderboard.difficulty.difficultyName) })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("span", { children: (0, jsx_runtime_1.jsx)(lucide_react_1.Star, { className: 'w-3 h-3' }) }), (0, jsx_runtime_1.jsxs)("span", { children: [item.leaderboard.difficulty.stars?.toFixed(2) ?? 'none', ' '] })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("span", { children: (0, jsx_runtime_1.jsx)(lucide_react_1.Key, { className: 'w-3 h-3' }) }), (0, jsx_runtime_1.jsx)("span", { children: item.leaderboard.song.id.toLowerCase().replaceAll('x', '') })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: 'flex space-x-2 text-xs items-center', children: [(0, jsx_runtime_1.jsxs)("span", { children: [((item.baseScore / item.leaderboard.difficulty.maxScore) *
11
- 100).toFixed(2), "%"] }), (0, jsx_runtime_1.jsxs)("span", { className: 'text-orange-200', children: [item.pp.toFixed(2), "PP"] }), (0, jsx_runtime_1.jsx)("span", { className: 'text-xs opacity-70', children: (0, utils_1.formatRelativeTimeByDay)(item.timepost * 1000) })] }), (0, jsx_runtime_1.jsx)("div", { className: 'flex items-center space-x-2', children: getModifiers(item.modifiers).length > 0 && ((0, jsx_runtime_1.jsxs)("div", { className: "text-xs flex flex-wrap space-x-2 items-center", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Wrench, { className: "h-3 w-3" }), getModifiers(item.modifiers).map((modifier) => ((0, jsx_runtime_1.jsx)("span", { children: modifier }, modifier)))] })) })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "absolute right-1 bottom-1 text-white flex text-xs space-x-1 items-center", children: [item.fullCombo && ((0, jsx_runtime_1.jsx)("span", { className: "from-blue-300 to-red-300 bg-gradient-to-r bg-clip-text text-transparent", children: "FC" })), item.pinned && (0, jsx_runtime_1.jsx)(lucide_react_1.Pin, { className: "rotate-45 h-3 w-3 my-auto" })] })] }));
12
- }
13
- exports.default = BeatLeaderItem;
14
- //# sourceMappingURL=blScoreItem.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"blScoreItem.js","sourceRoot":"","sources":["../../../src/img-render/components/blScoreItem.tsx"],"names":[],"mappings":";;;AAAA,+CAA+D;AAC/D,oCAA4D;AAG5D,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAE,EAAE;IACzC,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAC9C,CAAC,CAAA;AAED,SAAwB,cAAc,CAAC,EACrC,IAAI,GAKL;IACC,OAAO,CACL,iCAAK,SAAS,EAAC,2BAA2B,aACxC,iCACE,SAAS,EAAE,0DAA0D,aAErE,gCACE,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EACrC,SAAS,EAAE,sBAAsB,EACjC,GAAG,EAAE,kBAAkB,GACvB,EACF,iCAAK,SAAS,EAAE,gCAAgC,aAC9C,gCACE,SAAS,EACP,4EAA4E,YAG7E,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,GACvB,EACN,iCACE,SAAS,EACP,wEAAwE,aAG1E,4CACE,2CACE,uBAAC,uBAAQ,IAAC,SAAS,EAAE,SAAS,GAAI,GAC7B,EACP,2CACG,IAAA,gBAAQ,EAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc,CAAC,GAChD,IACH,EACN,4CACE,2CACE,uBAAC,mBAAI,IAAC,SAAS,EAAE,SAAS,GAAI,GACzB,EACP,6CACG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,IACxD,IACH,EACN,4CACE,2CACE,uBAAC,kBAAG,IAAC,SAAS,EAAE,SAAS,GAAI,GACxB,EACP,2CACG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,GACtD,IACH,IACF,EACN,iCAAK,SAAS,EAAE,qCAAqC,aACnD,6CACG,CACC,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC;gDACvD,GAAG,CACJ,CAAC,OAAO,CAAC,CAAC,CAAC,SAEP,EACP,kCAAM,SAAS,EAAE,iBAAiB,aAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EACjE,iCAAM,SAAS,EAAE,oBAAoB,YAClC,IAAA,+BAAuB,EAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GACzC,IACH,EACN,gCAAK,SAAS,EAAE,6BAA6B,YAC1C,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAC1C,iCAAK,SAAS,EAAC,+CAA+C,aAC5D,uBAAC,qBAAM,IAAC,SAAS,EAAC,SAAS,GAAG,EAC7B,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAC9C,2CAAsB,QAAQ,IAAnB,QAAQ,CAAmB,CACvC,CAAC,IACE,CACP,GACG,IACF,IACF,EAEN,iCAAK,SAAS,EAAC,0EAA0E,aACtF,IAAI,CAAC,SAAS,IAAI,CACjB,iCAAM,SAAS,EAAC,yEAAyE,mBAElF,CACR,EACA,IAAI,CAAC,MAAM,IAAI,uBAAC,kBAAG,IAAC,SAAS,EAAC,2BAA2B,GAAG,IACzD,IACF,CACP,CAAA;AACH,CAAC;AA5FD,iCA4FC"}
@@ -1,18 +0,0 @@
1
- interface ScoreItemProps {
2
- name: string;
3
- avatar: string;
4
- globalRank: number;
5
- countryCode: string;
6
- isRegionRank: boolean;
7
- score: number;
8
- modifiers: string;
9
- acc: number;
10
- pp: number;
11
- date: number;
12
- self: boolean;
13
- }
14
- export declare function RankScoreItem(props: ScoreItemProps): import("react/jsx-runtime").JSX.Element;
15
- export declare function ScoreItemSkeleton({ isRegionRank }: {
16
- isRegionRank: boolean;
17
- }): import("react/jsx-runtime").JSX.Element;
18
- export {};
@@ -1,42 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.ScoreItemSkeleton = exports.RankScoreItem = void 0;
30
- const jsx_runtime_1 = require("react/jsx-runtime");
31
- const dayjs_1 = __importDefault(require("dayjs"));
32
- const flag_1 = __importStar(require("../../img-render/components/flag"));
33
- const utils_1 = require("../../img-render/utils");
34
- function RankScoreItem(props) {
35
- return ((0, jsx_runtime_1.jsx)("div", { className: `${props.self ? 'gradient-border' : ''} bs-bg-gradient shadow-xl rounded-lg -skew-x-12 w-80 h-20 text-white font-bold flex flex-col p-1 z-10 relative max-w-[300px]`, children: (0, jsx_runtime_1.jsxs)("div", { className: "skew-x-12 relative", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center translate-x-2 justify-between", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex gap-2", children: [(0, jsx_runtime_1.jsxs)("div", { className: 'w-12 h-12 relative', children: [(0, jsx_runtime_1.jsx)("img", { src: props.avatar, className: "shadow-lg w-12 h-12 rounded-full object-cover" }), (0, jsx_runtime_1.jsx)("div", { className: 'w-3 h-3 absolute bottom-0 right-3', children: (0, jsx_runtime_1.jsx)(flag_1.default, { flagNationCode: props.countryCode }) })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("div", { className: 'line-clamp-1 text-ellipsis max-w-[100px]', children: props.name }), (0, jsx_runtime_1.jsxs)("span", { className: "flex items-center space-x-1", children: [!props.isRegionRank && (0, jsx_runtime_1.jsx)(flag_1.EarchIcon, {}), (0, jsx_runtime_1.jsxs)("span", { children: ["# ", props.globalRank] })] })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col items-end -translate-x-2 -skew-x-3", children: [(0, jsx_runtime_1.jsxs)("div", { children: [(props.acc * 100).toFixed(2), " %"] }), (0, jsx_runtime_1.jsxs)("div", { className: 'flex gap-2', children: [(0, jsx_runtime_1.jsx)("div", { className: 'space-x-1', children: props.modifiers.split(',').map((it) => ((0, jsx_runtime_1.jsx)("span", { children: it }, it))) }), (0, jsx_runtime_1.jsx)("div", { children: (0, utils_1.numberWithCommas)(props.score) })] })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between mt-0 px-4 -translate-x-4", children: [(0, jsx_runtime_1.jsx)("div", { className: "flex gap-2", children: (0, jsx_runtime_1.jsx)("div", { className: "flex gap-1 items-center justify-start -skew-x-2 text-xs opacity-60", children: (0, jsx_runtime_1.jsx)("div", { children: (0, utils_1.formatDate)((0, dayjs_1.default)(props.date * 1000).toDate(), 'YY 年 MM 月 DD 日') }) }) }), (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)("div", { className: "flex gap-1 items-center justify-start translate-x-6 text-xl font-bold text-green-300", children: (0, jsx_runtime_1.jsxs)("div", { children: [" ", props.pp.toFixed(2), " PP"] }) }) })] })] }) }));
36
- }
37
- exports.RankScoreItem = RankScoreItem;
38
- function ScoreItemSkeleton({ isRegionRank }) {
39
- return ((0, jsx_runtime_1.jsx)("div", { className: `bs-bg-gradient shadow-xl rounded-lg -skew-x-12 w-80 h-20 text-white font-bold flex flex-col p-1 z-10 relative max-w-[300px]`, children: (0, jsx_runtime_1.jsxs)("div", { className: "skew-x-12 relative", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center translate-x-2 justify-between", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex gap-2", children: [(0, jsx_runtime_1.jsx)("div", { className: 'w-12 h-12 relative', children: (0, jsx_runtime_1.jsx)("img", { src: `https://avatar.iran.liara.run/public`, className: "shadow-lg w-12 h-12 rounded-full object-cover" }) }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("div", { className: 'line-clamp-1 text-ellipsis max-w-[100px]', children: "\u865A\u4F4D\u4EE5\u5F85" }), (0, jsx_runtime_1.jsxs)("span", { className: "flex items-center space-x-1", children: [!isRegionRank && (0, jsx_runtime_1.jsx)(flag_1.EarchIcon, {}), (0, jsx_runtime_1.jsx)("span", { children: "# 0 " })] })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col items-end -translate-x-2 -skew-x-3", children: [(0, jsx_runtime_1.jsx)("div", { children: "0.00 %" }), (0, jsx_runtime_1.jsxs)("div", { className: 'flex gap-2', children: [(0, jsx_runtime_1.jsx)("div", { className: 'space-x-1', children: " " }), (0, jsx_runtime_1.jsx)("div", { children: "000,000" })] })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between mt-0 px-4 -translate-x-4", children: [(0, jsx_runtime_1.jsx)("div", { className: "flex gap-1 items-center justify-start -skew-x-2 text-xs opacity-60", children: (0, jsx_runtime_1.jsx)("div", { children: "00 \u5E74 00 \u6708 00 \u65E5" }) }), (0, jsx_runtime_1.jsx)("div", { className: "flex gap-1 items-center justify-start translate-x-6 text-xl font-bold text-green-300", children: (0, jsx_runtime_1.jsx)("div", { children: " 0.00 PP" }) })] })] }) }));
40
- }
41
- exports.ScoreItemSkeleton = ScoreItemSkeleton;
42
- //# sourceMappingURL=rankScoreItem.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rankScoreItem.js","sourceRoot":"","sources":["../../../src/img-render/components/rankScoreItem.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAyB;AACzB,qEAA+D;AAC/D,8CAAiE;AAejE,SAAgB,aAAa,CAAC,KAAqB;IACjD,OAAO,CACL,gCACE,SAAS,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,8HAA8H,YAE/K,iCAAK,SAAS,EAAC,oBAAoB,aACjC,iCAAK,SAAS,EAAC,iDAAiD,aAC9D,iCAAK,SAAS,EAAC,YAAY,aACzB,iCAAK,SAAS,EAAE,oBAAoB,aAClC,gCACE,GAAG,EAAE,KAAK,CAAC,MAAM,EACjB,SAAS,EAAC,+CAA+C,GACzD,EACF,gCAAK,SAAS,EAAE,mCAAmC,YACjD,uBAAC,cAAK,IAAC,cAAc,EAAE,KAAK,CAAC,WAAW,GAAI,GACxC,IACF,EACN,4CACE,gCAAK,SAAS,EAAE,0CAA0C,YACvD,KAAK,CAAC,IAAI,GACP,EACN,kCAAM,SAAS,EAAC,6BAA6B,aAC1C,CAAC,KAAK,CAAC,YAAY,IAAI,uBAAC,gBAAS,KAAG,EACrC,mDAAS,KAAK,CAAC,UAAU,IAAQ,IAC5B,IACH,IACF,EAEN,iCAAK,SAAS,EAAC,kDAAkD,aAC/D,4CAAM,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAS,EAC3C,iCAAK,SAAS,EAAE,YAAY,aAC1B,gCAAK,SAAS,EAAE,WAAW,YACxB,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CACtC,2CAAgB,EAAE,IAAP,EAAE,CAAa,CAC3B,CAAC,GACE,EACN,0CAAM,IAAA,wBAAgB,EAAC,KAAK,CAAC,KAAK,CAAC,GAAO,IACtC,IACF,IACF,EACN,iCAAK,SAAS,EAAC,4DAA4D,aACzE,gCAAK,SAAS,EAAC,YAAY,YACzB,gCAAK,SAAS,EAAC,oEAAoE,YACjF,0CACG,IAAA,kBAAU,EACT,IAAA,eAAK,EAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,EACjC,gBAAgB,CACjB,GACG,GACF,GACF,EACN,0CACE,gCAAK,SAAS,EAAC,sFAAsF,YACnG,iDAAO,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,WAAU,GAChC,GACF,IACF,IACF,GACF,CACP,CAAA;AACH,CAAC;AA5DD,sCA4DC;AAED,SAAgB,iBAAiB,CAAC,EAAE,YAAY,EAA6B;IAC3E,OAAO,CACL,gCACE,SAAS,EAAE,6HAA6H,YAExI,iCAAK,SAAS,EAAC,oBAAoB,aACjC,iCAAK,SAAS,EAAC,iDAAiD,aAC9D,iCAAK,SAAS,EAAC,YAAY,aACzB,gCAAK,SAAS,EAAE,oBAAoB,YAClC,gCACE,GAAG,EAAE,sCAAsC,EAC3C,SAAS,EAAC,+CAA+C,GACzD,GACE,EACN,4CACE,gCAAK,SAAS,EAAE,0CAA0C,yCAEpD,EACN,kCAAM,SAAS,EAAC,6BAA6B,aAC1C,CAAC,YAAY,IAAI,uBAAC,gBAAS,KAAG,EAC/B,oDAAiB,IACZ,IACH,IACF,EAEN,iCAAK,SAAS,EAAC,kDAAkD,aAC/D,qDAAiB,EACjB,iCAAK,SAAS,EAAE,YAAY,aAC1B,gCAAK,SAAS,EAAE,WAAW,kBAAS,EACpC,sDAAkB,IACd,IACF,IACF,EACN,iCAAK,SAAS,EAAC,4DAA4D,aACzE,gCAAK,SAAS,EAAC,oEAAoE,YACjF,4EAAyB,GACrB,EACN,gCAAK,SAAS,EAAC,sFAAsF,YACnG,uDAAmB,GACf,IACF,IACF,GACF,CACP,CAAA;AACH,CAAC;AA5CD,8CA4CC"}
@@ -1,4 +0,0 @@
1
- import { ScoreSaberItem } from '../../api/interfaces/scoresaber';
2
- export default function SsScoreItem({ scoreItem, }: {
3
- scoreItem: ScoreSaberItem;
4
- }): import("react/jsx-runtime").JSX.Element;
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const jsx_runtime_1 = require("react/jsx-runtime");
4
- const lucide_react_1 = require("lucide-react");
5
- const utils_1 = require("../utils");
6
- const getModifiers = (modifiers) => {
7
- return modifiers ? modifiers.split(',') : [];
8
- };
9
- function SsScoreItem({ scoreItem, }) {
10
- return ((0, jsx_runtime_1.jsxs)("div", { className: 'relative', children: [(0, jsx_runtime_1.jsxs)("div", { className: 'rounded-lg flex bg-black/[.4] space-x-2 backdrop-blur-md overflow-hidden', children: [(0, jsx_runtime_1.jsx)("img", { loading: 'eager', src: scoreItem.leaderboard.coverImage, className: 'rounded-md h-20 w-20' }), (0, jsx_runtime_1.jsxs)("div", { className: 'flex flex-col space-y-1 py-0.5', children: [(0, jsx_runtime_1.jsx)("div", { className: 'font-semibold text-xs text-ellipsis overflow-hidden line-clamp-1 break-all', children: scoreItem.leaderboard.songName }), (0, jsx_runtime_1.jsxs)("div", { className: 'text-xs flex items-center space-x-2 *:flex *:items-center *:space-x-1 ', children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("span", { children: (0, jsx_runtime_1.jsx)(lucide_react_1.BarChart, { className: 'w-3 h-3' }) }), (0, jsx_runtime_1.jsx)("span", { children: (0, utils_1.diffConv)(scoreItem.leaderboard.difficulty.difficultyRaw) })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("span", { children: (0, jsx_runtime_1.jsx)(lucide_react_1.Star, { className: 'w-3 h-3' }) }), (0, jsx_runtime_1.jsxs)("span", { children: [scoreItem.leaderboard.stars, " "] })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("span", { children: (0, jsx_runtime_1.jsx)(lucide_react_1.Key, { className: 'w-3 h-3' }) }), (0, jsx_runtime_1.jsx)("span", { children: scoreItem.mapId ?? 'unknown' })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: 'flex space-x-2 text-xs', children: [(0, jsx_runtime_1.jsxs)("span", { children: [((scoreItem.score.baseScore / scoreItem.leaderboard.maxScore) *
11
- 100).toFixed(2), "%"] }), (0, jsx_runtime_1.jsxs)("span", { className: 'text-orange-200', children: [scoreItem.score.pp.toFixed(1), "PP"] }), (0, jsx_runtime_1.jsx)("span", { className: 'opacity-70', children: (0, utils_1.formatRelativeTimeByDay)(scoreItem.score.timeSet) })] }), getModifiers(scoreItem.score.modifiers).length > 0 && ((0, jsx_runtime_1.jsxs)("div", { className: "text-xs flex flex-wrap space-x-2 items-center", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Wrench, { className: "h-3 w-3" }), getModifiers(scoreItem.score.modifiers).map((modifier) => ((0, jsx_runtime_1.jsx)("span", { children: modifier }, modifier)))] }))] })] }), (0, jsx_runtime_1.jsx)("div", { className: "absolute right-1 bottom-1 text-white flex text-xs space-x-1 items-center", children: scoreItem.score.fullCombo && ((0, jsx_runtime_1.jsx)("span", { className: "from-blue-300 to-red-300 bg-gradient-to-r bg-clip-text text-transparent", children: "FC" })) })] }));
12
- }
13
- exports.default = SsScoreItem;
14
- //# sourceMappingURL=ssScoreItem.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ssScoreItem.js","sourceRoot":"","sources":["../../../src/img-render/components/ssScoreItem.tsx"],"names":[],"mappings":";;;AAAA,+CAA0D;AAC1D,oCAA4D;AAI5D,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAE,EAAE;IACzC,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAC9C,CAAC,CAAA;AACD,SAAwB,WAAW,CAAC,EAClC,SAAS,GAGV;IACC,OAAO,CACL,iCAAK,SAAS,EAAE,UAAU,aACxB,iCACE,SAAS,EACP,2EAA2E,aAG7E,gCACE,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,SAAS,CAAC,WAAW,CAAC,UAAU,EACrC,SAAS,EAAE,sBAAsB,GACjC,EACF,iCAAK,SAAS,EAAE,gCAAgC,aAC9C,gCACE,SAAS,EACP,4EAA4E,YAG7E,SAAS,CAAC,WAAW,CAAC,QAAQ,GAC3B,EACN,iCACE,SAAS,EACP,wEAAwE,aAG1E,4CACE,2CACE,uBAAC,uBAAQ,IAAC,SAAS,EAAE,SAAS,GAAI,GAC7B,EACP,2CACG,IAAA,gBAAQ,EAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,GACpD,IACH,EACN,4CACE,2CACE,uBAAC,mBAAI,IAAC,SAAS,EAAE,SAAS,GAAI,GACzB,EACP,6CAAO,SAAS,CAAC,WAAW,CAAC,KAAK,SAAS,IACvC,EACN,4CACE,2CACE,uBAAC,kBAAG,IAAC,SAAS,EAAE,SAAS,GAAI,GACxB,EACP,2CAAO,SAAS,CAAC,KAAK,IAAI,SAAS,GAAQ,IACvC,IACF,EACN,iCAAK,SAAS,EAAE,wBAAwB,aACtC,6CACG,CACC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC;gDAC5D,GAAG,CACJ,CAAC,OAAO,CAAC,CAAC,CAAC,SAEP,EACP,kCAAM,SAAS,EAAE,iBAAiB,aAC/B,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,UAEzB,EACP,iCAAM,SAAS,EAAE,YAAY,YAC1B,IAAA,+BAAuB,EAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,GAC5C,IACH,EACL,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CACrD,iCAAK,SAAS,EAAC,+CAA+C,aAC5D,uBAAC,qBAAM,IAAC,SAAS,EAAC,SAAS,GAAG,EAC7B,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACzD,2CAAsB,QAAQ,IAAnB,QAAQ,CAAmB,CACvC,CAAC,IACE,CACP,IACG,IACF,EACN,gCAAK,SAAS,EAAC,0EAA0E,YACtF,SAAS,CAAC,KAAK,CAAC,SAAS,IAAI,CAC5B,iCAAM,SAAS,EAAC,yEAAyE,mBAElF,CACR,GACG,IACF,CACP,CAAA;AACH,CAAC;AAtFD,8BAsFC"}
@@ -1,13 +0,0 @@
1
- import { BSOR, Score } from '../../api/interfaces/beatleader';
2
- import { BSMap } from '../../api/interfaces/beatsaver';
3
- interface BLScoreProps {
4
- score: Score;
5
- aroundScores: Score[];
6
- regionTopScores: Score[];
7
- bsMap: BSMap;
8
- difficulties: any[];
9
- statistic: any;
10
- bsor: BSOR;
11
- }
12
- export default function BLRankScore({ score, aroundScores, regionTopScores, difficulties, bsMap, statistic, bsor, }: BLScoreProps): import("react/jsx-runtime").JSX.Element;
13
- export {};
@@ -1,33 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const jsx_runtime_1 = require("react/jsx-runtime");
7
- const lucide_react_1 = require("lucide-react");
8
- const scoregraph_1 = __importDefault(require("../components/scoregraph"));
9
- const rankScoreItem_1 = require("../../img-render/components/rankScoreItem");
10
- const RankDifficulty_1 = require("../../img-render/components/RankDifficulty");
11
- const avatar_1 = require("../../img-render/components/base/avatar");
12
- const utils_1 = require("../../img-render/utils");
13
- const progressbar_1 = __importDefault(require("../../img-render/components/progressbar"));
14
- function BLRankScore({ score, aroundScores, regionTopScores, difficulties, bsMap, statistic, bsor, }) {
15
- const bg = 'https://www.loliapi.com/acg/pc/';
16
- let aroundScore = aroundScores
17
- .slice(0, 7)
18
- .map((it) => ({ ...it, template: false }));
19
- let regionTopScore = regionTopScores
20
- .slice(0, 7)
21
- .map((it) => ({ ...it, template: false }));
22
- if (aroundScore.length < 7) {
23
- aroundScore = aroundScore.concat(new Array(7 - aroundScore.length).fill({ template: true }));
24
- }
25
- if (regionTopScore.length < 7) {
26
- regionTopScore = regionTopScore.concat(new Array(7 - regionTopScore.length).fill({ template: true }));
27
- }
28
- return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsxs)("div", { className: 'flex flex-col justify-center items-center relative h-[720px] w-[1165px] my-auto rounded-none', id: "render-result", children: [(0, jsx_runtime_1.jsx)("div", { className: 'bg-blend-darken h-full w-full left-auto absolute right-auto bg-black/[.6] p-4 text-white flex flex-col justify-between z-10', children: (0, jsx_runtime_1.jsxs)("div", { className: 'flex justify-between items-start gap-2 grow', children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col items-start justify-between text-xl font-bold grow h-full", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex space-x-4 items-center justify-between text-2xl font-bold", children: [(0, jsx_runtime_1.jsx)(avatar_1.Avatar, { className: 'h-16 w-16 rounded-full', src: score.player.avatar, fallback: score.player.name.slice(0, 1) }), (0, jsx_runtime_1.jsx)("div", { children: score.player.name })] }), (0, jsx_runtime_1.jsx)("div", { className: "text-xl text-ellipsis line-clamp-2", children: score.song.name }), (0, jsx_runtime_1.jsxs)("div", { className: "flex space-x-4 h-52", children: [(0, jsx_runtime_1.jsx)(avatar_1.Avatar, { className: 'h-52 w-52 rounded-md', src: score.song.cover, fallback: score.song.name.slice(0, 1) }), (0, jsx_runtime_1.jsxs)("div", { className: "text-xs font-bold flex flex-col items-start justify-between grow w-full", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex space-x-2 items-center text-sm", children: [(0, jsx_runtime_1.jsx)(avatar_1.Avatar, { className: 'h-4 w-4 rounded-full', src: bsMap.uploader.avatar, fallback: score.song.mapper.slice(0, 1) }), (0, jsx_runtime_1.jsx)("div", { className: "flex items-center justify-between", children: (0, jsx_runtime_1.jsx)("div", { className: "text-ellipsis line-clamp-1", children: score.song.mapper }) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "text-xs flex gap-2 items-center *:space-x-1 *:flex *:items-center font-normal", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.HeartPulse, { className: "h-3 w-3" }), (0, jsx_runtime_1.jsx)("span", { children: bsMap.metadata.bpm.toFixed(0) })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("span", { children: (0, jsx_runtime_1.jsx)(lucide_react_1.Key, { className: 'w-3 h-3' }) }), (0, jsx_runtime_1.jsx)("span", { children: score.song.id.toLowerCase().replaceAll('x', '') })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Clock, { className: "h-3 w-3" }), (0, jsx_runtime_1.jsx)("span", { children: (0, utils_1.formatDuration)(bsMap.metadata.duration) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center text-ellipsis col-span-2 line-clamp-1", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Calendar, { className: "h-3 w-3" }), (0, jsx_runtime_1.jsx)("span", { children: (0, utils_1.formatTime)(bsMap.lastPublishedAt) })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center space-x-2 justify-between font-normal", children: [(0, jsx_runtime_1.jsx)(progressbar_1.default, { value: bsMap.stats.score * 100 }), (0, jsx_runtime_1.jsxs)("span", { children: [(bsMap.stats.score * 100).toFixed(2), " %"] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.ThumbsUp, { className: "h-3 w-3 mr-0.5" }), (0, jsx_runtime_1.jsx)("span", { children: bsMap.stats.upvotes })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.ThumbsDown, { className: "h-3 w-3 mr-0.5" }), (0, jsx_runtime_1.jsx)("span", { children: bsMap.stats.downvotes })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: 'text-lg min-w-60 flex flex-col leading-6', children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex justify-between items-center", children: [(0, jsx_runtime_1.jsxs)("span", { children: [" # ", score.pp.toFixed(2), " PP"] }), (0, jsx_runtime_1.jsxs)("span", { children: [" # ", score.rank] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsx)("span", { children: "Accuracy" }), (0, jsx_runtime_1.jsxs)("span", { children: [(score.accuracy * 100).toFixed(2), " %"] })] }), score.fullCombo && ((0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsx)("span", { children: "Full Combo" }), (0, jsx_runtime_1.jsx)(lucide_react_1.Check, {})] })), score.maxCombo && ((0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsx)("span", { children: "Max Combo" }), (0, jsx_runtime_1.jsx)("span", { children: score.maxCombo })] })), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsx)("span", { children: "Missed Notes" }), (0, jsx_runtime_1.jsx)("span", { children: score.missedNotes })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsx)("span", { children: "Total Mistakes" }), (0, jsx_runtime_1.jsx)("span", { children: score.missedNotes })] }), score.modifiers && ((0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsx)("span", { children: "Modifiers" }), (0, jsx_runtime_1.jsx)("span", { children: score.modifiers })] }))] })] })] }), (0, jsx_runtime_1.jsx)("div", { className: "text-xl font-bold h-24 w-[500px] rounded-lg mt-auto flex items-center justify-evenly gap-2 ", children: difficulties
29
- .filter((it) => it.mode === 1)
30
- .map((diff) => ((0, jsx_runtime_1.jsx)(RankDifficulty_1.RankDifficulty, { difficulty: diff.difficultyName, stars: diff.stars, current: score.difficulty.id === diff.id }, diff.difficultyName))) }), (0, jsx_runtime_1.jsxs)("div", { className: "align-end mt-2 mb-2", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-xl font-bold", children: "AccGraph" }), (0, jsx_runtime_1.jsx)(scoregraph_1.default, { scoreId: score.id, scoreInfo: score, statistic: statistic, bsor: bsor, height: 240, width: 480 })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: 'flex justify-between gap-2 items-start mt-auto', children: [(0, jsx_runtime_1.jsxs)("div", { className: 'flex flex-col items-start gap-2', children: [(0, jsx_runtime_1.jsx)("div", { className: 'text-white font-bold text-3xl mr-auto', children: "Global Rank" }), aroundScore.map((cur, idx) => !cur.template ? ((0, jsx_runtime_1.jsx)(rankScoreItem_1.RankScoreItem, { name: cur.player.name, date: cur.timepost, countryCode: cur.player.country ?? 'CN', avatar: cur.player.avatar, globalRank: cur.rank, score: cur.modifiedScore, modifiers: cur.modifiers, isRegionRank: false, acc: cur.accuracy, pp: cur.pp, self: cur.player.id === score.playerId }, cur.id)) : ((0, jsx_runtime_1.jsx)(rankScoreItem_1.ScoreItemSkeleton, { isRegionRank: false }, idx)))] }), (0, jsx_runtime_1.jsxs)("div", { className: 'flex flex-col items-start gap-2', children: [(0, jsx_runtime_1.jsx)("div", { className: 'text-white font-bold text-3xl mr-auto', children: "Region Top Rank" }), regionTopScore.map((cur, idx) => !cur.template ? ((0, jsx_runtime_1.jsx)(rankScoreItem_1.RankScoreItem, { name: cur.player.name, date: cur.timepost, countryCode: cur.player.country ?? 'CN', avatar: cur.player.avatar, globalRank: cur.rank, score: cur.modifiedScore, modifiers: cur.modifiers, isRegionRank: true, acc: cur.accuracy, pp: cur.pp, self: cur.player.id === score.playerId }, cur.id)) : ((0, jsx_runtime_1.jsx)(rankScoreItem_1.ScoreItemSkeleton, { isRegionRank: true }, idx)))] })] })] }) }), (0, jsx_runtime_1.jsx)("img", { src: bg, className: 'inset-0 rounded-lg absolute h-full object-cover w-full', loading: 'eager' })] }) }));
31
- }
32
- exports.default = BLRankScore;
33
- //# sourceMappingURL=bs-score-with-rank.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bs-score-with-rank.js","sourceRoot":"","sources":["../../../src/img-render/result/bs-score-with-rank.tsx"],"names":[],"mappings":"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"}
File without changes
@@ -1,277 +0,0 @@
1
- // import {
2
- // Check,
3
- // Key,
4
- // Clock,
5
- // ThumbsUp,
6
- // ThumbsDown,
7
- // Calendar,
8
- // HeartPulse,
9
- // } from 'lucide-react'
10
- // import ScoreGraph from '../components/scoregraph'
11
- // import React from 'react'
12
- // import { BSOR, Score } from '../../api/interfaces/beatleader'
13
- // import { BSMap } from '../../api/interfaces/beatsaver'
14
- // import {
15
- // BlRankScoreItem,
16
- // ScoreItemSkeleton,
17
- // } from '../../img-render/components/bl-rank-score-item'
18
- // import { RankDifficulty } from '../../img-render/components/RankDifficulty'
19
- // import { Avatar } from '../../img-render/components/base/avatar'
20
- // import { formatDuration, formatTime } from '../../img-render/utils'
21
- // import Progressbar from '../../img-render/components/progressbar'
22
- // import {SSScore} from "../../api/interfaces/scoresaber";
23
- //
24
- // interface SSScoreProps {
25
- // score: SSScore
26
- // aroundScores: SSScore[]
27
- // regionTopScores: SSScore[]
28
- // bsMap: BSMap
29
- // difficulties: any[]
30
- // statistic: any
31
- // bsor: BSOR
32
- // bg: string
33
- // }
34
- //
35
- // export default function SSRankScore({
36
- // score,
37
- // aroundScores,
38
- // regionTopScores,
39
- // difficulties,
40
- // bsMap,
41
- // statistic,
42
- // bsor,
43
- // bg,
44
- // }: SSScoreProps) {
45
- //
46
- //
47
- // let aroundScore = aroundScores
48
- // .slice(0, 7)
49
- // .map((it) => ({ ...it, template: false }))
50
- // let regionTopScore = regionTopScores
51
- // .slice(0, 7)
52
- // .map((it) => ({ ...it, template: false }))
53
- // if (aroundScore.length < 7) {
54
- // aroundScore = aroundScore.concat(
55
- // new Array(7 - aroundScore.length).fill({ template: true })
56
- // )
57
- // }
58
- // if (regionTopScore.length < 7) {
59
- // regionTopScore = regionTopScore.concat(
60
- // new Array(7 - regionTopScore.length).fill({ template: true })
61
- // )
62
- // }
63
- //
64
- // return (
65
- // <>
66
- // <div
67
- // className={
68
- // 'flex flex-col justify-center items-center relative h-[720px] w-[1165px] my-auto rounded-none'
69
- // }
70
- // id="render-result"
71
- // >
72
- // <div
73
- // className={
74
- // 'bg-blend-darken h-full w-full left-auto absolute right-auto bg-black/[.6] p-4 text-white flex flex-col justify-between z-10'
75
- // }
76
- // >
77
- // <div className={'flex justify-between items-start gap-2 grow'}>
78
- // <div className="flex flex-col items-start justify-between text-xl font-bold grow h-full">
79
- // <div className="flex space-x-4 items-center justify-between text-2xl font-bold">
80
- // <Avatar
81
- // className={'h-16 w-16 rounded-full'}
82
- // src={score.player.avatar}
83
- // fallback={score.player.name.slice(0, 1)}
84
- // />
85
- // <div>{score.player.name}</div>
86
- // </div>
87
- // <div className="text-xl text-ellipsis line-clamp-2">
88
- // {score.song.name}
89
- // </div>
90
- // <div className="flex space-x-4 h-52">
91
- // <Avatar
92
- // className={'h-52 w-52 rounded-md'}
93
- // src={score.song.cover}
94
- // fallback={score.song.name.slice(0, 1)}
95
- // />
96
- // <div className="text-xs font-bold flex flex-col items-start justify-between grow w-full">
97
- // <div className="flex space-x-2 items-center text-sm">
98
- // <Avatar
99
- // className={'h-4 w-4 rounded-full'}
100
- // src={bsMap.uploader.avatar}
101
- // fallback={score.song.mapper.slice(0, 1)}
102
- // />
103
- // <div className="flex items-center justify-between">
104
- // <div className="text-ellipsis line-clamp-1">
105
- // {score.song.mapper}
106
- // </div>
107
- // </div>
108
- // </div>
109
- // <div className="text-xs flex gap-2 items-center *:space-x-1 *:flex *:items-center font-normal">
110
- // <div className="flex items-center">
111
- // <HeartPulse className="h-3 w-3" />
112
- // <span>{bsMap.metadata.bpm.toFixed(0)}</span>
113
- // </div>
114
- // <div>
115
- // <span>
116
- // <Key className={'w-3 h-3'} />
117
- // </span>
118
- // <span>
119
- // {score.song.id.toLowerCase().replaceAll('x', '')}
120
- // </span>
121
- // </div>
122
- //
123
- // <div className="flex items-center">
124
- // <Clock className="h-3 w-3" />
125
- // <span>{formatDuration(bsMap.metadata.duration)}</span>
126
- // </div>
127
- // <div className="flex items-center text-ellipsis col-span-2 line-clamp-1">
128
- // <Calendar className="h-3 w-3" />
129
- // <span>{formatTime(bsMap.lastPublishedAt)}</span>
130
- // </div>
131
- // </div>
132
- // <div className="flex items-center space-x-2 justify-between font-normal">
133
- // <Progressbar
134
- // value={bsMap.stats.score * 100}
135
- // // className="h-1.5"
136
- // // containerClassName="h-1.5"
137
- // />
138
- // <span>{(bsMap.stats.score * 100).toFixed(2)} %</span>
139
- // <div className="flex items-center">
140
- // <ThumbsUp className="h-3 w-3 mr-0.5" />
141
- // <span>{bsMap.stats.upvotes}</span>
142
- // </div>
143
- // <div className="flex items-center">
144
- // <ThumbsDown className="h-3 w-3 mr-0.5" />
145
- // <span>{bsMap.stats.downvotes}</span>
146
- // </div>
147
- // </div>
148
- // <div className={'text-lg min-w-60 flex flex-col leading-6'}>
149
- // <div className="flex justify-between items-center">
150
- // <span> # {score.pp.toFixed(2)} PP</span>
151
- // <span> # {score.rank}</span>
152
- // </div>
153
- // {
154
- // <div className="flex items-center justify-between">
155
- // <span>Accuracy</span>
156
- // <span>{(score.accuracy * 100).toFixed(2)} %</span>
157
- // </div>
158
- // }
159
- // {score.fullCombo && (
160
- // <div className="flex items-center justify-between">
161
- // <span>Full Combo</span>
162
- // <Check />
163
- // </div>
164
- // )}
165
- // {score.maxCombo && (
166
- // <div className="flex items-center justify-between">
167
- // <span>Max Combo</span>
168
- // <span>{score.maxCombo}</span>
169
- // </div>
170
- // )}
171
- //
172
- // {
173
- // <div className="flex items-center justify-between">
174
- // <span>Missed Notes</span>
175
- // <span>{score.missedNotes}</span>
176
- // </div>
177
- // }
178
- // {
179
- // <div className="flex items-center justify-between">
180
- // <span>Total Mistakes</span>
181
- // <span>{score.missedNotes}</span>
182
- // </div>
183
- // }
184
- // {score.modifiers && (
185
- // <div className="flex items-center justify-between">
186
- // <span>Modifiers</span>
187
- // <span>{score.modifiers}</span>
188
- // </div>
189
- // )}
190
- // </div>
191
- // </div>
192
- // </div>
193
- // {/*diff code */}
194
- // <div className="text-xl font-bold h-24 w-[500px] rounded-lg mt-auto flex items-center justify-evenly gap-2 ">
195
- // {difficulties
196
- // .filter((it: any) => it.mode === 1)
197
- // .map((diff: any) => (
198
- // <RankDifficulty
199
- // difficulty={diff.difficultyName}
200
- // stars={diff.stars}
201
- // current={score.difficulty.id === diff.id}
202
- // key={diff.difficultyName}
203
- // />
204
- // ))}
205
- // </div>
206
- //
207
- // {/*acc graph*/}
208
- // <div className="align-end mt-2 mb-2">
209
- // <span className="text-xl font-bold">AccGraph</span>
210
- //
211
- // {/*<ScoreGraph scoreId={score.id} scoreInfo={score} />*/}
212
- // </div>
213
- // </div>
214
- // <div className={'flex justify-between gap-2 items-start mt-auto'}>
215
- // <div className={'flex flex-col items-start gap-2'}>
216
- // <div className={'text-white font-bold text-3xl mr-auto'}>
217
- // Global Rank
218
- // </div>
219
- // {aroundScore.map((cur: any, idx) =>
220
- // !cur.template ? (
221
- // <BlRankScoreItem
222
- // key={cur.id}
223
- // name={cur.player.name}
224
- // date={cur.timepost}
225
- // countryCode={cur.player.country ?? 'CN'}
226
- // avatar={cur.player.avatar}
227
- // globalRank={cur.rank}
228
- // score={cur.modifiedScore}
229
- // modifiers={cur.modifiers}
230
- // isRegionRank={false}
231
- // acc={cur.accuracy}
232
- // pp={cur.pp}
233
- // self={cur.player.id === score.leaderboardPlayerInfo.id}
234
- // />
235
- // ) : (
236
- // <ScoreItemSkeleton isRegionRank={false} key={idx} />
237
- // )
238
- // )}
239
- // </div>
240
- // <div className={'flex flex-col items-start gap-2'}>
241
- // <div className={'text-white font-bold text-3xl mr-auto'}>
242
- // Region Top Rank
243
- // </div>
244
- // {regionTopScore.map((cur: any, idx) =>
245
- // !cur.template ? (
246
- // <BlRankScoreItem
247
- // key={cur.id}
248
- // name={cur.player.name}
249
- // date={cur.timepost}
250
- // countryCode={cur.player.country ?? 'CN'}
251
- // avatar={cur.player.avatar}
252
- // globalRank={cur.rank}
253
- // score={cur.modifiedScore}
254
- // modifiers={cur.modifiers}
255
- // isRegionRank
256
- // acc={cur.accuracy}
257
- // pp={cur.pp}
258
- // self={cur.player.id === score.playerId}
259
- // />
260
- // ) : (
261
- // <ScoreItemSkeleton isRegionRank key={idx} />
262
- // )
263
- // )}
264
- // </div>
265
- // </div>
266
- // </div>
267
- // </div>
268
- // <img
269
- // src={bg}
270
- // className={'inset-0 rounded-lg absolute h-full object-cover w-full'}
271
- // loading={'eager'}
272
- // />
273
- // </div>
274
- // </>
275
- // )
276
- // }
277
- //# sourceMappingURL=ss-score-with-rank.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ss-score-with-rank.js","sourceRoot":"","sources":["../../../src/img-render/result/ss-score-with-rank.tsx"],"names":[],"mappings":"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"}