Add other platform game resources

This commit is contained in:
daydreamer-json
2026-01-26 15:10:42 +09:00
parent a355eba85d
commit a5732bcd98
19 changed files with 543 additions and 64 deletions

View File

@@ -0,0 +1,58 @@
[
{
"updatedAt": "2026-01-26T15:05:44.588+09:00",
"req": {
"appCode": "YDUTE5gscDZ229CW",
"gameVersion": "1.0",
"version": "1.0.14",
"randStr": "Qk2mXHuAH1JWKF37",
"platform": "Android"
},
"rsp": {
"resources": [
{
"name": "main",
"version": "5367902-16",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/Android/main/5367902-16_OOWL2udleuIrnOqU/files"
},
{
"name": "initial",
"version": "5367902-16",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/Android/initial/5367902-16_Iz8jbA4vGWqy0jdz/files"
}
],
"configs": "{\"kick_flag\":false}",
"res_version": "initial_5367902-16_main_5367902-16",
"patch_index_path": "",
"domain": "https://beyond.hg-cdn.com"
}
},
{
"updatedAt": "2026-01-26T15:05:44.704+09:00",
"req": {
"appCode": "YDUTE5gscDZ229CW",
"gameVersion": "1.0",
"version": "1.0.13",
"randStr": "i5QZm30fLgOWSldR",
"platform": "Android"
},
"rsp": {
"resources": [
{
"name": "main",
"version": "5367902-16",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/Android/main/5367902-16_OOWL2udleuIrnOqU/files"
},
{
"name": "initial",
"version": "5367902-16",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/Android/initial/5367902-16_Iz8jbA4vGWqy0jdz/files"
}
],
"configs": "{\"kick_flag\":false}",
"res_version": "initial_5367902-16_main_5367902-16",
"patch_index_path": "",
"domain": "https://beyond.hg-cdn.com"
}
}
]

View File

@@ -0,0 +1,27 @@
{
"req": {
"appCode": "YDUTE5gscDZ229CW",
"gameVersion": "1.0",
"version": "1.0.14",
"randStr": "Qk2mXHuAH1JWKF37",
"platform": "Android"
},
"rsp": {
"resources": [
{
"name": "main",
"version": "5367902-16",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/Android/main/5367902-16_OOWL2udleuIrnOqU/files"
},
{
"name": "initial",
"version": "5367902-16",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/Android/initial/5367902-16_Iz8jbA4vGWqy0jdz/files"
}
],
"configs": "{\"kick_flag\":false}",
"res_version": "initial_5367902-16_main_5367902-16",
"patch_index_path": "",
"domain": "https://beyond.hg-cdn.com"
}
}

View File

@@ -0,0 +1,27 @@
{
"req": {
"appCode": "YDUTE5gscDZ229CW",
"gameVersion": "1.0",
"version": "1.0.13",
"randStr": "i5QZm30fLgOWSldR",
"platform": "Android"
},
"rsp": {
"resources": [
{
"name": "main",
"version": "5367902-16",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/Android/main/5367902-16_OOWL2udleuIrnOqU/files"
},
{
"name": "initial",
"version": "5367902-16",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/Android/initial/5367902-16_Iz8jbA4vGWqy0jdz/files"
}
],
"configs": "{\"kick_flag\":false}",
"res_version": "initial_5367902-16_main_5367902-16",
"patch_index_path": "",
"domain": "https://beyond.hg-cdn.com"
}
}

View File

@@ -0,0 +1,27 @@
{
"req": {
"appCode": "YDUTE5gscDZ229CW",
"gameVersion": "1.0",
"version": "1.0.14",
"randStr": "Qk2mXHuAH1JWKF37",
"platform": "Android"
},
"rsp": {
"resources": [
{
"name": "main",
"version": "5367902-16",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/Android/main/5367902-16_OOWL2udleuIrnOqU/files"
},
{
"name": "initial",
"version": "5367902-16",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/Android/initial/5367902-16_Iz8jbA4vGWqy0jdz/files"
}
],
"configs": "{\"kick_flag\":false}",
"res_version": "initial_5367902-16_main_5367902-16",
"patch_index_path": "",
"domain": "https://beyond.hg-cdn.com"
}
}

