maidraw 0.4.4 → 0.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/themes/chunithm/common/verse/achievement/A.png +0 -0
- package/assets/themes/chunithm/common/verse/achievement/AA.png +0 -0
- package/assets/themes/chunithm/common/verse/achievement/AAA.png +0 -0
- package/assets/themes/chunithm/common/verse/achievement/B.png +0 -0
- package/assets/themes/chunithm/common/verse/achievement/BB.png +0 -0
- package/assets/themes/chunithm/common/verse/achievement/BBB.png +0 -0
- package/assets/themes/chunithm/common/verse/achievement/C.png +0 -0
- package/assets/themes/chunithm/common/verse/achievement/D.png +0 -0
- package/assets/themes/chunithm/common/verse/achievement/S.png +0 -0
- package/assets/themes/chunithm/common/verse/achievement/SS.png +0 -0
- package/assets/themes/chunithm/common/verse/achievement/SSP.png +0 -0
- package/assets/themes/chunithm/common/verse/achievement/SSS.png +0 -0
- package/assets/themes/chunithm/common/verse/achievement/SSSP.png +0 -0
- package/assets/themes/chunithm/common/verse/jp/background.png +0 -0
- package/assets/themes/chunithm/common/verse/jp/logo.png +0 -0
- package/assets/themes/chunithm/common/versionless/icon.png +0 -0
- package/assets/themes/chunithm/common/versionless/milestone/aj.png +0 -0
- package/assets/themes/chunithm/common/versionless/milestone/ajc.png +0 -0
- package/assets/themes/chunithm/common/versionless/milestone/fc.png +0 -0
- package/assets/themes/chunithm/common/versionless/nameplate.png +0 -0
- package/assets/themes/chunithm/jp/verseLandscape/manifest.json +131 -0
- package/assets/themes/{cn → maimai/cn}/2024Landscape/manifest.json +1 -1
- package/assets/themes/{cn → maimai/cn}/2024Portrait/manifest.json +1 -1
- package/assets/themes/maimai/common/versionless/dxRating/numberMap.png +0 -0
- package/assets/themes/maimai/common/versionless/void.png +0 -0
- package/assets/themes/{jp → maimai/jp}/buddiesLandscape/manifest.json +1 -1
- package/assets/themes/{jp → maimai/jp}/buddiesPlusLandscape/manifest.json +1 -1
- package/assets/themes/{jp → maimai/jp}/buddiesPlusPortrait/manifest.json +1 -1
- package/assets/themes/{jp → maimai/jp}/buddiesPortrait/manifest.json +1 -1
- package/assets/themes/{jp → maimai/jp}/prismLandscape/manifest.json +1 -1
- package/assets/themes/{jp → maimai/jp}/prismPlusLandscape/manifest.json +1 -1
- package/assets/themes/{jp → maimai/jp}/prismPlusPortrait/manifest.json +1 -1
- package/assets/themes/{jp → maimai/jp}/prismPortrait/manifest.json +1 -1
- package/dist/chu/bests/best50.d.ts +32 -0
- package/dist/chu/bests/best50.js +752 -0
- package/dist/chu/bests/best50.js.map +1 -0
- package/dist/chu/bests/index.d.ts +1 -0
- package/dist/chu/bests/index.js +6 -0
- package/dist/chu/bests/index.js.map +1 -0
- package/dist/chu/bests/lib/index.d.ts +26 -0
- package/dist/chu/bests/lib/index.js +60 -0
- package/dist/chu/bests/lib/index.js.map +1 -0
- package/dist/chu/bests/lib/kamaiTachi/index.d.ts +154 -0
- package/dist/chu/bests/lib/kamaiTachi/index.js +315 -0
- package/dist/chu/bests/lib/kamaiTachi/index.js.map +1 -0
- package/dist/chu/bests/type.d.ts +121 -0
- package/dist/chu/bests/type.js +3 -0
- package/dist/chu/bests/type.js.map +1 -0
- package/dist/chu/chart/database.d.ts +9 -0
- package/dist/chu/chart/database.js +64 -0
- package/dist/chu/chart/database.js.map +1 -0
- package/dist/chu/chart/index.d.ts +4 -0
- package/dist/chu/chart/index.js +9 -0
- package/dist/chu/chart/index.js.map +1 -0
- package/dist/chu/index.d.ts +8 -0
- package/dist/chu/index.js +45 -0
- package/dist/chu/index.js.map +1 -0
- package/dist/chu/type.d.ts +51 -0
- package/dist/chu/type.js +42 -0
- package/dist/chu/type.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/cache.d.ts +8 -0
- package/dist/lib/cache.js +52 -0
- package/dist/lib/cache.js.map +1 -0
- package/dist/mai/best50/index.d.ts +1 -1
- package/dist/mai/best50/index.js +32 -7
- package/dist/mai/best50/index.js.map +1 -1
- package/dist/mai/best50/lib/divingFish/index.d.ts +1 -1
- package/dist/mai/best50/lib/divingFish/index.js +1 -1
- package/dist/mai/best50/lib/divingFish/index.js.map +1 -1
- package/dist/mai/best50/lib/index.d.ts +2 -12
- package/dist/mai/best50/lib/index.js +6 -82
- package/dist/mai/best50/lib/index.js.map +1 -1
- package/dist/mai/best50/lib/kamaiTachi/index.d.ts +1 -1
- package/dist/mai/best50/lib/kamaiTachi/index.js +1 -1
- package/dist/mai/best50/lib/kamaiTachi/index.js.map +1 -1
- package/dist/mai/best50/lib/lxns/index.d.ts +1 -1
- package/dist/mai/best50/lib/lxns/index.js +1 -1
- package/dist/mai/best50/lib/lxns/index.js.map +1 -1
- package/dist/mai/best50/type.d.ts +1 -1
- package/dist/mai/chart/database.d.ts +1 -1
- package/dist/mai/chart/database.js +19 -12
- package/dist/mai/chart/database.js.map +1 -1
- package/dist/mai/index.d.ts +2 -0
- package/dist/mai/index.js +34 -0
- package/dist/mai/index.js.map +1 -1
- package/dist/mai/type.js.map +1 -0
- package/package.json +2 -2
- package/dist/type.js.map +0 -1
- /package/assets/themes/{common/versionless/dxRating → chunithm/common/versionless}/numberMap.png +0 -0
- /package/assets/themes/{common → chunithm/common}/versionless/void.png +0 -0
- /package/assets/themes/{common → maimai/common}/buddies/achievement/a.png +0 -0
- /package/assets/themes/{common → maimai/common}/buddies/achievement/aa.png +0 -0
- /package/assets/themes/{common → maimai/common}/buddies/achievement/aaa.png +0 -0
- /package/assets/themes/{common → maimai/common}/buddies/achievement/b.png +0 -0
- /package/assets/themes/{common → maimai/common}/buddies/achievement/bb.png +0 -0
- /package/assets/themes/{common → maimai/common}/buddies/achievement/bbb.png +0 -0
- /package/assets/themes/{common → maimai/common}/buddies/achievement/c.png +0 -0
- /package/assets/themes/{common → maimai/common}/buddies/achievement/d.png +0 -0
- /package/assets/themes/{common → maimai/common}/buddies/achievement/s.png +0 -0
- /package/assets/themes/{common → maimai/common}/buddies/achievement/sp.png +0 -0
- /package/assets/themes/{common → maimai/common}/buddies/achievement/ss.png +0 -0
- /package/assets/themes/{common → maimai/common}/buddies/achievement/ssp.png +0 -0
- /package/assets/themes/{common → maimai/common}/buddies/achievement/sss.png +0 -0
- /package/assets/themes/{common → maimai/common}/buddies/achievement/sssp.png +0 -0
- /package/assets/themes/{common → maimai/common}/buddies/cn/logo.png +0 -0
- /package/assets/themes/{common → maimai/common}/buddies/jp/background.png +0 -0
- /package/assets/themes/{common → maimai/common}/buddies/jp/chara.png +0 -0
- /package/assets/themes/{common → maimai/common}/buddies/jp/laundry.png +0 -0
- /package/assets/themes/{common → maimai/common}/buddies/jp/logo.png +0 -0
- /package/assets/themes/{common → maimai/common}/buddies/plus/chara.png +0 -0
- /package/assets/themes/{common → maimai/common}/buddies/plus/laundry.png +0 -0
- /package/assets/themes/{common → maimai/common}/buddies/plus/logo.png +0 -0
- /package/assets/themes/{common → maimai/common}/finale/achievement/a.png +0 -0
- /package/assets/themes/{common → maimai/common}/finale/achievement/aa.png +0 -0
- /package/assets/themes/{common → maimai/common}/finale/achievement/aaa.png +0 -0
- /package/assets/themes/{common → maimai/common}/finale/achievement/b.png +0 -0
- /package/assets/themes/{common → maimai/common}/finale/achievement/c.png +0 -0
- /package/assets/themes/{common → maimai/common}/finale/achievement/d.png +0 -0
- /package/assets/themes/{common → maimai/common}/finale/achievement/e.png +0 -0
- /package/assets/themes/{common → maimai/common}/finale/achievement/f.png +0 -0
- /package/assets/themes/{common → maimai/common}/finale/achievement/s.png +0 -0
- /package/assets/themes/{common → maimai/common}/finale/achievement/sp.png +0 -0
- /package/assets/themes/{common → maimai/common}/finale/achievement/ss.png +0 -0
- /package/assets/themes/{common → maimai/common}/finale/achievement/ssp.png +0 -0
- /package/assets/themes/{common → maimai/common}/finale/achievement/sss.png +0 -0
- /package/assets/themes/{common → maimai/common}/finale/achievement/sssp.png +0 -0
- /package/assets/themes/{common → maimai/common}/finale/background.png +0 -0
- /package/assets/themes/{common → maimai/common}/finale/background2.png +0 -0
- /package/assets/themes/{common → maimai/common}/finale/logo.png +0 -0
- /package/assets/themes/{common → maimai/common}/finale/milestone/ap.png +0 -0
- /package/assets/themes/{common → maimai/common}/finale/milestone/app.png +0 -0
- /package/assets/themes/{common → maimai/common}/finale/milestone/fc.png +0 -0
- /package/assets/themes/{common → maimai/common}/finale/milestone/fcp.png +0 -0
- /package/assets/themes/{common → maimai/common}/finale/milestone/fdx.png +0 -0
- /package/assets/themes/{common → maimai/common}/finale/milestone/fdxp.png +0 -0
- /package/assets/themes/{common → maimai/common}/finale/milestone/fsp.png +0 -0
- /package/assets/themes/{common → maimai/common}/finale/milestone/sync.png +0 -0
- /package/assets/themes/{common → maimai/common}/prism/achievement/a.png +0 -0
- /package/assets/themes/{common → maimai/common}/prism/achievement/aa.png +0 -0
- /package/assets/themes/{common → maimai/common}/prism/achievement/aaa.png +0 -0
- /package/assets/themes/{common → maimai/common}/prism/achievement/b.png +0 -0
- /package/assets/themes/{common → maimai/common}/prism/achievement/bb.png +0 -0
- /package/assets/themes/{common → maimai/common}/prism/achievement/bbb.png +0 -0
- /package/assets/themes/{common → maimai/common}/prism/achievement/c.png +0 -0
- /package/assets/themes/{common → maimai/common}/prism/achievement/d.png +0 -0
- /package/assets/themes/{common → maimai/common}/prism/achievement/s.png +0 -0
- /package/assets/themes/{common → maimai/common}/prism/achievement/sp.png +0 -0
- /package/assets/themes/{common → maimai/common}/prism/achievement/ss.png +0 -0
- /package/assets/themes/{common → maimai/common}/prism/achievement/ssp.png +0 -0
- /package/assets/themes/{common → maimai/common}/prism/achievement/sss.png +0 -0
- /package/assets/themes/{common → maimai/common}/prism/achievement/sssp.png +0 -0
- /package/assets/themes/{common → maimai/common}/prism/jp/background.png +0 -0
- /package/assets/themes/{common → maimai/common}/prism/jp/chara.png +0 -0
- /package/assets/themes/{common → maimai/common}/prism/jp/laundry.png +0 -0
- /package/assets/themes/{common → maimai/common}/prism/jp/logo.png +0 -0
- /package/assets/themes/{common → maimai/common}/prism/plus/chara.png +0 -0
- /package/assets/themes/{common → maimai/common}/prism/plus/laundry.png +0 -0
- /package/assets/themes/{common → maimai/common}/prism/plus/logo.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/dxRating/cn/blue.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/dxRating/cn/bronze.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/dxRating/cn/gold.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/dxRating/cn/green.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/dxRating/cn/platinum.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/dxRating/cn/purple.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/dxRating/cn/rainbow.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/dxRating/cn/red.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/dxRating/cn/silver.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/dxRating/cn/white.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/dxRating/cn/yellow.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/dxRating/jp/blue.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/dxRating/jp/bronze.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/dxRating/jp/gold.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/dxRating/jp/green.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/dxRating/jp/platinum.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/dxRating/jp/purple.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/dxRating/jp/rainbow.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/dxRating/jp/red.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/dxRating/jp/silver.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/dxRating/jp/white.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/dxRating/jp/yellow.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/icon.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/milestone/ap.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/milestone/app.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/milestone/fc.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/milestone/fcp.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/milestone/fdx.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/milestone/fdxp.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/milestone/fs.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/milestone/fsp.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/milestone/none.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/milestone/sync.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/mode/cn/dx.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/mode/cn/standard.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/mode/jp/dx.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/mode/jp/standard.png +0 -0
- /package/assets/themes/{common → maimai/common}/versionless/nameplate.png +0 -0
- /package/assets/themes/{jp → maimai/jp}/finaleLandscape/manifest.json +0 -0
- /package/assets/themes/{jp → maimai/jp}/finalePortrait/manifest.json +0 -0
- /package/dist/{type.d.ts → mai/type.d.ts} +0 -0
- /package/dist/{type.js → mai/type.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/chu/bests/lib/kamaiTachi/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { IScore } from "../../mai/type";
|
|
2
|
+
export interface IThemeManifest {
|
|
3
|
+
displayName: string;
|
|
4
|
+
name: string;
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
sprites: IThemeSprites;
|
|
8
|
+
elements: IThemeElements[];
|
|
9
|
+
}
|
|
10
|
+
export interface IThemeSprites {
|
|
11
|
+
achievement: {
|
|
12
|
+
d: string;
|
|
13
|
+
c: string;
|
|
14
|
+
b: string;
|
|
15
|
+
bb: string;
|
|
16
|
+
bbb: string;
|
|
17
|
+
a: string;
|
|
18
|
+
aa: string;
|
|
19
|
+
aaa: string;
|
|
20
|
+
s: string;
|
|
21
|
+
ss: string;
|
|
22
|
+
ssp: string;
|
|
23
|
+
sss: string;
|
|
24
|
+
sssp: string;
|
|
25
|
+
};
|
|
26
|
+
milestone: {
|
|
27
|
+
aj: string;
|
|
28
|
+
ajc: string;
|
|
29
|
+
fc: string;
|
|
30
|
+
none: string;
|
|
31
|
+
};
|
|
32
|
+
ratingNumberMap: string;
|
|
33
|
+
profile: {
|
|
34
|
+
icon: string;
|
|
35
|
+
nameplate: string;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export type IThemeElements = IThemeProfileElement | IThemeScoreElement | IThemeImageElement | IThemeTextElement;
|
|
39
|
+
export interface IThemeElement {
|
|
40
|
+
type: string;
|
|
41
|
+
x: number;
|
|
42
|
+
y: number;
|
|
43
|
+
}
|
|
44
|
+
export interface IThemeProfileElement extends IThemeElement {
|
|
45
|
+
type: "profile";
|
|
46
|
+
height: number;
|
|
47
|
+
}
|
|
48
|
+
export interface IThemeScoreElement extends IThemeElement {
|
|
49
|
+
type: "score-grid";
|
|
50
|
+
horizontalSize: number;
|
|
51
|
+
verticalSize: number;
|
|
52
|
+
region: "new" | "old";
|
|
53
|
+
index: number;
|
|
54
|
+
scoreBubble: {
|
|
55
|
+
width: number;
|
|
56
|
+
height: number;
|
|
57
|
+
margin: number;
|
|
58
|
+
gap: number;
|
|
59
|
+
color: {
|
|
60
|
+
basic: string;
|
|
61
|
+
advanced: string;
|
|
62
|
+
expert: string;
|
|
63
|
+
master: string;
|
|
64
|
+
ultima: string;
|
|
65
|
+
worldsEnd: string;
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
export interface IThemeImageElement extends IThemeElement {
|
|
70
|
+
type: "image";
|
|
71
|
+
width: number;
|
|
72
|
+
height: number;
|
|
73
|
+
/**
|
|
74
|
+
* Relative path from the manifest file to the element file.
|
|
75
|
+
*/
|
|
76
|
+
path: string;
|
|
77
|
+
}
|
|
78
|
+
export interface IThemeTextElement extends IThemeElement {
|
|
79
|
+
type: "text";
|
|
80
|
+
size: number;
|
|
81
|
+
content: string;
|
|
82
|
+
/**
|
|
83
|
+
* If width is provied and the text is too long, it will be cut off.
|
|
84
|
+
*/
|
|
85
|
+
width?: number;
|
|
86
|
+
/**
|
|
87
|
+
* If height is provied and the text is too big, it will be cut off.
|
|
88
|
+
*/
|
|
89
|
+
height?: number;
|
|
90
|
+
/**
|
|
91
|
+
* If true, instead of cutting off the text, it will change to a new line.
|
|
92
|
+
* Height restrictions will still apply.
|
|
93
|
+
*/
|
|
94
|
+
linebreak?: boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Text alignment.
|
|
97
|
+
* Defaults to left.
|
|
98
|
+
*/
|
|
99
|
+
align?: "left" | "center" | "right";
|
|
100
|
+
/**
|
|
101
|
+
* Text color.
|
|
102
|
+
* Defaults to white (#FFFFFF).
|
|
103
|
+
*/
|
|
104
|
+
color?: string;
|
|
105
|
+
/**
|
|
106
|
+
* Text border color.
|
|
107
|
+
* Defaults a darker variant of `color`.
|
|
108
|
+
*/
|
|
109
|
+
borderColor?: string;
|
|
110
|
+
/**
|
|
111
|
+
* Text font. Please make sure the font is available in the environment.
|
|
112
|
+
* Defaults to a preconfigured font macro. Check source code for more info.
|
|
113
|
+
*/
|
|
114
|
+
font?: string;
|
|
115
|
+
}
|
|
116
|
+
export interface IBest50 {
|
|
117
|
+
new: IScore[];
|
|
118
|
+
old: IScore[];
|
|
119
|
+
username: string;
|
|
120
|
+
rating: number;
|
|
121
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../../src/chu/bests/type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare class Database {
|
|
2
|
+
private static localDatabasePath;
|
|
3
|
+
static setLocalDatabasePath(path: string): void;
|
|
4
|
+
static hasLocalDatabase(): boolean;
|
|
5
|
+
private static cache;
|
|
6
|
+
static cacheJackets(ids: number[]): Promise<void>;
|
|
7
|
+
static fecthJacket(id: number): Promise<Buffer | null>;
|
|
8
|
+
static downloadJacket(id: number): Promise<Buffer | null>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
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.Database = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const upath_1 = __importDefault(require("upath"));
|
|
9
|
+
const axios_1 = __importDefault(require("axios"));
|
|
10
|
+
const cache_1 = require("../../lib/cache");
|
|
11
|
+
const __1 = require("..");
|
|
12
|
+
// import { EDifficulty, IChart } from "@maidraw/type";
|
|
13
|
+
class Database {
|
|
14
|
+
static localDatabasePath = "";
|
|
15
|
+
static setLocalDatabasePath(path) {
|
|
16
|
+
this.localDatabasePath = path;
|
|
17
|
+
}
|
|
18
|
+
static hasLocalDatabase() {
|
|
19
|
+
return fs_1.default.existsSync(this.localDatabasePath);
|
|
20
|
+
}
|
|
21
|
+
static cache = new cache_1.Cache();
|
|
22
|
+
static async cacheJackets(ids) {
|
|
23
|
+
const promises = [];
|
|
24
|
+
for (const id of ids) {
|
|
25
|
+
promises.push(this.fecthJacket(id));
|
|
26
|
+
}
|
|
27
|
+
await Promise.all(promises);
|
|
28
|
+
}
|
|
29
|
+
static async fecthJacket(id) {
|
|
30
|
+
const cacheKey = `chuni-jacket-${id}`;
|
|
31
|
+
const cached = await this.cache.get(cacheKey);
|
|
32
|
+
if (cached instanceof Buffer) {
|
|
33
|
+
__1.Chuni.logger.trace(`GET Jacket-${id}, cache HIT`);
|
|
34
|
+
return cached;
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
__1.Chuni.logger.trace(`GET Jacket-${id}, cache MISS`);
|
|
38
|
+
const jacket = await this.downloadJacket(id);
|
|
39
|
+
if (jacket)
|
|
40
|
+
this.cache.put(cacheKey, jacket, 1000 * 60 * 60);
|
|
41
|
+
return jacket;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
static async downloadJacket(id) {
|
|
45
|
+
id = id % 10000;
|
|
46
|
+
const localFilePath = upath_1.default.join(this.localDatabasePath, "assets", "chunithm", "jackets", `${id.toString().padStart(4, "0")}.png`);
|
|
47
|
+
if (fs_1.default.existsSync(localFilePath)) {
|
|
48
|
+
__1.Chuni.logger.trace(`GET Jacket-${id}, database HIT`);
|
|
49
|
+
return fs_1.default.readFileSync(localFilePath);
|
|
50
|
+
}
|
|
51
|
+
const beginTimestamp = Date.now();
|
|
52
|
+
const res = await axios_1.default
|
|
53
|
+
.get(`https://assets2.lxns.net/chunithm/jacket/${id}.png`, {
|
|
54
|
+
responseType: "arraybuffer",
|
|
55
|
+
})
|
|
56
|
+
.then((res) => res.data)
|
|
57
|
+
.catch((e) => null);
|
|
58
|
+
const timeDifference = Date.now() - beginTimestamp;
|
|
59
|
+
__1.Chuni.logger.trace(`GET Jacket-${id}, database MISS, took ${timeDifference}ms`);
|
|
60
|
+
return res;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.Database = Database;
|
|
64
|
+
//# sourceMappingURL=database.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../../src/chu/chart/database.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Chart = void 0;
|
|
4
|
+
const database_1 = require("./database");
|
|
5
|
+
class Chart {
|
|
6
|
+
static Database = database_1.Database;
|
|
7
|
+
}
|
|
8
|
+
exports.Chart = Chart;
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chu/chart/index.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AAEtC,MAAa,KAAK;IACd,MAAM,CAAC,QAAQ,GAAG,mBAAQ,CAAC;;AAD/B,sBAEC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
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.Chuni = void 0;
|
|
7
|
+
const bests_1 = require("./bests");
|
|
8
|
+
const chart_1 = require("./chart");
|
|
9
|
+
const bunyan_1 = __importDefault(require("bunyan"));
|
|
10
|
+
class Chuni {
|
|
11
|
+
static logger = new bunyan_1.default({
|
|
12
|
+
name: "maidraw.chuni",
|
|
13
|
+
streams: [
|
|
14
|
+
{
|
|
15
|
+
stream: process.stdout,
|
|
16
|
+
level: (() => {
|
|
17
|
+
switch (process.env.LOG_LEVEL) {
|
|
18
|
+
case "trace":
|
|
19
|
+
return bunyan_1.default.TRACE;
|
|
20
|
+
case "debug":
|
|
21
|
+
return bunyan_1.default.DEBUG;
|
|
22
|
+
case "info":
|
|
23
|
+
return bunyan_1.default.INFO;
|
|
24
|
+
case "warn":
|
|
25
|
+
return bunyan_1.default.WARN;
|
|
26
|
+
case "error":
|
|
27
|
+
return bunyan_1.default.ERROR;
|
|
28
|
+
case "fatal":
|
|
29
|
+
return bunyan_1.default.FATAL;
|
|
30
|
+
default:
|
|
31
|
+
return bunyan_1.default.INFO;
|
|
32
|
+
}
|
|
33
|
+
})(),
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
stream: process.stderr,
|
|
37
|
+
level: bunyan_1.default.ERROR,
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
});
|
|
41
|
+
static Best50 = bests_1.Best50;
|
|
42
|
+
static Chart = chart_1.Chart;
|
|
43
|
+
}
|
|
44
|
+
exports.Chuni = Chuni;
|
|
45
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chu/index.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAiC;AACjC,mCAAgC;AAEhC,oDAA4B;AAE5B,MAAa,KAAK;IACP,MAAM,CAAC,MAAM,GAAG,IAAI,gBAAM,CAAC;QAC9B,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE;YACL;gBACI,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,KAAK,EAAE,CAAC,GAAG,EAAE;oBACT,QAAQ,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;wBAC5B,KAAK,OAAO;4BACR,OAAO,gBAAM,CAAC,KAAK,CAAC;wBACxB,KAAK,OAAO;4BACR,OAAO,gBAAM,CAAC,KAAK,CAAC;wBACxB,KAAK,MAAM;4BACP,OAAO,gBAAM,CAAC,IAAI,CAAC;wBACvB,KAAK,MAAM;4BACP,OAAO,gBAAM,CAAC,IAAI,CAAC;wBACvB,KAAK,OAAO;4BACR,OAAO,gBAAM,CAAC,KAAK,CAAC;wBACxB,KAAK,OAAO;4BACR,OAAO,gBAAM,CAAC,KAAK,CAAC;wBACxB;4BACI,OAAO,gBAAM,CAAC,IAAI,CAAC;oBAC3B,CAAC;gBACL,CAAC,CAAC,EAAE;aACP;YACD;gBACI,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,KAAK,EAAE,gBAAM,CAAC,KAAK;aACtB;SACJ;KACJ,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,GAAG,cAAM,CAAC;IACvB,MAAM,CAAC,KAAK,GAAG,aAAK,CAAC;;AAhCzB,sBAiCC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export declare enum EDifficulty {
|
|
2
|
+
BASIC = 0,
|
|
3
|
+
ADVANCED = 1,
|
|
4
|
+
EXPERT = 2,
|
|
5
|
+
MASTER = 3,
|
|
6
|
+
ULTIMA = 4,
|
|
7
|
+
WORLDS_END = 5
|
|
8
|
+
}
|
|
9
|
+
export declare enum EComboTypes {
|
|
10
|
+
NONE = 0,
|
|
11
|
+
FULL_COMBO = 1,
|
|
12
|
+
ALL_JUSTICE = 2,
|
|
13
|
+
ALL_JUSTICE_CRITICAL = 3
|
|
14
|
+
}
|
|
15
|
+
export declare enum ESyncTypes {
|
|
16
|
+
NONE = 0,
|
|
17
|
+
FULL_CHAIN = 1,
|
|
18
|
+
FULL_CHAIN_JUSTICE = 2
|
|
19
|
+
}
|
|
20
|
+
export declare enum EAchievementTypes {
|
|
21
|
+
D = 0,
|
|
22
|
+
C = 1,
|
|
23
|
+
B = 2,
|
|
24
|
+
BB = 3,
|
|
25
|
+
BBB = 4,
|
|
26
|
+
A = 5,
|
|
27
|
+
AA = 6,
|
|
28
|
+
AAA = 7,
|
|
29
|
+
S = 8,
|
|
30
|
+
SS = 9,
|
|
31
|
+
SSP = 10,
|
|
32
|
+
SSS = 11,
|
|
33
|
+
SSSP = 12
|
|
34
|
+
}
|
|
35
|
+
export interface IScore {
|
|
36
|
+
chart: IChart;
|
|
37
|
+
combo: EComboTypes;
|
|
38
|
+
score: number;
|
|
39
|
+
rank: EAchievementTypes;
|
|
40
|
+
rating: number;
|
|
41
|
+
}
|
|
42
|
+
export interface IChart {
|
|
43
|
+
id: number;
|
|
44
|
+
name: string;
|
|
45
|
+
difficulty: EDifficulty;
|
|
46
|
+
/**
|
|
47
|
+
* Chart internal level.
|
|
48
|
+
* `7.0, 11.2, 11.7, 13.2, 14.8, 15.0`
|
|
49
|
+
*/
|
|
50
|
+
level: number;
|
|
51
|
+
}
|
package/dist/chu/type.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EAchievementTypes = exports.ESyncTypes = exports.EComboTypes = exports.EDifficulty = void 0;
|
|
4
|
+
var EDifficulty;
|
|
5
|
+
(function (EDifficulty) {
|
|
6
|
+
EDifficulty[EDifficulty["BASIC"] = 0] = "BASIC";
|
|
7
|
+
EDifficulty[EDifficulty["ADVANCED"] = 1] = "ADVANCED";
|
|
8
|
+
EDifficulty[EDifficulty["EXPERT"] = 2] = "EXPERT";
|
|
9
|
+
EDifficulty[EDifficulty["MASTER"] = 3] = "MASTER";
|
|
10
|
+
EDifficulty[EDifficulty["ULTIMA"] = 4] = "ULTIMA";
|
|
11
|
+
EDifficulty[EDifficulty["WORLDS_END"] = 5] = "WORLDS_END";
|
|
12
|
+
})(EDifficulty || (exports.EDifficulty = EDifficulty = {}));
|
|
13
|
+
var EComboTypes;
|
|
14
|
+
(function (EComboTypes) {
|
|
15
|
+
EComboTypes[EComboTypes["NONE"] = 0] = "NONE";
|
|
16
|
+
EComboTypes[EComboTypes["FULL_COMBO"] = 1] = "FULL_COMBO";
|
|
17
|
+
EComboTypes[EComboTypes["ALL_JUSTICE"] = 2] = "ALL_JUSTICE";
|
|
18
|
+
EComboTypes[EComboTypes["ALL_JUSTICE_CRITICAL"] = 3] = "ALL_JUSTICE_CRITICAL";
|
|
19
|
+
})(EComboTypes || (exports.EComboTypes = EComboTypes = {}));
|
|
20
|
+
var ESyncTypes;
|
|
21
|
+
(function (ESyncTypes) {
|
|
22
|
+
ESyncTypes[ESyncTypes["NONE"] = 0] = "NONE";
|
|
23
|
+
ESyncTypes[ESyncTypes["FULL_CHAIN"] = 1] = "FULL_CHAIN";
|
|
24
|
+
ESyncTypes[ESyncTypes["FULL_CHAIN_JUSTICE"] = 2] = "FULL_CHAIN_JUSTICE";
|
|
25
|
+
})(ESyncTypes || (exports.ESyncTypes = ESyncTypes = {}));
|
|
26
|
+
var EAchievementTypes;
|
|
27
|
+
(function (EAchievementTypes) {
|
|
28
|
+
EAchievementTypes[EAchievementTypes["D"] = 0] = "D";
|
|
29
|
+
EAchievementTypes[EAchievementTypes["C"] = 1] = "C";
|
|
30
|
+
EAchievementTypes[EAchievementTypes["B"] = 2] = "B";
|
|
31
|
+
EAchievementTypes[EAchievementTypes["BB"] = 3] = "BB";
|
|
32
|
+
EAchievementTypes[EAchievementTypes["BBB"] = 4] = "BBB";
|
|
33
|
+
EAchievementTypes[EAchievementTypes["A"] = 5] = "A";
|
|
34
|
+
EAchievementTypes[EAchievementTypes["AA"] = 6] = "AA";
|
|
35
|
+
EAchievementTypes[EAchievementTypes["AAA"] = 7] = "AAA";
|
|
36
|
+
EAchievementTypes[EAchievementTypes["S"] = 8] = "S";
|
|
37
|
+
EAchievementTypes[EAchievementTypes["SS"] = 9] = "SS";
|
|
38
|
+
EAchievementTypes[EAchievementTypes["SSP"] = 10] = "SSP";
|
|
39
|
+
EAchievementTypes[EAchievementTypes["SSS"] = 11] = "SSS";
|
|
40
|
+
EAchievementTypes[EAchievementTypes["SSSP"] = 12] = "SSSP";
|
|
41
|
+
})(EAchievementTypes || (exports.EAchievementTypes = EAchievementTypes = {}));
|
|
42
|
+
//# sourceMappingURL=type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/chu/type.ts"],"names":[],"mappings":";;;AAAA,IAAY,WAOX;AAPD,WAAY,WAAW;IACnB,+CAAK,CAAA;IACL,qDAAQ,CAAA;IACR,iDAAM,CAAA;IACN,iDAAM,CAAA;IACN,iDAAM,CAAA;IACN,yDAAU,CAAA;AACd,CAAC,EAPW,WAAW,2BAAX,WAAW,QAOtB;AAED,IAAY,WAKX;AALD,WAAY,WAAW;IACnB,6CAAI,CAAA;IACJ,yDAAU,CAAA;IACV,2DAAW,CAAA;IACX,6EAAoB,CAAA;AACxB,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB;AAED,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,2CAAI,CAAA;IACJ,uDAAU,CAAA;IACV,uEAAkB,CAAA;AACtB,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;AAED,IAAY,iBAcX;AAdD,WAAY,iBAAiB;IACzB,mDAAC,CAAA;IACD,mDAAC,CAAA;IACD,mDAAC,CAAA;IACD,qDAAE,CAAA;IACF,uDAAG,CAAA;IACH,mDAAC,CAAA;IACD,qDAAE,CAAA;IACF,uDAAG,CAAA;IACH,mDAAC,CAAA;IACD,qDAAE,CAAA;IACF,wDAAG,CAAA;IACH,wDAAG,CAAA;IACH,0DAAI,CAAA;AACR,CAAC,EAdW,iBAAiB,iCAAjB,iBAAiB,QAc5B"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MaiDraw = void 0;
|
|
4
|
+
const chu_1 = require("./chu");
|
|
4
5
|
const mai_1 = require("./mai");
|
|
5
6
|
class MaiDraw {
|
|
6
7
|
static Maimai = mai_1.Maimai;
|
|
8
|
+
static Chuni = chu_1.Chuni;
|
|
7
9
|
}
|
|
8
10
|
exports.MaiDraw = MaiDraw;
|
|
9
11
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAE/B,MAAa,OAAO;IAChB,MAAM,CAAC,MAAM,GAAG,YAAM,CAAC;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,+BAA8B;AAC9B,+BAA+B;AAE/B,MAAa,OAAO;IAChB,MAAM,CAAC,MAAM,GAAG,YAAM,CAAC;IACvB,MAAM,CAAC,KAAK,GAAG,WAAK,CAAC;;AAFzB,0BAGC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Cache = void 0;
|
|
4
|
+
const memory_cache_1 = require("memory-cache");
|
|
5
|
+
const redis_1 = require("redis");
|
|
6
|
+
class Cache {
|
|
7
|
+
memCache;
|
|
8
|
+
redisClient;
|
|
9
|
+
isRedisAvailable = true;
|
|
10
|
+
constructor() {
|
|
11
|
+
this.memCache = new memory_cache_1.Cache();
|
|
12
|
+
this.redisClient = (0, redis_1.createClient)();
|
|
13
|
+
this.redisClient.on("error", (e) => {
|
|
14
|
+
console.error("Redis error", e);
|
|
15
|
+
this.isRedisAvailable = false;
|
|
16
|
+
});
|
|
17
|
+
this.redisClient.connect();
|
|
18
|
+
}
|
|
19
|
+
async get(key) {
|
|
20
|
+
if (this.isRedisAvailable) {
|
|
21
|
+
const redisValue = await this.redisClient.get(key);
|
|
22
|
+
if (redisValue) {
|
|
23
|
+
try {
|
|
24
|
+
return JSON.parse(redisValue);
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return Buffer.from(redisValue, "base64");
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
else
|
|
32
|
+
return this.memCache.get(key);
|
|
33
|
+
}
|
|
34
|
+
async put(key, value, ttl) {
|
|
35
|
+
if (this.isRedisAvailable) {
|
|
36
|
+
if (Buffer.isBuffer(value)) {
|
|
37
|
+
await this.redisClient.set(key, value.toString("base64"), {
|
|
38
|
+
EX: Math.floor(ttl / 1000),
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
await this.redisClient.set(key, JSON.stringify(value), {
|
|
43
|
+
EX: Math.floor(ttl / 1000),
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else
|
|
48
|
+
this.memCache.put(key, value, ttl);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.Cache = Cache;
|
|
52
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/lib/cache.ts"],"names":[],"mappings":";;;AAAA,+CAAiD;AACjD,iCAAqC;AACrC,MAAa,KAAK;IACN,QAAQ,CAAC;IACT,WAAW,CAAC;IAEZ,gBAAgB,GAAG,IAAI,CAAC;IAChC;QACI,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAQ,EAAe,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,IAAA,oBAAY,GAAE,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YAC/B,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,GAAW;QACjB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnD,IAAI,UAAU,EAAE,CAAC;gBACb,IAAI,CAAC;oBACD,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAClC,CAAC;gBAAC,MAAM,CAAC;oBACL,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBAC7C,CAAC;YACL,CAAC;QACL,CAAC;;YAAM,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,GAAW;QAC1C,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;oBACtD,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC;iBAC7B,CAAC,CAAC;YACP,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;oBACnD,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC;iBAC7B,CAAC,CAAC;YACP,CAAC;QACL,CAAC;;YAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;CACJ;AAvCD,sBAuCC"}
|
package/dist/mai/best50/index.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.Best50 = void 0;
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const upath_1 = __importDefault(require("upath"));
|
|
9
|
-
const type_1 = require("
|
|
9
|
+
const type_1 = require("../type");
|
|
10
10
|
const canvas_1 = require("canvas");
|
|
11
11
|
const color_1 = __importDefault(require("color"));
|
|
12
12
|
const sharp_1 = __importDefault(require("sharp"));
|
|
@@ -62,7 +62,7 @@ class Best50 {
|
|
|
62
62
|
return !!this.themes[name];
|
|
63
63
|
}
|
|
64
64
|
static {
|
|
65
|
-
const manifests = (0, glob_1.globSync)(upath_1.default.join(this.assetsPath, "themes", "**", "manifest.json"));
|
|
65
|
+
const manifests = (0, glob_1.globSync)(upath_1.default.join(this.assetsPath, "themes", "maimai", "**", "manifest.json"));
|
|
66
66
|
for (const manifestPath of manifests) {
|
|
67
67
|
const manifest = JSON.parse(fs_1.default.readFileSync(manifestPath, "utf-8"));
|
|
68
68
|
if (this.validateManifest(manifest, upath_1.default.dirname(manifestPath))) {
|
|
@@ -71,7 +71,7 @@ class Best50 {
|
|
|
71
71
|
}
|
|
72
72
|
const loadThemeResult = this.loadTheme(this.DEFAULT_THEME);
|
|
73
73
|
if (!loadThemeResult) {
|
|
74
|
-
console.error("Failed to load theme.");
|
|
74
|
+
console.error("Failed to load default theme.");
|
|
75
75
|
}
|
|
76
76
|
(0, canvas_1.registerFont)(upath_1.default.join(this.assetsPath, "fonts", "gen-jyuu-gothic", "GenJyuuGothic-Bold.ttf"), {
|
|
77
77
|
family: "standard-font-title-jp",
|
|
@@ -254,7 +254,7 @@ class Best50 {
|
|
|
254
254
|
return false;
|
|
255
255
|
}
|
|
256
256
|
static getTheme(path) {
|
|
257
|
-
if (!fs_1.default.existsSync(upath_1.default.join(
|
|
257
|
+
if (!fs_1.default.existsSync(upath_1.default.join(path, "manifest.json"))) {
|
|
258
258
|
path = this.themes[path] ?? "";
|
|
259
259
|
}
|
|
260
260
|
else
|
|
@@ -782,6 +782,8 @@ class Best50 {
|
|
|
782
782
|
.sort((a, b) => a - b)[0] || 0);
|
|
783
783
|
}
|
|
784
784
|
function getRatingAvg(scores) {
|
|
785
|
+
if (scores.length <= 0)
|
|
786
|
+
return 0;
|
|
785
787
|
return (scores
|
|
786
788
|
.map((v) => v.dxRating)
|
|
787
789
|
.reduce((sum, v) => (sum += v)) /
|
|
@@ -1075,14 +1077,37 @@ class Best50 {
|
|
|
1075
1077
|
"1.0": 21,
|
|
1076
1078
|
};
|
|
1077
1079
|
const base = getRatingBase(scores);
|
|
1078
|
-
|
|
1079
|
-
const
|
|
1080
|
+
let sssTarget, ssspTarget;
|
|
1081
|
+
for (const level in MILESTONES_SSSP) {
|
|
1082
|
+
const rating = MILESTONES_SSSP[level];
|
|
1083
|
+
if (base >= rating) {
|
|
1084
|
+
if (level == "15.0") {
|
|
1085
|
+
ssspTarget = undefined;
|
|
1086
|
+
}
|
|
1087
|
+
else {
|
|
1088
|
+
ssspTarget = level;
|
|
1089
|
+
}
|
|
1090
|
+
break;
|
|
1091
|
+
}
|
|
1092
|
+
}
|
|
1093
|
+
for (const level in MILESTONES_SSS) {
|
|
1094
|
+
const rating = MILESTONES_SSS[level];
|
|
1095
|
+
if (base >= rating) {
|
|
1096
|
+
if (level == "15.0") {
|
|
1097
|
+
sssTarget = undefined;
|
|
1098
|
+
}
|
|
1099
|
+
else {
|
|
1100
|
+
sssTarget = level;
|
|
1101
|
+
}
|
|
1102
|
+
break;
|
|
1103
|
+
}
|
|
1104
|
+
}
|
|
1080
1105
|
if (sssTarget && ssspTarget)
|
|
1081
1106
|
return `Next rating boost: lv. ${(parseFloat(ssspTarget) + 0.1).toFixed(1)} SSS+/${(parseFloat(sssTarget) + 0.1).toFixed(1)} SSS`;
|
|
1082
1107
|
else if (sssTarget)
|
|
1083
1108
|
return `Next rating boost: lv. ${(parseFloat(sssTarget) + 0.1).toFixed(1)} SSS`;
|
|
1084
1109
|
else if (ssspTarget)
|
|
1085
|
-
return `Next rating boost: lv. ${(parseFloat(ssspTarget) + 0.1).toFixed(1)} SSS
|
|
1110
|
+
return `Next rating boost: lv. ${(parseFloat(ssspTarget) + 0.1).toFixed(1)} SSS+`;
|
|
1086
1111
|
else
|
|
1087
1112
|
return "Good job!";
|
|
1088
1113
|
}
|