maidraw 0.6.0 → 0.6.2
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/maimai/salt/2026landscape/image/background.png +0 -0
- package/assets/themes/maimai/salt/2026landscape/image/logo.png +0 -0
- package/assets/themes/ongeki/common/refresh/achievement/a.png +0 -0
- package/assets/themes/ongeki/common/refresh/achievement/aa.png +0 -0
- package/assets/themes/ongeki/common/refresh/achievement/aaa.png +0 -0
- package/assets/themes/ongeki/common/refresh/achievement/b.png +0 -0
- package/assets/themes/ongeki/common/refresh/achievement/bb.png +0 -0
- package/assets/themes/ongeki/common/refresh/achievement/bbb.png +0 -0
- package/assets/themes/ongeki/common/refresh/achievement/c.png +0 -0
- package/assets/themes/ongeki/common/refresh/achievement/d.png +0 -0
- package/assets/themes/ongeki/common/refresh/achievement/s.png +0 -0
- package/assets/themes/ongeki/common/refresh/achievement/ss.png +0 -0
- package/assets/themes/ongeki/common/refresh/achievement/sss.png +0 -0
- package/assets/themes/ongeki/common/refresh/achievement/sssp.png +0 -0
- package/assets/themes/ongeki/common/refresh/jp/background.png +0 -0
- package/assets/themes/ongeki/common/refresh/jp/logo.png +0 -0
- package/assets/themes/ongeki/common/versionless/emote.png +0 -0
- package/assets/themes/ongeki/common/versionless/icon.png +0 -0
- package/assets/themes/ongeki/common/versionless/milestone/ab.png +0 -0
- package/assets/themes/ongeki/common/versionless/milestone/abp.png +0 -0
- package/assets/themes/ongeki/common/versionless/milestone/fb.png +0 -0
- package/assets/themes/ongeki/common/versionless/milestone/fc.png +0 -0
- package/assets/themes/ongeki/common/versionless/numberMap.png +0 -0
- package/assets/themes/ongeki/common/versionless/userplateAF2025.png +0 -0
- package/assets/themes/ongeki/common/versionless/userplateIchigeki.png +0 -0
- package/assets/themes/ongeki/common/versionless/void.png +0 -0
- package/assets/themes/ongeki/jp/refreshLandscape/classic/manifest.json +203 -0
- package/assets/themes/ongeki/jp/refreshLandscape/refresh/manifest.json +170 -0
- package/dist/chu/bests/best50.d.ts +4 -2
- package/dist/chu/bests/best50.js +27 -2
- package/dist/chu/bests/best50.js.map +1 -1
- package/dist/chu/bests/lib/index.js +12 -4
- package/dist/chu/bests/lib/index.js.map +1 -1
- package/dist/chu/chart/index.d.ts +3 -3
- package/dist/chu/chart/index.js +28 -5
- package/dist/chu/chart/index.js.map +1 -1
- package/dist/chu/index.d.ts +6 -4
- package/dist/chu/index.js +29 -4
- package/dist/chu/index.js.map +1 -1
- package/dist/geki/bests/best50.d.ts +37 -0
- package/dist/geki/bests/best50.js +876 -0
- package/dist/geki/bests/best50.js.map +1 -0
- package/dist/geki/bests/index.d.ts +1 -0
- package/dist/geki/bests/index.js +6 -0
- package/dist/geki/bests/index.js.map +1 -0
- package/dist/geki/bests/lib/index.d.ts +34 -0
- package/dist/geki/bests/lib/index.js +68 -0
- package/dist/geki/bests/lib/index.js.map +1 -0
- package/dist/geki/bests/lib/kamaiTachi/index.d.ts +207 -0
- package/dist/geki/bests/lib/kamaiTachi/index.js +508 -0
- package/dist/geki/bests/lib/kamaiTachi/index.js.map +1 -0
- package/dist/geki/bests/type.d.ts +122 -0
- package/dist/geki/bests/type.js +3 -0
- package/dist/geki/bests/type.js.map +1 -0
- package/dist/geki/chart/database.d.ts +9 -0
- package/dist/geki/chart/database.js +66 -0
- package/dist/geki/chart/database.js.map +1 -0
- package/dist/geki/chart/index.d.ts +4 -0
- package/dist/geki/chart/index.js +32 -0
- package/dist/geki/chart/index.js.map +1 -0
- package/dist/geki/index.d.ts +10 -0
- package/dist/geki/index.js +70 -0
- package/dist/geki/index.js.map +1 -0
- package/dist/geki/type.d.ts +51 -0
- package/dist/geki/type.js +39 -0
- package/dist/geki/type.js.map +1 -0
- package/dist/index.d.ts +7 -5
- package/dist/index.js +32 -7
- package/dist/index.js.map +1 -1
- package/dist/lib/cache.js +3 -2
- package/dist/lib/cache.js.map +1 -1
- package/dist/mai/best50/index.d.ts +8 -6
- package/dist/mai/best50/index.js +31 -6
- package/dist/mai/best50/index.js.map +1 -1
- package/dist/mai/best50/lib/index.js +12 -4
- package/dist/mai/best50/lib/index.js.map +1 -1
- package/dist/mai/chart/index.d.ts +3 -3
- package/dist/mai/chart/index.js +28 -5
- package/dist/mai/chart/index.js.map +1 -1
- package/dist/mai/index.d.ts +6 -4
- package/dist/mai/index.js +29 -4
- package/dist/mai/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -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,66 @@
|
|
|
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 cache_1 = require("../../lib/cache");
|
|
10
|
+
const __1 = require("..");
|
|
11
|
+
// import { EDifficulty, IChart } from "@maidraw/type";
|
|
12
|
+
class Database {
|
|
13
|
+
static localDatabasePath = "";
|
|
14
|
+
static setLocalDatabasePath(path) {
|
|
15
|
+
this.localDatabasePath = path;
|
|
16
|
+
}
|
|
17
|
+
static hasLocalDatabase() {
|
|
18
|
+
return fs_1.default.existsSync(this.localDatabasePath);
|
|
19
|
+
}
|
|
20
|
+
static cache = new cache_1.Cache();
|
|
21
|
+
static async cacheJackets(ids) {
|
|
22
|
+
const promises = [];
|
|
23
|
+
for (const id of ids) {
|
|
24
|
+
promises.push(this.fecthJacket(id));
|
|
25
|
+
}
|
|
26
|
+
await Promise.all(promises);
|
|
27
|
+
}
|
|
28
|
+
static async fecthJacket(id) {
|
|
29
|
+
const cacheKey = `geki-jacket-${id}`;
|
|
30
|
+
const cached = await this.cache.get(cacheKey);
|
|
31
|
+
if (cached instanceof Buffer) {
|
|
32
|
+
__1.Geki.logger.trace(`GET Jacket-${id}, cache HIT`);
|
|
33
|
+
return cached;
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
__1.Geki.logger.trace(`GET Jacket-${id}, cache MISS`);
|
|
37
|
+
const jacket = await this.downloadJacket(id);
|
|
38
|
+
if (jacket)
|
|
39
|
+
this.cache.put(cacheKey, jacket, 1000 * 60 * 60);
|
|
40
|
+
return jacket;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
static async downloadJacket(id) {
|
|
44
|
+
id = id % 10000;
|
|
45
|
+
const localFilePath = upath_1.default.join(this.localDatabasePath, "assets", "ongeki", "jackets", `${id.toString().padStart(4, "0")}.png`);
|
|
46
|
+
if (fs_1.default.existsSync(localFilePath)) {
|
|
47
|
+
__1.Geki.logger.trace(`GET Jacket-${id}, database HIT`);
|
|
48
|
+
return fs_1.default.readFileSync(localFilePath);
|
|
49
|
+
}
|
|
50
|
+
// const beginTimestamp = Date.now();
|
|
51
|
+
// const res = await axios
|
|
52
|
+
// .get(`https://assets2.lxns.net/chunithm/jacket/${id}.png`, {
|
|
53
|
+
// responseType: "arraybuffer",
|
|
54
|
+
// })
|
|
55
|
+
// .then((res) => res.data)
|
|
56
|
+
// .catch((e) => null);
|
|
57
|
+
// const timeDifference = Date.now() - beginTimestamp;
|
|
58
|
+
// Chuni.logger.trace(
|
|
59
|
+
// `GET Jacket-${id}, database MISS, took ${timeDifference}ms`
|
|
60
|
+
// );
|
|
61
|
+
// return res;
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.Database = Database;
|
|
66
|
+
//# sourceMappingURL=database.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../../src/geki/chart/database.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,kDAA0B;AAE1B,8CAA2C;AAC3C,0BAA0B;AAC1B,uDAAuD;AAEvD,MAAa,QAAQ;IACT,MAAM,CAAC,iBAAiB,GAAW,EAAE,CAAC;IAEvC,MAAM,CAAC,oBAAoB,CAAC,IAAY;QAC3C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAClC,CAAC;IAEM,MAAM,CAAC,gBAAgB;QAC1B,OAAO,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACjD,CAAC;IAEO,MAAM,CAAC,KAAK,GAAG,IAAI,aAAK,EAAE,CAAC;IAC5B,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,GAAa;QAC1C,MAAM,QAAQ,GAAmB,EAAE,CAAC;QACpC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACnB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IACM,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAU;QACtC,MAAM,QAAQ,GAAG,eAAe,EAAE,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,MAAM,YAAY,MAAM,EAAE,CAAC;YAC3B,QAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;YACjD,OAAO,MAAM,CAAC;QAClB,CAAC;aAAM,CAAC;YACJ,QAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YAC7C,IAAI,MAAM;gBAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAC7D,OAAO,MAAM,CAAC;QAClB,CAAC;IACL,CAAC;IACM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,EAAU;QACzC,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;QAChB,MAAM,aAAa,GAAG,eAAK,CAAC,IAAI,CAC5B,IAAI,CAAC,iBAAiB,EACtB,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAC1C,CAAC;QACF,IAAI,YAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/B,QAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;YACpD,OAAO,YAAE,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAC1C,CAAC;QACD,qCAAqC;QACrC,0BAA0B;QAC1B,mEAAmE;QACnE,uCAAuC;QACvC,SAAS;QACT,+BAA+B;QAC/B,2BAA2B;QAC3B,sDAAsD;QACtD,sBAAsB;QACtB,kEAAkE;QAClE,KAAK;QACL,cAAc;QACd,OAAO,IAAI,CAAC;IAChB,CAAC;;AA1DL,4BA4EC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.Chart = void 0;
|
|
27
|
+
const database = __importStar(require("./database"));
|
|
28
|
+
var Chart;
|
|
29
|
+
(function (Chart) {
|
|
30
|
+
Chart.Database = database.Database;
|
|
31
|
+
})(Chart || (exports.Chart = Chart = {}));
|
|
32
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/geki/chart/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAuC;AAEvC,IAAiB,KAAK,CAErB;AAFD,WAAiB,KAAK;IACJ,cAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;AAC/C,CAAC,EAFgB,KAAK,qBAAL,KAAK,QAErB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as bests from "./bests";
|
|
2
|
+
import * as chart from "./chart";
|
|
3
|
+
import Bunyan from "bunyan";
|
|
4
|
+
export declare class Geki {
|
|
5
|
+
static logger: Bunyan;
|
|
6
|
+
}
|
|
7
|
+
export declare namespace Geki {
|
|
8
|
+
export import Best50 = bests.Best50;
|
|
9
|
+
export import Chart = chart.Chart;
|
|
10
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
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.Geki = void 0;
|
|
30
|
+
const bests = __importStar(require("./bests"));
|
|
31
|
+
const chart = __importStar(require("./chart"));
|
|
32
|
+
const bunyan_1 = __importDefault(require("bunyan"));
|
|
33
|
+
class Geki {
|
|
34
|
+
static logger = new bunyan_1.default({
|
|
35
|
+
name: "maidraw.geki",
|
|
36
|
+
streams: [
|
|
37
|
+
{
|
|
38
|
+
stream: process.stdout,
|
|
39
|
+
level: (() => {
|
|
40
|
+
switch (process.env.LOG_LEVEL) {
|
|
41
|
+
case "trace":
|
|
42
|
+
return bunyan_1.default.TRACE;
|
|
43
|
+
case "debug":
|
|
44
|
+
return bunyan_1.default.DEBUG;
|
|
45
|
+
case "info":
|
|
46
|
+
return bunyan_1.default.INFO;
|
|
47
|
+
case "warn":
|
|
48
|
+
return bunyan_1.default.WARN;
|
|
49
|
+
case "error":
|
|
50
|
+
return bunyan_1.default.ERROR;
|
|
51
|
+
case "fatal":
|
|
52
|
+
return bunyan_1.default.FATAL;
|
|
53
|
+
default:
|
|
54
|
+
return bunyan_1.default.INFO;
|
|
55
|
+
}
|
|
56
|
+
})(),
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
stream: process.stderr,
|
|
60
|
+
level: bunyan_1.default.ERROR,
|
|
61
|
+
},
|
|
62
|
+
],
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
exports.Geki = Geki;
|
|
66
|
+
(function (Geki) {
|
|
67
|
+
Geki.Best50 = bests.Best50;
|
|
68
|
+
Geki.Chart = chart.Chart;
|
|
69
|
+
})(Geki || (exports.Geki = Geki = {}));
|
|
70
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/geki/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AACjC,+CAAiC;AACjC,oDAA4B;AAE5B,MAAa,IAAI;IACN,MAAM,CAAC,MAAM,GAAG,IAAI,gBAAM,CAAC;QAC9B,IAAI,EAAE,cAAc;QACpB,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;;AA9BP,oBA+BC;AACD,WAAiB,IAAI;IACH,WAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IACtB,UAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AACtC,CAAC,EAHgB,IAAI,oBAAJ,IAAI,QAGpB"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export declare enum EDifficulty {
|
|
2
|
+
BASIC = 0,
|
|
3
|
+
ADVANCED = 1,
|
|
4
|
+
EXPERT = 2,
|
|
5
|
+
MASTER = 3,
|
|
6
|
+
LUNATIC = 4
|
|
7
|
+
}
|
|
8
|
+
export declare enum EComboTypes {
|
|
9
|
+
NONE = 0,
|
|
10
|
+
FULL_COMBO = 1,
|
|
11
|
+
ALL_BREAK = 2,
|
|
12
|
+
ALL_BREAK_PLUS = 3
|
|
13
|
+
}
|
|
14
|
+
export declare enum EBellTypes {
|
|
15
|
+
NONE = 0,
|
|
16
|
+
FULL_BELL = 1
|
|
17
|
+
}
|
|
18
|
+
export declare enum EAchievementTypes {
|
|
19
|
+
D = 0,
|
|
20
|
+
C = 1,
|
|
21
|
+
B = 2,
|
|
22
|
+
BB = 3,
|
|
23
|
+
BBB = 4,
|
|
24
|
+
A = 5,
|
|
25
|
+
AA = 6,
|
|
26
|
+
AAA = 7,
|
|
27
|
+
S = 8,
|
|
28
|
+
SS = 9,
|
|
29
|
+
SSS = 10,
|
|
30
|
+
SSSP = 11
|
|
31
|
+
}
|
|
32
|
+
export interface IScore {
|
|
33
|
+
chart: IChart;
|
|
34
|
+
combo: EComboTypes;
|
|
35
|
+
bell: EBellTypes;
|
|
36
|
+
score: number;
|
|
37
|
+
rank: EAchievementTypes;
|
|
38
|
+
rating: number;
|
|
39
|
+
platinumScore: number;
|
|
40
|
+
}
|
|
41
|
+
export interface IChart {
|
|
42
|
+
id: number;
|
|
43
|
+
name: string;
|
|
44
|
+
difficulty: EDifficulty;
|
|
45
|
+
/**
|
|
46
|
+
* Chart internal level.
|
|
47
|
+
* `7.0, 11.2, 11.7, 13.2, 14.8, 15.0`
|
|
48
|
+
*/
|
|
49
|
+
level: number;
|
|
50
|
+
maxPlatinumScore: number;
|
|
51
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EAchievementTypes = exports.EBellTypes = 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["LUNATIC"] = 4] = "LUNATIC";
|
|
11
|
+
})(EDifficulty || (exports.EDifficulty = EDifficulty = {}));
|
|
12
|
+
var EComboTypes;
|
|
13
|
+
(function (EComboTypes) {
|
|
14
|
+
EComboTypes[EComboTypes["NONE"] = 0] = "NONE";
|
|
15
|
+
EComboTypes[EComboTypes["FULL_COMBO"] = 1] = "FULL_COMBO";
|
|
16
|
+
EComboTypes[EComboTypes["ALL_BREAK"] = 2] = "ALL_BREAK";
|
|
17
|
+
EComboTypes[EComboTypes["ALL_BREAK_PLUS"] = 3] = "ALL_BREAK_PLUS";
|
|
18
|
+
})(EComboTypes || (exports.EComboTypes = EComboTypes = {}));
|
|
19
|
+
var EBellTypes;
|
|
20
|
+
(function (EBellTypes) {
|
|
21
|
+
EBellTypes[EBellTypes["NONE"] = 0] = "NONE";
|
|
22
|
+
EBellTypes[EBellTypes["FULL_BELL"] = 1] = "FULL_BELL";
|
|
23
|
+
})(EBellTypes || (exports.EBellTypes = EBellTypes = {}));
|
|
24
|
+
var EAchievementTypes;
|
|
25
|
+
(function (EAchievementTypes) {
|
|
26
|
+
EAchievementTypes[EAchievementTypes["D"] = 0] = "D";
|
|
27
|
+
EAchievementTypes[EAchievementTypes["C"] = 1] = "C";
|
|
28
|
+
EAchievementTypes[EAchievementTypes["B"] = 2] = "B";
|
|
29
|
+
EAchievementTypes[EAchievementTypes["BB"] = 3] = "BB";
|
|
30
|
+
EAchievementTypes[EAchievementTypes["BBB"] = 4] = "BBB";
|
|
31
|
+
EAchievementTypes[EAchievementTypes["A"] = 5] = "A";
|
|
32
|
+
EAchievementTypes[EAchievementTypes["AA"] = 6] = "AA";
|
|
33
|
+
EAchievementTypes[EAchievementTypes["AAA"] = 7] = "AAA";
|
|
34
|
+
EAchievementTypes[EAchievementTypes["S"] = 8] = "S";
|
|
35
|
+
EAchievementTypes[EAchievementTypes["SS"] = 9] = "SS";
|
|
36
|
+
EAchievementTypes[EAchievementTypes["SSS"] = 10] = "SSS";
|
|
37
|
+
EAchievementTypes[EAchievementTypes["SSSP"] = 11] = "SSSP";
|
|
38
|
+
})(EAchievementTypes || (exports.EAchievementTypes = EAchievementTypes = {}));
|
|
39
|
+
//# sourceMappingURL=type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/geki/type.ts"],"names":[],"mappings":";;;AAAA,IAAY,WAMX;AAND,WAAY,WAAW;IACnB,+CAAK,CAAA;IACL,qDAAQ,CAAA;IACR,iDAAM,CAAA;IACN,iDAAM,CAAA;IACN,mDAAO,CAAA;AACX,CAAC,EANW,WAAW,2BAAX,WAAW,QAMtB;AAED,IAAY,WAKX;AALD,WAAY,WAAW;IACnB,6CAAI,CAAA;IACJ,yDAAU,CAAA;IACV,uDAAS,CAAA;IACT,iEAAc,CAAA;AAClB,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB;AAED,IAAY,UAGX;AAHD,WAAY,UAAU;IAClB,2CAAI,CAAA;IACJ,qDAAS,CAAA;AACb,CAAC,EAHW,UAAU,0BAAV,UAAU,QAGrB;AAED,IAAY,iBAaX;AAbD,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,0DAAI,CAAA;AACR,CAAC,EAbW,iBAAiB,iCAAjB,iBAAiB,QAa5B"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import * as geki from "./geki";
|
|
2
|
+
import * as chu from "./chu";
|
|
3
|
+
import * as mai from "./mai";
|
|
4
|
+
export declare namespace MaiDraw {
|
|
5
|
+
export import Maimai = mai.Maimai;
|
|
6
|
+
export import Chuni = chu.Chuni;
|
|
7
|
+
export import Geki = geki.Geki;
|
|
6
8
|
}
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,36 @@
|
|
|
1
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
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
26
|
exports.MaiDraw = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
27
|
+
const geki = __importStar(require("./geki"));
|
|
28
|
+
const chu = __importStar(require("./chu"));
|
|
29
|
+
const mai = __importStar(require("./mai"));
|
|
30
|
+
var MaiDraw;
|
|
31
|
+
(function (MaiDraw) {
|
|
32
|
+
MaiDraw.Maimai = mai.Maimai;
|
|
33
|
+
MaiDraw.Chuni = chu.Chuni;
|
|
34
|
+
MaiDraw.Geki = geki.Geki;
|
|
35
|
+
})(MaiDraw || (exports.MaiDraw = MaiDraw = {}));
|
|
11
36
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,2CAA6B;AAC7B,2CAA6B;AAE7B,IAAiB,OAAO,CAIvB;AAJD,WAAiB,OAAO;IACN,cAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IACpB,aAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IAClB,YAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACnC,CAAC,EAJgB,OAAO,uBAAP,OAAO,QAIvB"}
|
package/dist/lib/cache.js
CHANGED
|
@@ -10,9 +10,10 @@ class Cache {
|
|
|
10
10
|
constructor() {
|
|
11
11
|
this.memCache = new memory_cache_1.Cache();
|
|
12
12
|
this.redisClient = (0, redis_1.createClient)();
|
|
13
|
-
this.redisClient.on("error", (e) => {
|
|
14
|
-
console.error("Redis error
|
|
13
|
+
this.redisClient.on("error", async (e) => {
|
|
14
|
+
console.error("Redis connection error, using memory-cache");
|
|
15
15
|
this.isRedisAvailable = false;
|
|
16
|
+
await this.redisClient.disconnect();
|
|
16
17
|
});
|
|
17
18
|
this.redisClient.connect();
|
|
18
19
|
}
|
package/dist/lib/cache.js.map
CHANGED
|
@@ -1 +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,
|
|
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,KAAK,EAAE,CAAC,EAAE,EAAE;YACrC,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAC5D,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAC9B,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QACxC,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;AAxCD,sBAwCC"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import { IScore } from "../type";
|
|
2
2
|
import ScoreTrackerAdapter from "./lib";
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
3
|
+
import * as lxns from "./lib/lxns";
|
|
4
|
+
import * as kamaiTachi from "./lib/kamaiTachi";
|
|
5
|
+
import * as divingFish from "./lib/divingFish";
|
|
6
6
|
export declare class Best50 {
|
|
7
|
-
static LXNS: typeof LXNS;
|
|
8
|
-
static KamaiTachi: typeof KamaiTachi;
|
|
9
|
-
static DivingFish: typeof DivingFish;
|
|
10
7
|
static readonly RATING_CONSTANTS: {
|
|
11
8
|
0: {
|
|
12
9
|
0.4: number;
|
|
@@ -72,3 +69,8 @@ export declare class Best50 {
|
|
|
72
69
|
}): Promise<Buffer | null>;
|
|
73
70
|
private static getRatingNumber;
|
|
74
71
|
}
|
|
72
|
+
export declare namespace Best50 {
|
|
73
|
+
export import LXNS = lxns.LXNS;
|
|
74
|
+
export import KamaiTachi = kamaiTachi.KamaiTachi;
|
|
75
|
+
export import DivingFish = divingFish.DivingFish;
|
|
76
|
+
}
|
package/dist/mai/best50/index.js
CHANGED
|
@@ -1,4 +1,27 @@
|
|
|
1
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
|
+
};
|
|
2
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
27
|
};
|
|
@@ -12,10 +35,10 @@ const color_1 = __importDefault(require("color"));
|
|
|
12
35
|
const sharp_1 = __importDefault(require("sharp"));
|
|
13
36
|
const glob_1 = require("glob");
|
|
14
37
|
const chart_1 = require("../chart");
|
|
15
|
-
const lxns_1 = require("./lib/lxns");
|
|
16
|
-
const kamaiTachi_1 = require("./lib/kamaiTachi");
|
|
17
|
-
const divingFish_1 = require("./lib/divingFish");
|
|
18
38
|
const string_template_1 = __importDefault(require("string-template"));
|
|
39
|
+
const lxns = __importStar(require("./lib/lxns"));
|
|
40
|
+
const kamaiTachi = __importStar(require("./lib/kamaiTachi"));
|
|
41
|
+
const divingFish = __importStar(require("./lib/divingFish"));
|
|
19
42
|
class HalfFullWidthConvert {
|
|
20
43
|
static charsets = {
|
|
21
44
|
latin: { halfRE: /[!-~]/g, fullRE: /[!-~]/g, delta: 0xfee0 },
|
|
@@ -50,9 +73,6 @@ class HalfFullWidthConvert {
|
|
|
50
73
|
static toHalfWidth = (str0) => this.sets.reduce((str, set) => str.replace(this.re(set, "full"), this.toHalf(set)), str0);
|
|
51
74
|
}
|
|
52
75
|
class Best50 {
|
|
53
|
-
static LXNS = lxns_1.LXNS;
|
|
54
|
-
static KamaiTachi = kamaiTachi_1.KamaiTachi;
|
|
55
|
-
static DivingFish = divingFish_1.DivingFish;
|
|
56
76
|
static RATING_CONSTANTS = {
|
|
57
77
|
[type_1.EAchievementTypes.D]: {
|
|
58
78
|
[0.4]: 6.4,
|
|
@@ -957,4 +977,9 @@ class Best50 {
|
|
|
957
977
|
}
|
|
958
978
|
}
|
|
959
979
|
exports.Best50 = Best50;
|
|
980
|
+
(function (Best50) {
|
|
981
|
+
Best50.LXNS = lxns.LXNS;
|
|
982
|
+
Best50.KamaiTachi = kamaiTachi.KamaiTachi;
|
|
983
|
+
Best50.DivingFish = divingFish.DivingFish;
|
|
984
|
+
})(Best50 || (exports.Best50 = Best50 = {}));
|
|
960
985
|
//# sourceMappingURL=index.js.map
|