View File

@@ -0,0 +1,58 @@
[
{
"updatedAt": "2026-01-26T15:05:45.018+09:00",
"req": {
"appCode": "YDUTE5gscDZ229CW",
"gameVersion": "1.0",
"version": "1.0.14",
"randStr": "Qk2mXHuAH1JWKF37",
"platform": "PlayStation"
},
"rsp": {
"resources": [
{
"name": "main",
"version": "5367902-107",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/PlayStation/main/5367902-107_OFLPFAqzMDPLAS9V/files"
},
{
"name": "initial",
"version": "5367902-107",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/PlayStation/initial/5367902-107_m6lq8U24uDuaoWO2/files"
}
],
"configs": "{\"kick_flag\":false}",
"res_version": "initial_5367902-107_main_5367902-107",
"patch_index_path": "",
"domain": "https://beyond.hg-cdn.com"
}
},
{
"updatedAt": "2026-01-26T15:05:45.128+09:00",
"req": {
"appCode": "YDUTE5gscDZ229CW",
"gameVersion": "1.0",
"version": "1.0.13",
"randStr": "i5QZm30fLgOWSldR",
"platform": "PlayStation"
},
"rsp": {
"resources": [
{
"name": "main",
"version": "5367902-107",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/PlayStation/main/5367902-107_OFLPFAqzMDPLAS9V/files"
},
{
"name": "initial",
"version": "5367902-107",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/PlayStation/initial/5367902-107_m6lq8U24uDuaoWO2/files"
}
],
"configs": "{\"kick_flag\":false}",
"res_version": "initial_5367902-107_main_5367902-107",
"patch_index_path": "",
"domain": "https://beyond.hg-cdn.com"
}
}
]

View File

@@ -0,0 +1,27 @@
{
"req": {
"appCode": "YDUTE5gscDZ229CW",
"gameVersion": "1.0",
"version": "1.0.14",
"randStr": "Qk2mXHuAH1JWKF37",
"platform": "PlayStation"
},
"rsp": {
"resources": [
{
"name": "main",
"version": "5367902-107",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/PlayStation/main/5367902-107_OFLPFAqzMDPLAS9V/files"
},
{
"name": "initial",
"version": "5367902-107",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/PlayStation/initial/5367902-107_m6lq8U24uDuaoWO2/files"
}
],
"configs": "{\"kick_flag\":false}",
"res_version": "initial_5367902-107_main_5367902-107",
"patch_index_path": "",
"domain": "https://beyond.hg-cdn.com"
}
}

View File

@@ -0,0 +1,27 @@
{
"req": {
"appCode": "YDUTE5gscDZ229CW",
"gameVersion": "1.0",
"version": "1.0.13",
"randStr": "i5QZm30fLgOWSldR",
"platform": "PlayStation"
},
"rsp": {
"resources": [
{
"name": "main",
"version": "5367902-107",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/PlayStation/main/5367902-107_OFLPFAqzMDPLAS9V/files"
},
{
"name": "initial",
"version": "5367902-107",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/PlayStation/initial/5367902-107_m6lq8U24uDuaoWO2/files"
}
],
"configs": "{\"kick_flag\":false}",
"res_version": "initial_5367902-107_main_5367902-107",
"patch_index_path": "",
"domain": "https://beyond.hg-cdn.com"
}
}

View File

@@ -0,0 +1,27 @@
{
"req": {
"appCode": "YDUTE5gscDZ229CW",
"gameVersion": "1.0",
"version": "1.0.14",
"randStr": "Qk2mXHuAH1JWKF37",
"platform": "PlayStation"
},
"rsp": {
"resources": [
{
"name": "main",
"version": "5367902-107",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/PlayStation/main/5367902-107_OFLPFAqzMDPLAS9V/files"
},
{
"name": "initial",
"version": "5367902-107",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/PlayStation/initial/5367902-107_m6lq8U24uDuaoWO2/files"
}
],
"configs": "{\"kick_flag\":false}",
"res_version": "initial_5367902-107_main_5367902-107",
"patch_index_path": "",
"domain": "https://beyond.hg-cdn.com"
}
}

