maidraw 0.1.0

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 (103) hide show
  1. package/.prettierrc.json +6 -0
  2. package/LICENSE +21 -0
  3. package/assets/fonts/comfortaa/Comfortaa-Bold.ttf +0 -0
  4. package/assets/fonts/comfortaa/Comfortaa-Regular.ttf +0 -0
  5. package/assets/fonts/comfortaa/OFL.txt +93 -0
  6. package/assets/fonts/gen-jyuu-gothic/GenJyuuGothic-Bold.ttf +0 -0
  7. package/assets/fonts/kosugi-maru/KosugiMaru-Regular.ttf +0 -0
  8. package/assets/fonts/kosugi-maru/LICENSE.txt +202 -0
  9. package/assets/themes/cn/2024Landscape/manifest.json +144 -0
  10. package/assets/themes/cn/2024Portrait/manifest.json +144 -0
  11. package/assets/themes/common/buddies/achievement/a.png +0 -0
  12. package/assets/themes/common/buddies/achievement/aa.png +0 -0
  13. package/assets/themes/common/buddies/achievement/aaa.png +0 -0
  14. package/assets/themes/common/buddies/achievement/b.png +0 -0
  15. package/assets/themes/common/buddies/achievement/bb.png +0 -0
  16. package/assets/themes/common/buddies/achievement/bbb.png +0 -0
  17. package/assets/themes/common/buddies/achievement/c.png +0 -0
  18. package/assets/themes/common/buddies/achievement/d.png +0 -0
  19. package/assets/themes/common/buddies/achievement/s.png +0 -0
  20. package/assets/themes/common/buddies/achievement/sp.png +0 -0
  21. package/assets/themes/common/buddies/achievement/ss.png +0 -0
  22. package/assets/themes/common/buddies/achievement/ssp.png +0 -0
  23. package/assets/themes/common/buddies/achievement/sss.png +0 -0
  24. package/assets/themes/common/buddies/achievement/sssp.png +0 -0
  25. package/assets/themes/common/buddies/cn/logo.png +0 -0
  26. package/assets/themes/common/buddies/jp/background.png +0 -0
  27. package/assets/themes/common/buddies/jp/chara.png +0 -0
  28. package/assets/themes/common/buddies/jp/laundry.png +0 -0
  29. package/assets/themes/common/buddies/jp/logo.png +0 -0
  30. package/assets/themes/common/buddies/plus/chara.png +0 -0
  31. package/assets/themes/common/buddies/plus/laundry.png +0 -0
  32. package/assets/themes/common/buddies/plus/logo.png +0 -0
  33. package/assets/themes/common/versionless/dxRating/cn/blue.png +0 -0
  34. package/assets/themes/common/versionless/dxRating/cn/bronze.png +0 -0
  35. package/assets/themes/common/versionless/dxRating/cn/gold.png +0 -0
  36. package/assets/themes/common/versionless/dxRating/cn/green.png +0 -0
  37. package/assets/themes/common/versionless/dxRating/cn/platinum.png +0 -0
  38. package/assets/themes/common/versionless/dxRating/cn/purple.png +0 -0
  39. package/assets/themes/common/versionless/dxRating/cn/rainbow.png +0 -0
  40. package/assets/themes/common/versionless/dxRating/cn/red.png +0 -0
  41. package/assets/themes/common/versionless/dxRating/cn/silver.png +0 -0
  42. package/assets/themes/common/versionless/dxRating/cn/white.png +0 -0
  43. package/assets/themes/common/versionless/dxRating/cn/yellow.png +0 -0
  44. package/assets/themes/common/versionless/dxRating/jp/blue.png +0 -0
  45. package/assets/themes/common/versionless/dxRating/jp/bronze.png +0 -0
  46. package/assets/themes/common/versionless/dxRating/jp/gold.png +0 -0
  47. package/assets/themes/common/versionless/dxRating/jp/green.png +0 -0
  48. package/assets/themes/common/versionless/dxRating/jp/platinum.png +0 -0
  49. package/assets/themes/common/versionless/dxRating/jp/purple.png +0 -0
  50. package/assets/themes/common/versionless/dxRating/jp/rainbow.png +0 -0
  51. package/assets/themes/common/versionless/dxRating/jp/red.png +0 -0
  52. package/assets/themes/common/versionless/dxRating/jp/silver.png +0 -0
  53. package/assets/themes/common/versionless/dxRating/jp/white.png +0 -0
  54. package/assets/themes/common/versionless/dxRating/jp/yellow.png +0 -0
  55. package/assets/themes/common/versionless/dxRating/numberMap.png +0 -0
  56. package/assets/themes/common/versionless/icon.png +0 -0
  57. package/assets/themes/common/versionless/milestone/ap.png +0 -0
  58. package/assets/themes/common/versionless/milestone/app.png +0 -0
  59. package/assets/themes/common/versionless/milestone/fc.png +0 -0
  60. package/assets/themes/common/versionless/milestone/fcp.png +0 -0
  61. package/assets/themes/common/versionless/milestone/fdx.png +0 -0
  62. package/assets/themes/common/versionless/milestone/fdxp.png +0 -0
  63. package/assets/themes/common/versionless/milestone/fs.png +0 -0
  64. package/assets/themes/common/versionless/milestone/fsp.png +0 -0
  65. package/assets/themes/common/versionless/milestone/none.png +0 -0
  66. package/assets/themes/common/versionless/milestone/sync.png +0 -0
  67. package/assets/themes/common/versionless/mode/cn/dx.png +0 -0
  68. package/assets/themes/common/versionless/mode/cn/standard.png +0 -0
  69. package/assets/themes/common/versionless/mode/jp/dx.png +0 -0
  70. package/assets/themes/common/versionless/mode/jp/standard.png +0 -0
  71. package/assets/themes/common/versionless/nameplate.png +0 -0
  72. package/assets/themes/jp/buddiesLandscape/manifest.json +144 -0
  73. package/assets/themes/jp/buddiesPlusLandscape/manifest.json +144 -0
  74. package/assets/themes/jp/buddiesPlusPortrait/manifest.json +144 -0
  75. package/assets/themes/jp/buddiesPortrait/manifest.json +144 -0
  76. package/dist/index.d.ts +33 -0
  77. package/dist/index.js +901 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/lib/divingFish/index.d.ts +50 -0
  80. package/dist/lib/divingFish/index.js +174 -0
  81. package/dist/lib/divingFish/index.js.map +1 -0
  82. package/dist/lib/index.d.ts +13 -0
  83. package/dist/lib/index.js +9 -0
  84. package/dist/lib/index.js.map +1 -0
  85. package/dist/lib/kamaiTachi/index.d.ts +107 -0
  86. package/dist/lib/kamaiTachi/index.js +187 -0
  87. package/dist/lib/kamaiTachi/index.js.map +1 -0
  88. package/dist/lib/lxns/index.d.ts +210 -0
  89. package/dist/lib/lxns/index.js +287 -0
  90. package/dist/lib/lxns/index.js.map +1 -0
  91. package/dist/type.d.ts +165 -0
  92. package/dist/type.js +47 -0
  93. package/dist/type.js.map +1 -0
  94. package/package.json +49 -0
  95. package/test/cn-2024-landscape.webp +0 -0
  96. package/test/cn-2024-portrait.webp +0 -0
  97. package/test/fetchConvert.js +65 -0
  98. package/test/jp-buddies-landscape.webp +0 -0
  99. package/test/jp-buddies-portrait.webp +0 -0
  100. package/test/jp-buddiesplus-landscape.webp +0 -0
  101. package/test/jp-buddiesplus-portrait.webp +0 -0
  102. package/test/testDraw.js +741 -0
  103. package/tsconfig.json +33 -0
