Skip to content

Commit cfd7594

Browse files
committed
update assets
1 parent 2ee38e4 commit cfd7594

File tree

5 files changed

+165
-20
lines changed

5 files changed

+165
-20
lines changed

apps/tools/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"private": true,
66
"scripts": {
77
"genFileIds": "tsx src/genFileIds.ts",
8-
"update-allmusic-web": "scp all-music.json daisy:/etc/nginx/aqua-data/mai2/00",
8+
"update-allmusic-web": "scp ../../packages/data/src/all-music.json daisy:/etc/nginx/aqua-data/mai2/00",
99
"update-allmusic-web-chu": "scp chu-all-music.json daisy:/etc/nginx/aqua-data/chu3/00/all-music.json"
1010
},
1111
"devDependencies": {
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import fsP from 'fs/promises';
2+
import path from 'node:path';
3+
import fs from 'fs';
4+
5+
const assets = 'Y:\\maimai\\mai-assets';
6+
const pkg = 'E:\\Syncthing\\sdga1.45\\Package\\Sinmai_Data\\StreamingAssets';
7+
8+
const existedIds = {} as Record<string, number[]>;
9+
10+
for (const type of ['Frame', 'Icon', 'Jacket', 'Plate']) {
11+
await fsP.mkdir(type, { recursive: true });
12+
existedIds[type] = [];
13+
for (const x of await fsP.readdir(path.join(assets, type))) {
14+
if (!/\d{6}/.test(x)) continue;
15+
const id = /(\d{6})/.exec(x)![0];
16+
existedIds[type].push(+id);
17+
}
18+
}
19+
20+
for (const a of await fsP.readdir(pkg)) {
21+
if (!a.startsWith('A')) continue;
22+
const abi = path.join(pkg, a, 'AssetBundleImages');
23+
if (!fs.existsSync(abi)) continue;
24+
25+
for (const type of ['Frame', 'Icon', 'Jacket', 'Plate']) {
26+
let t = type;
27+
if (type === 'Plate') t = 'nameplate';
28+
const dir = path.join(abi, t);
29+
if (!fs.existsSync(dir)) continue;
30+
31+
for (const x of await fsP.readdir(dir)) {
32+
if (!/(\d{6})/.test(x)) continue;
33+
const id = /(\d{6})/.exec(x)![0];
34+
if (!existedIds[type].includes(+id)) {
35+
console.log(`Copy ${a}/${type}/${x}`);
36+
fs.copyFileSync(path.join(dir, x), path.join(type, x), fs.constants.COPYFILE_FICLONE);
37+
}
38+
}
39+
}
40+
}
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
import original from '../all-items.json';
2+
import fsP from 'fs/promises';
3+
import fs from 'fs';
4+
import path from 'path';
5+
import { XMLParser } from 'fast-xml-parser';
6+
7+
const parser = new XMLParser();
8+
9+
for (const a of await fsP.readdir(path.join(process.argv[2]))) {
10+
if (!a.startsWith('A')) continue;
11+
const base = path.join(process.argv[2], a);
12+
if (fs.existsSync(path.join(base, 'title'))) {
13+
for (const dir of await fsP.readdir(path.join(base, 'title'))) {
14+
if (!fs.existsSync(path.join(base, 'title', dir, 'Title.xml'))) continue;
15+
const meta = parser.parse(await fsP.readFile(path.join(base, 'title', dir, 'Title.xml'), 'utf-8'));
16+
17+
const id = meta.TitleData.name.id.toString();
18+
// console.log(meta.TitleData.name.str);
19+
const origin = original.title[id];
20+
if (origin) {
21+
origin.name = meta.TitleData.name.str.toString();
22+
origin.ver = meta.TitleData.releaseTagName.str.toString();
23+
} else {
24+
original.title[id] = {
25+
name: meta.TitleData.name.str.toString(),
26+
ver: meta.TitleData.releaseTagName.str.toString(),
27+
disable: "false",
28+
};
29+
}
30+
}
31+
}
32+
33+
if (fs.existsSync(path.join(base, 'chara'))) {
34+
for (const dir of await fsP.readdir(path.join(base, 'chara'))) {
35+
if (!fs.existsSync(path.join(base, 'chara', dir, 'Chara.xml'))) continue;
36+
const meta = parser.parse(await fsP.readFile(path.join(base, 'chara', dir, 'Chara.xml'), 'utf-8'));
37+
38+
const id = meta.CharaData.name.id.toString();
39+
const origin = original.chara[id];
40+
if (origin) {
41+
origin.name = meta.CharaData.name.str.toString();
42+
} else {
43+
original.chara[id] = {
44+
name: meta.CharaData.name.str.toString(),
45+
disable: "false",
46+
};
47+
}
48+
}
49+
}
50+
51+
if (fs.existsSync(path.join(base, 'frame'))) {
52+
for (const dir of await fsP.readdir(path.join(base, 'frame'))) {
53+
if (!fs.existsSync(path.join(base, 'frame', dir, 'frame.xml'))) continue;
54+
const meta = parser.parse(await fsP.readFile(path.join(base, 'frame', dir, 'frame.xml'), 'utf-8'));
55+
56+
const id = meta.FrameData.name.id.toString();
57+
const origin = original.frame[id];
58+
if (origin) {
59+
origin.name = meta.FrameData.name.str.toString();
60+
} else {
61+
original.frame[id] = {
62+
name: meta.FrameData.name.str.toString(),
63+
disable: "false",
64+
};
65+
}
66+
}
67+
}
68+
69+
if (fs.existsSync(path.join(base, 'Icon'))) {
70+
for (const dir of await fsP.readdir(path.join(base, 'Icon'))) {
71+
if (!fs.existsSync(path.join(base, 'Icon', dir, 'Icon.xml'))) continue;
72+
const meta = parser.parse(await fsP.readFile(path.join(base, 'Icon', dir, 'Icon.xml'), 'utf-8'));
73+
74+
const id = meta.IconData.name.id.toString();
75+
const origin = original.icon[id];
76+
if (origin) {
77+
origin.name = meta.IconData.name.str.toString();
78+
} else {
79+
original.icon[id] = {
80+
name: meta.IconData.name.str.toString(),
81+
disable: "false",
82+
};
83+
}
84+
}
85+
}
86+
87+
if (fs.existsSync(path.join(base, 'Plate'))) {
88+
for (const dir of await fsP.readdir(path.join(base, 'Plate'))) {
89+
if (!fs.existsSync(path.join(base, 'Plate', dir, 'Plate.xml'))) continue;
90+
const meta = parser.parse(await fsP.readFile(path.join(base, 'Plate', dir, 'Plate.xml'), 'utf-8'));
91+
92+
const id = meta.PlateData.name.id.toString();
93+
const origin = original.plate[id];
94+
if (origin) {
95+
origin.name = meta.PlateData.name.str.toString();
96+
} else {
97+
original.plate[id] = {
98+
name: meta.PlateData.name.str.toString(),
99+
disable: "false",
100+
};
101+
}
102+
}
103+
}
104+
}
105+
106+
await fsP.writeFile('all-items-new.json', JSON.stringify(original, null, 2));

apps/web/src/routes/b50/components/B50Song.tsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
import { Rank, RatingListEntry, UserMusic } from '@clansty/maibot-types';
2-
import { Song } from '@clansty/maibot-types';
3-
import { IMG_DX, IMG_MOON_CAKE, IMG_SONG_MISSING, IMG_STD, LEVEL_COLOR } from '@clansty/maibot-types';
1+
import { IMG_DX, IMG_MOON_CAKE, IMG_SONG_MISSING, IMG_STD, LEVEL_COLOR, Rank, RatingListEntry, Song, UserMusic } from '@clansty/maibot-types';
42
import { achievementToRank, computeRa } from '@clansty/maibot-utils';
53
import Digit from '~/components/Digit';
64
import { component$ } from '@builder.io/qwik';
5+
import { ASSET_TYPE, getAssetUrl } from '@clansty/maibot-utils/src/getAssetUrl';
76

87
const getRankImage = (rank: Rank): string => {
9-
return `https://shama.dxrating.net/images/rank/buddies-plus/${rank}.png`;
8+
return getAssetUrl(ASSET_TYPE.Base, `UI_TTR_Rank_${rank.toUpperCase().replace('P', 'p')}`);
109
};
1110

1211
const BORDER_SIZE = 3;

packages/data/src/all-music.json

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -45294,43 +45294,43 @@
4529445294
},
4529545295
"11708": {
4529645296
"name": "カーニバルハッピー",
45297-
"ver": "24500",
45297+
"ver": "24503",
4529845298
"notes": [
4529945299
{
45300-
"lv": 0
45300+
"lv": 4
4530145301
},
4530245302
{
45303-
"lv": 0
45303+
"lv": 7.8
4530445304
},
4530545305
{
45306-
"lv": 0
45306+
"lv": 11.5
4530745307
},
4530845308
{
45309-
"lv": 13.1
45309+
"lv": 13.5
4531045310
}
4531145311
],
4531245312
"composer": "かいりきベア",
45313-
"genre": "niconico&ボーカロイド"
45313+
"genre": "niconicoボーカロイド"
4531445314
},
4531545315
"11709": {
4531645316
"name": "つづみぐさ",
45317-
"ver": "24500",
45317+
"ver": "24503",
4531845318
"notes": [
4531945319
{
45320-
"lv": 0
45320+
"lv": 3
4532145321
},
4532245322
{
45323-
"lv": 0
45323+
"lv": 7.5
4532445324
},
4532545325
{
45326-
"lv": 10.3
45326+
"lv": 10
4532745327
},
4532845328
{
4532945329
"lv": 13.3
4533045330
}
4533145331
],
4533245332
"composer": "いよわ",
45333-
"genre": "niconico&ボーカロイド"
45333+
"genre": "niconicoボーカロイド"
4533445334
},
4533545335
"11710": {
4533645336
"name": "サイバーサンダーサイダー",
@@ -46116,16 +46116,16 @@
4611646116
"name": "美夜月鏡",
4611746117
"ver": "25000",
4611846118
"composer": "かゆき",
46119-
"genre": "",
46119+
"genre": "オンゲキCHUNITHM",
4612046120
"notes": [
4612146121
{
46122-
"lv": 0
46122+
"lv": 5
4612346123
},
4612446124
{
46125-
"lv": 0
46125+
"lv": 7.9
4612646126
},
4612746127
{
46128-
"lv": 0
46128+
"lv": 12.2
4612946129
},
4613046130
{
4613146131
"lv": 14.2

0 commit comments

Comments
 (0)