View File

@@ -5,7 +5,8 @@
"appCode": "YDUTE5gscDZ229CW",
"gameVersion": "1.0",
"version": "1.0.13",
"randStr": "i5QZm30fLgOWSldR"
"randStr": "i5QZm30fLgOWSldR",
"platform": "Windows"
},
"rsp": {
"resources": [
@@ -32,7 +33,8 @@
"appCode": "YDUTE5gscDZ229CW",
"gameVersion": "1.0",
"version": "1.0.13",
"randStr": "i5QZm30fLgOWSldR"
"randStr": "i5QZm30fLgOWSldR",
"platform": "Windows"
},
"rsp": {
"resources": [
@@ -59,7 +61,8 @@
"appCode": "YDUTE5gscDZ229CW",
"gameVersion": "1.0",
"version": "1.0.13",
"randStr": "i5QZm30fLgOWSldR"
"randStr": "i5QZm30fLgOWSldR",
"platform": "Windows"
},
"rsp": {
"resources": [
@@ -86,7 +89,8 @@
"appCode": "YDUTE5gscDZ229CW",
"gameVersion": "1.0",
"version": "1.0.14",
"randStr": "Qk2mXHuAH1JWKF37"
"randStr": "Qk2mXHuAH1JWKF37",
"platform": "Windows"
},
"rsp": {
"resources": [

View File

@@ -3,7 +3,8 @@
"appCode": "YDUTE5gscDZ229CW",
"gameVersion": "1.0",
"version": "1.0.14",
"randStr": "Qk2mXHuAH1JWKF37"
"randStr": "Qk2mXHuAH1JWKF37",
"platform": "Windows"
},
"rsp": {
"resources": [

View File

@@ -3,7 +3,8 @@
"appCode": "YDUTE5gscDZ229CW",
"gameVersion": "1.0",
"version": "1.0.13",
"randStr": "i5QZm30fLgOWSldR"
"randStr": "i5QZm30fLgOWSldR",
"platform": "Windows"
},
"rsp": {
"resources": [

View File

@@ -3,7 +3,8 @@
"appCode": "YDUTE5gscDZ229CW",
"gameVersion": "1.0",
"version": "1.0.14",
"randStr": "Qk2mXHuAH1JWKF37"
"randStr": "Qk2mXHuAH1JWKF37",
"platform": "Windows"
},
"rsp": {
"resources": [

View File

@@ -0,0 +1,58 @@
[
{
"updatedAt": "2026-01-26T15:05:44.811+09:00",
"req": {
"appCode": "YDUTE5gscDZ229CW",
"gameVersion": "1.0",
"version": "1.0.14",
"randStr": "Qk2mXHuAH1JWKF37",
"platform": "iOS"
},
"rsp": {
"resources": [
{
"name": "main",
"version": "5367902-19",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/iOS/main/5367902-19_LaSCOf67UNSRRJ3e/files"
},
{
"name": "initial",
"version": "5367902-19",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/iOS/initial/5367902-19_x0awyNFSLh0ag2dZ/files"
}
],
"configs": "{\"kick_flag\":false}",
"res_version": "initial_5367902-19_main_5367902-19",
"patch_index_path": "",
"domain": "https://beyond.hg-cdn.com"
}
},
{
"updatedAt": "2026-01-26T15:05:44.921+09:00",
"req": {
"appCode": "YDUTE5gscDZ229CW",
"gameVersion": "1.0",
"version": "1.0.13",
"randStr": "i5QZm30fLgOWSldR",
"platform": "iOS"
},
"rsp": {
"resources": [
{
"name": "main",
"version": "5367902-19",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/iOS/main/5367902-19_LaSCOf67UNSRRJ3e/files"
},
{
"name": "initial",
"version": "5367902-19",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/iOS/initial/5367902-19_x0awyNFSLh0ag2dZ/files"
}
],
"configs": "{\"kick_flag\":false}",
"res_version": "initial_5367902-19_main_5367902-19",
"patch_index_path": "",
"domain": "https://beyond.hg-cdn.com"
}
}
]

View File

@@ -0,0 +1,27 @@
{
"req": {
"appCode": "YDUTE5gscDZ229CW",
"gameVersion": "1.0",
"version": "1.0.14",
"randStr": "Qk2mXHuAH1JWKF37",
"platform": "iOS"
},
"rsp": {
"resources": [
{
"name": "main",
"version": "5367902-19",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/iOS/main/5367902-19_LaSCOf67UNSRRJ3e/files"
},
{
"name": "initial",
"version": "5367902-19",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/iOS/initial/5367902-19_x0awyNFSLh0ag2dZ/files"
}
],
"configs": "{\"kick_flag\":false}",
"res_version": "initial_5367902-19_main_5367902-19",
"patch_index_path": "",
"domain": "https://beyond.hg-cdn.com"
}
}

View File

@@ -0,0 +1,27 @@
{
"req": {
"appCode": "YDUTE5gscDZ229CW",
"gameVersion": "1.0",
"version": "1.0.13",
"randStr": "i5QZm30fLgOWSldR",
"platform": "iOS"
},
"rsp": {
"resources": [
{
"name": "main",
"version": "5367902-19",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/iOS/main/5367902-19_LaSCOf67UNSRRJ3e/files"
},
{
"name": "initial",
"version": "5367902-19",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/iOS/initial/5367902-19_x0awyNFSLh0ag2dZ/files"
}
],
"configs": "{\"kick_flag\":false}",
"res_version": "initial_5367902-19_main_5367902-19",
"patch_index_path": "",
"domain": "https://beyond.hg-cdn.com"
}
}

View File

@@ -0,0 +1,27 @@
{
"req": {
"appCode": "YDUTE5gscDZ229CW",
"gameVersion": "1.0",
"version": "1.0.14",
"randStr": "Qk2mXHuAH1JWKF37",
"platform": "iOS"
},
"rsp": {
"resources": [
{
"name": "main",
"version": "5367902-19",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/iOS/main/5367902-19_LaSCOf67UNSRRJ3e/files"
},
{
"name": "initial",
"version": "5367902-19",
"path": "https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/iOS/initial/5367902-19_x0awyNFSLh0ag2dZ/files"
}
],
"configs": "{\"kick_flag\":false}",
"res_version": "initial_5367902-19_main_5367902-19",
"patch_index_path": "",
"domain": "https://beyond.hg-cdn.com"
}
}

View File

@@ -1,7 +1,32 @@
# Game Resources
- [Windows](#res-Windows)
- [Android](#res-Android)
- [iOS](#res-iOS)
- [PlayStation](#res-PlayStation)
<h2 id="res-Windows">Windows</h2>
| Res version | Initial | Main | Game version |
| ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------- |
| `initial_5327933-13_main_5327933-13` | [5327933-13](https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/Windows/initial/5327933-13_MxibWISDlHu4FYDu/files) | [5327933-13](https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/Windows/main/5327933-13_pYX1R4dE1CSyfylE/files) | 1.0.13 |
| `initial_5340632-14_main_5340632-14` | [5340632-14](https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/Windows/initial/5340632-14_dQKNcTzL53b3s9ZH/files) | [5340632-14](https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/Windows/main/5340632-14_9p3lPE9qFFEWBOaC/files) | 1.0.13 |
| `initial_5367902-17_main_5367902-17` | [5367902-17](https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/Windows/initial/5367902-17_LrQj49LPFpyDgIej/files) | [5367902-17](https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/Windows/main/5367902-17_fLACemodWWueNQYf/files) | 1.0.13, 1.0.14 |
| `initial_5367902-17_main_5367902-17` | [5367902-17](https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/Windows/initial/5367902-17_LrQj49LPFpyDgIej/files) | [5367902-17](https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/Windows/main/5367902-17_fLACemodWWueNQYf/files) | 1.0.14, 1.0.13 |
<h2 id="res-Android">Android</h2>
| Res version | Initial | Main | Game version |
| ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------- |
| `initial_5367902-16_main_5367902-16` | [5367902-16](https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/Android/initial/5367902-16_Iz8jbA4vGWqy0jdz/files) | [5367902-16](https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/Android/main/5367902-16_OOWL2udleuIrnOqU/files) | 1.0.14, 1.0.13 |
<h2 id="res-iOS">iOS</h2>
| Res version | Initial | Main | Game version |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | -------------- |
| `initial_5367902-19_main_5367902-19` | [5367902-19](https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/iOS/initial/5367902-19_x0awyNFSLh0ag2dZ/files) | [5367902-19](https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/iOS/main/5367902-19_LaSCOf67UNSRRJ3e/files) | 1.0.14, 1.0.13 |
<h2 id="res-PlayStation">PlayStation</h2>
| Res version | Initial | Main | Game version |
| -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------- |
| `initial_5367902-107_main_5367902-107` | [5367902-107](https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/PlayStation/initial/5367902-107_m6lq8U24uDuaoWO2/files) | [5367902-107](https://beyond.hg-cdn.com/YDUTE5gscDZ229CW/1.0/resource/PlayStation/main/5367902-107_OFLPFAqzMDPLAS9V/files) | 1.0.14, 1.0.13 |

View File

@@ -189,6 +189,8 @@ async function mainCmdHandler() {
await (async () => {
logger.debug('Fetching latestGameRes ...');
const platforms = ['Windows', 'Android', 'iOS', 'PlayStation'] as const;
const gameAllJsonPath = path.join(
argvUtils.getArgv()['outputDir'],
'akEndfield',
@@ -214,33 +216,38 @@ async function mainCmdHandler() {
randStr: /_([^/]+)\/.+?$/.exec(e.pkg.file_path)![1],
}))
.sort((a, b) => semver.compare(b.version, a.version));
let isLatestWrote: boolean = false;
for (const versionInfoEntry of versionInfoList) {
if (!versionInfoEntry.randStr) throw new Error('version rand_str not found');
const rsp = await apiUtils.apiAkEndfield.launcher.latestGameResources(
cfg.appCode.game.osWinRel,
versionInfoEntry.versionMinor,
versionInfoEntry.version,
versionInfoEntry.randStr,
);
logger.info(`Fetched latestGameRes: v${versionInfoEntry.version}, ${rsp.res_version}`);
const prettyRsp = {
req: {
appCode: cfg.appCode.game.osWinRel,
gameVersion: versionInfoEntry.versionMinor,
version: versionInfoEntry.version,
randStr: versionInfoEntry.randStr,
},
rsp,
};
await saveResult(
['akEndfield', 'launcher', 'game_resources', channelStr],
versionInfoEntry.version,
prettyRsp,
!isLatestWrote,
);
isLatestWrote = true;
for (const platform of platforms) {
let isLatestWrote: boolean = false;
for (const versionInfoEntry of versionInfoList) {
if (!versionInfoEntry.randStr) throw new Error('version rand_str not found');
const rsp = await apiUtils.apiAkEndfield.launcher.latestGameResources(
cfg.appCode.game.osWinRel,
versionInfoEntry.versionMinor,
versionInfoEntry.version,
versionInfoEntry.randStr,
platform,
);
logger.info(`Fetched latestGameRes: ${platform}, v${versionInfoEntry.version}, ${rsp.res_version}`);
const prettyRsp = {
req: {
appCode: cfg.appCode.game.osWinRel,
gameVersion: versionInfoEntry.versionMinor,
version: versionInfoEntry.version,
randStr: versionInfoEntry.randStr,
platform,
},
rsp,
};
await saveResult(
['akEndfield', 'launcher', 'game_resources', channelStr, platform],
versionInfoEntry.version,
prettyRsp,
!isLatestWrote,
);
isLatestWrote = true;
}
}
})();
@@ -375,39 +382,62 @@ async function mainCmdHandler() {
})();
await (async () => {
const gameAllJson = await Bun.file(
path.join(argvUtils.getArgv()['outputDir'], 'akEndfield', 'launcher', 'game_resources', channelStr, 'all.json'),
).json();
const resVersionSet: {
resVersion: string;
rsp: { rsp: Awaited<ReturnType<typeof apiUtils.apiAkEndfield.launcher.latestGameResources>> };
versions: string[];
}[] = (() => {
const resVersions: string[] = [...new Set(gameAllJson.map((e: any) => e.rsp.res_version))] as string[];
const arr: { resVersion: string; rsp: any; versions: string[] }[] = [];
for (const resVersion of resVersions) {
arr.push({
resVersion,
rsp: gameAllJson.find((e: any) => e.rsp.res_version === resVersion),
versions: [
...new Set(
gameAllJson.filter((e: any) => e.rsp.res_version === resVersion).map((e: any) => e.req.version),
),
] as string[],
});
}
return arr;
})();
const mdTexts: string[] = [];
mdTexts.push(
'# Game Resources\n',
'|Res version|Initial|Main|Game version|',
'|--|--|--|--|',
...resVersionSet.map(
(resVerObj) =>
`|\`${resVerObj.rsp.rsp.res_version}\`|[${resVerObj.rsp.rsp.resources.find((e) => e.name === 'initial')!.version}](${resVerObj.rsp.rsp.resources.find((e) => e.name === 'initial')!.path})|[${resVerObj.rsp.rsp.resources.find((e) => e.name === 'main')!.version}](${resVerObj.rsp.rsp.resources.find((e) => e.name === 'main')!.path})|${resVerObj.versions.join(', ')}|`,
),
'- [Windows](#res-Windows)',
'- [Android](#res-Android)',
'- [iOS](#res-iOS)',
'- [PlayStation](#res-PlayStation)\n',
);
// `<h2 id="ver-${e.rsp.version}-${Math.ceil(DateTime.fromISO(e.updatedAt).toSeconds())}">${e.rsp.version} (${DateTime.fromISO(e.updatedAt, { setZone: true }).setZone('UTC+8').toFormat('yyyy/MM/dd HH:mm:ss')})</h2>\n`
const platforms = ['Windows', 'Android', 'iOS', 'PlayStation'] as const;
for (const platform of platforms) {
const gameAllJson = await Bun.file(
path.join(
argvUtils.getArgv()['outputDir'],
'akEndfield',
'launcher',
'game_resources',
channelStr,
platform,
'all.json',
),
).json();
const resVersionSet: {
resVersion: string;
rsp: { rsp: Awaited<ReturnType<typeof apiUtils.apiAkEndfield.launcher.latestGameResources>> };
versions: string[];
}[] = (() => {
const resVersions: string[] = [...new Set(gameAllJson.map((e: any) => e.rsp.res_version))] as string[];
const arr: { resVersion: string; rsp: any; versions: string[] }[] = [];
for (const resVersion of resVersions) {
arr.push({
resVersion,
rsp: gameAllJson.find((e: any) => e.rsp.res_version === resVersion),
versions: [
...new Set(
gameAllJson.filter((e: any) => e.rsp.res_version === resVersion).map((e: any) => e.req.version),
),
] as string[],
});
}
return arr;
})();
mdTexts.push(
`<h2 id="res-${platform}">${platform}</h2>\n`,
'|Res version|Initial|Main|Game version|',
'|--|--|--|--|',
...resVersionSet.map(
(resVerObj) =>
`|\`${resVerObj.rsp.rsp.res_version}\`|[${resVerObj.rsp.rsp.resources.find((e) => e.name === 'initial')!.version}](${resVerObj.rsp.rsp.resources.find((e) => e.name === 'initial')!.path})|[${resVerObj.rsp.rsp.resources.find((e) => e.name === 'main')!.version}](${resVerObj.rsp.rsp.resources.find((e) => e.name === 'main')!.path})|${resVerObj.versions.sort((a, b) => semver.compare(b, a)).join(', ')}|`,
),
'',
);
}
await Bun.write(
path.join(argvUtils.getArgv()['outputDir'], 'akEndfield', 'launcher', 'game_resources', channelStr, 'list.md'),
mdTexts.join('\n'),

View File

@@ -61,7 +61,7 @@ export default {
gameVersion: string, // example: 1.0
version: string,
randStr: string,
platform: 'Windows' = 'Windows',
platform: 'Windows' | 'Android' | 'iOS' | 'PlayStation',
): Promise<TypesApiAkEndfield.LauncherLatestGameResources> => {
if (!semver.valid(version)) throw new Error(`Invalid version string (${version})`);
const rsp = await ky