mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-24 03:59:50 +02:00
feat: dynamicContentLocalizationsDir
This commit is contained in:
1 parent
400c6ebfe1
commit
35db670f5c
1 file changed
+34
-6
+34
-6
@@ -1,18 +1,21 @@
|
|||||||
import { mkdir, writeFile } from 'fs/promises';
|
import { mkdir, writeFile } from 'fs/promises';
|
||||||
import { parse as parsePath } from 'path';
|
import { parse as parsePath } from 'path';
|
||||||
import { parse as parseYaml } from 'yaml';
|
import ProgressBar from 'progress';
|
||||||
|
import { parse as parseYaml, stringify as stringifyYaml } from 'yaml';
|
||||||
import { readStringDVPL } from '../src/core/blitz/readStringDVPL';
|
import { readStringDVPL } from '../src/core/blitz/readStringDVPL';
|
||||||
|
import { readYAMLDVPL } from '../src/core/blitz/readYAMLDVPL';
|
||||||
import { writeDVPL } from '../src/core/blitz/writeDVPL';
|
import { writeDVPL } from '../src/core/blitz/writeDVPL';
|
||||||
import { secrets } from '../src/core/blitzkit/secrets';
|
import { secrets } from '../src/core/blitzkit/secrets';
|
||||||
import { dvp } from '../submodules/blitzkit-closed/src/dvp';
|
import { dvp } from '../submodules/blitzkit-closed/src/dvp';
|
||||||
import { DATA } from './buildAssets/constants';
|
import { DATA } from './buildAssets/constants';
|
||||||
|
|
||||||
const versionTextFile = await readStringDVPL(`${DATA}/version.txt.dvpl`);
|
const versionTextFile = await readStringDVPL(`${DATA}/version.txt.dvpl`);
|
||||||
const currentVersion = versionTextFile
|
// const currentVersion = versionTextFile
|
||||||
.split(' ')[0]
|
// .split(' ')[0]
|
||||||
.split('.')
|
// .split('.')
|
||||||
.slice(0, 3)
|
// .slice(0, 3)
|
||||||
.join('.');
|
// .join('.');
|
||||||
|
const currentVersion = '11.1.0';
|
||||||
|
|
||||||
console.log(`Installing patches for ${currentVersion}...`);
|
console.log(`Installing patches for ${currentVersion}...`);
|
||||||
|
|
||||||
@@ -33,6 +36,10 @@ while (true) {
|
|||||||
`${secrets.WOTB_DLC_CDN}/dlc/${data.dx11.replace('.dvpm', '.dvpd')}`,
|
`${secrets.WOTB_DLC_CDN}/dlc/${data.dx11.replace('.dvpm', '.dvpd')}`,
|
||||||
).then((response) => response.arrayBuffer());
|
).then((response) => response.arrayBuffer());
|
||||||
const files = await dvp(dvpm, dvpd);
|
const files = await dvp(dvpm, dvpd);
|
||||||
|
const bar = new ProgressBar(
|
||||||
|
`Patching ${files.length} files :bar`,
|
||||||
|
files.length,
|
||||||
|
);
|
||||||
|
|
||||||
await Promise.all(
|
await Promise.all(
|
||||||
files.map(async ({ path, data }) => {
|
files.map(async ({ path, data }) => {
|
||||||
@@ -40,9 +47,30 @@ while (true) {
|
|||||||
|
|
||||||
await mkdir(`${DATA}/${dir}`, { recursive: true });
|
await mkdir(`${DATA}/${dir}`, { recursive: true });
|
||||||
await writeFile(`${DATA}/${path}.dvpl`, writeDVPL(Buffer.from(data)));
|
await writeFile(`${DATA}/${path}.dvpl`, writeDVPL(Buffer.from(data)));
|
||||||
|
|
||||||
|
bar.tick();
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if ('dynamicContentLocalizationsDir' in data) {
|
||||||
|
console.log('Found dynamic content localizations; patching...');
|
||||||
|
|
||||||
|
const localizationsResponse = await fetch(
|
||||||
|
`${secrets.WOTB_DLC_CDN}/dlc/${data.dynamicContentLocalizationsDir}/en.yaml`,
|
||||||
|
);
|
||||||
|
const newStrings = parseYaml(await localizationsResponse.text());
|
||||||
|
const oldStrings = await readYAMLDVPL<Record<string, string>>(
|
||||||
|
`${DATA}/Strings/en.yaml.dvpl`,
|
||||||
|
);
|
||||||
|
const patchedStrings = { ...oldStrings, ...newStrings };
|
||||||
|
const patchedContent = stringifyYaml(patchedStrings);
|
||||||
|
|
||||||
|
await writeFile(
|
||||||
|
`${DATA}/Strings/en.yaml.dvpl`,
|
||||||
|
writeDVPL(Buffer.from(patchedContent)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
patchIndex++;
|
patchIndex++;
|
||||||
} else break;
|
} else break;
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user