package/dist/type.js ADDED
@@ -0,0 +1,47 @@
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["REMASTER"] = 4] = "REMASTER";
11
+ EDifficulty[EDifficulty["UTAGE"] = 5] = "UTAGE";
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["FULL_COMBO_PLUS"] = 2] = "FULL_COMBO_PLUS";
18
+ EComboTypes[EComboTypes["ALL_PERFECT"] = 3] = "ALL_PERFECT";
19
+ EComboTypes[EComboTypes["ALL_PERFECT_PLUS"] = 4] = "ALL_PERFECT_PLUS";
20
+ })(EComboTypes || (exports.EComboTypes = EComboTypes = {}));
21
+ var ESyncTypes;
22
+ (function (ESyncTypes) {
23
+ ESyncTypes[ESyncTypes["NONE"] = 0] = "NONE";
24
+ ESyncTypes[ESyncTypes["SYNC_PLAY"] = 1] = "SYNC_PLAY";
25
+ ESyncTypes[ESyncTypes["FULL_SYNC"] = 2] = "FULL_SYNC";
26
+ ESyncTypes[ESyncTypes["FULL_SYNC_PLUS"] = 3] = "FULL_SYNC_PLUS";
27
+ ESyncTypes[ESyncTypes["FULL_SYNC_DX"] = 4] = "FULL_SYNC_DX";
28
+ ESyncTypes[ESyncTypes["FULL_SYNC_DX_PLUS"] = 5] = "FULL_SYNC_DX_PLUS";
29
+ })(ESyncTypes || (exports.ESyncTypes = ESyncTypes = {}));
30
+ var EAchievementTypes;
31
+ (function (EAchievementTypes) {
32
+ EAchievementTypes[EAchievementTypes["D"] = 0] = "D";
33
+ EAchievementTypes[EAchievementTypes["C"] = 1] = "C";
34
+ EAchievementTypes[EAchievementTypes["B"] = 2] = "B";
35
+ EAchievementTypes[EAchievementTypes["BB"] = 3] = "BB";
36
+ EAchievementTypes[EAchievementTypes["BBB"] = 4] = "BBB";
37
+ EAchievementTypes[EAchievementTypes["A"] = 5] = "A";
38
+ EAchievementTypes[EAchievementTypes["AA"] = 6] = "AA";
39
+ EAchievementTypes[EAchievementTypes["AAA"] = 7] = "AAA";
40
+ EAchievementTypes[EAchievementTypes["S"] = 8] = "S";
41
+ EAchievementTypes[EAchievementTypes["SP"] = 9] = "SP";
42
+ EAchievementTypes[EAchievementTypes["SS"] = 10] = "SS";
43
+ EAchievementTypes[EAchievementTypes["SSP"] = 11] = "SSP";
44
+ EAchievementTypes[EAchievementTypes["SSS"] = 12] = "SSS";
45
+ EAchievementTypes[EAchievementTypes["SSSP"] = 13] = "SSSP";
46
+ })(EAchievementTypes || (exports.EAchievementTypes = EAchievementTypes = {}));
47
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../src/type.ts"],"names":[],"mappings":";;;AAAA,IAAY,WAOX;AAPD,WAAY,WAAW;IACnB,+CAAK,CAAA;IACL,qDAAQ,CAAA;IACR,iDAAM,CAAA;IACN,iDAAM,CAAA;IACN,qDAAQ,CAAA;IACR,+CAAK,CAAA;AACT,CAAC,EAPW,WAAW,2BAAX,WAAW,QAOtB;AAED,IAAY,WAMX;AAND,WAAY,WAAW;IACnB,6CAAI,CAAA;IACJ,yDAAU,CAAA;IACV,mEAAe,CAAA;IACf,2DAAW,CAAA;IACX,qEAAgB,CAAA;AACpB,CAAC,EANW,WAAW,2BAAX,WAAW,QAMtB;AAED,IAAY,UAOX;AAPD,WAAY,UAAU;IAClB,2CAAI,CAAA;IACJ,qDAAS,CAAA;IACT,qDAAS,CAAA;IACT,+DAAc,CAAA;IACd,2DAAY,CAAA;IACZ,qEAAiB,CAAA;AACrB,CAAC,EAPW,UAAU,0BAAV,UAAU,QAOrB;AAED,IAAY,iBAeX;AAfD,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,sDAAE,CAAA;IACF,wDAAG,CAAA;IACH,wDAAG,CAAA;IACH,0DAAI,CAAA;AACR,CAAC,EAfW,iBAAiB,iCAAjB,iBAAiB,QAe5B"}
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "maidraw",
3
+ "version": "0.1.0",
4
+ "description": "Kasumi module for maimai bot",
5
+ "main": "dist/index.js",
6
+ "scripts": {
7
+ "build": "tsc && tsconfig-replace-paths -p tsconfig.json -s ./src -o ./dist",
8
+ "clean": "rimraf dist/*",
9
+ "make": "npm run clean && npm run lint && npm run build",
10
+ "lint": "prettier './src/**/*.ts' --write",
11
+ "test": "npm run make && node ./test/testDraw.js"
12
+ },
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "git+https://github.com/HexaNona/kasumi-module-template.git"
16
+ },
17
+ "keywords": [
18
+ "Kasumi",
19
+ "kook",
20
+ "bot"
21
+ ],
22
+ "author": "saltcute",
23
+ "license": "MIT",
24
+ "bugs": {
25
+ "url": "https://github.com/HexaNona/kasumi-module-template/issues"
26
+ },
27
+ "homepage": "https://github.com/HexaNona/kasumi-module-template#readme",
28
+ "dependencies": {
29
+ "axios": "^1.7.2",
30
+ "canvas": "^2.11.2",
31
+ "color": "^4.2.3",
32
+ "glob": "^11.0.0",
33
+ "kasumi.js": "^0.6.8",
34
+ "memory-cache": "^0.2.0",
35
+ "prettier": "^3.3.2",
36
+ "rimraf": "^5.0.8",
37
+ "sharp": "^0.33.5",
38
+ "skia-canvas": "^1.0.1",
39
+ "ts-node": "^10.9.1",
40
+ "tsconfig-paths": "^4.1.2",
41
+ "tsconfig-replace-paths": "^0.0.14",
42
+ "typescript": "^5.5.3",
43
+ "upath": "^2.0.1"
44
+ },
45
+ "devDependencies": {
46
+ "@types/color": "^3.0.6",
47
+ "@types/memory-cache": "^0.2.6"
48
+ }
49
+ }
Binary file
Binary file
@@ -0,0 +1,65 @@
1
+ function convert(scores) {
2
+ let arr = [];
3
+ for (let score of scores) {
4
+ arr.push({
5
+ chart: {
6
+ id: score.type == "dx" ? score.id + 10000 : score.id,
7
+ name: score.song_name,
8
+ difficulty: score.level_index,
9
+ level: 13.7,
10
+ maxDxScore: 6666
11
+ },
12
+ combo: (() => {
13
+ switch (score.fc) {
14
+ case "fc":
15
+ return 1;
16
+ case "fcp":
17
+ return 2;
18
+ case "ap":
19
+ return 3;
20
+ case "app":
21
+ return 4;
22
+ default:
23
+ return 0;
24
+ }
25
+ })(),
26
+ sync: (() => {
27
+ switch (score.fs) {
28
+ case "sync":
29
+ return 1;
30
+ case "fs":
31
+ return 2;
32
+ case "fsp":
33
+ return 3;
34
+ case "fsd":
35
+ return 4;
36
+ case "fsdp":
37
+ return 5;
38
+ default:
39
+ return 0;
40
+ }
41
+ })(),
42
+ achievement: score.achievements,
43
+ dxScore: score.dx_score,
44
+ dxRating: score.dx_rating,
45
+ })
46
+ }
47
+ return arr;
48
+ }
49
+
50
+ const myHeaders = new Headers();
51
+ myHeaders.append("Authorization", "YLyt2PK5JIwwIDDIh0MJYXjK38Aim9cMSxiSgMfeTIE=");
52
+
53
+ const requestOptions = {
54
+ method: "GET",
55
+ headers: myHeaders,
56
+ redirect: "follow"
57
+ };
58
+
59
+ fetch("https://maimai.lxns.net/api/v0/maimai/player/211532943892789/bests", requestOptions)
60
+ .then((response) => response.json())
61
+ .then((result) => {
62
+ console.log(JSON.stringify(convert(result.data.dx)) + ",");
63
+ console.log(JSON.stringify(convert(result.data.standard)));
64
+ })
65
+ .catch((error) => console.error(error));
Binary file
Binary file