From c815a012c03296976a9d5c590a07db4a607caa40 Mon Sep 17 00:00:00 2001 From: daydreamer-json Date: Fri, 3 Apr 2026 20:14:50 +0900 Subject: [PATCH] feat: add resource files archiving --- output/mirror_file_res_list.json.zst | Bin 0 -> 120570 bytes output/mirror_file_res_list_pending.json | 1 + output/mirror_file_res_patch_list.json.zst | Bin 0 -> 38739 bytes .../mirror_file_res_patch_list_pending.json | 1 + src/cmds/archive.ts | 123 +++++- src/cmds/ghMirrorUpload.ts | 417 ++++++++++++++++-- src/types/api/akEndfield/Res.ts | 33 ++ src/utils/github.ts | 106 +++-- 8 files changed, 607 insertions(+), 74 deletions(-) create mode 100644 output/mirror_file_res_list.json.zst create mode 100644 output/mirror_file_res_list_pending.json create mode 100644 output/mirror_file_res_patch_list.json.zst create mode 100644 output/mirror_file_res_patch_list_pending.json create mode 100644 src/types/api/akEndfield/Res.ts diff --git a/output/mirror_file_res_list.json.zst b/output/mirror_file_res_list.json.zst new file mode 100644 index 0000000000000000000000000000000000000000..25de2dfd7af6321b34114a52a9564a99f9ff05b0 GIT binary patch literal 120570 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%0AWpxXCe_mVwq3~F9cXKSHCnQOr`OsC^QxEhZMhs z!D3kN;{oJH0mf+O=*xzH4%vAhape#R5esxSAmrUnY4)2p5_badq*qN+EIfC8v zhFla_CFnpC9nJ2+o<1Z0;V;wZmzF=h5@UUK1tasib3~Kd@pM8JhAh_Q>c%ZrBR8v{ zsH+-CfRU3WVpAD2(>H<>o*n9c3A?Z#HC7@Ljc2qPC2dmg+35#ovqA)Sc^FmuGP&ga z`KVYIJdh!G8W4#&i4hodrbiVaf8_3(BzP*EQI~W{>fSPSHzI3gLv!{GIg~S20I`vJ zFu9jpD4XJBWrsr%HN3oHSpu+Q8*@+Sb9*s>Lj`xmaatCTrd_;zqqpM7%4j*{N>b3- z-vde`wCvN)P~wQd61kj9iXKS|%FBruJy)1DKyf8hpQzN$Xmq|ROvtC%W|=@UGEw3` z*?VW!Ma2R(nTMp)UpR~t#(~uDSsG;~HTbDYgS}t14KQ@Wd#a_GBXu+Z_ENJ;Jhz+Q zoOAEjoG3;!m5CBy&Svk2wJv$12ve|YqvSca5HM7ya!&-6mP!K_0aM#`M^gL?KWQ_&X^G7=@mZNsmaCyML~ZHDSqV7o{} zmV_0`##2+V2dRd+dTk#FSVNW;1cVj&w6fxq)Z$w2YV756f*b*dVyL4eAT$yRM`Uq1 zf&@VjgaE1c5*h_+(2E z?*ky9`{^9~^zO(vQp=TfGivIvN<02jhL_4NcEK2nnTAv2`XcF0m7%DUPS-M+3-!yn#i$MvT<*i7W5Iv{-eg@J3hgpk9q}vy?12X7tRgBRZas?TeN1s z(whdBjVg->AUk1D<_~;}$Xfkgs7y^MdX z*LTD{k&rezCVcmK2~0TP@m%Y@b6?Di{HXzBvTrxRSQ1H}6%9_-7<(L^{@sChA0Lhw ziLu|^4Y7@~nq5blV}o8g;FhHEj_~YR`vxM=R6K(=03)0>5OnGq3xpZv>6Ax%GFj5=r9t%QTG$4e2q{IFx0OeVi-jJ{eTQBfD)Asc_*#dP)8aTh}rEO!

ZrWso*557Xw)5E8JEw!1$)#uykie=(7lL3 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 literal 0 HcmV?d00001 diff --git a/output/mirror_file_res_list_pending.json b/output/mirror_file_res_list_pending.json new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/output/mirror_file_res_list_pending.json @@ -0,0 +1 @@ +[] diff --git a/output/mirror_file_res_patch_list.json.zst b/output/mirror_file_res_patch_list.json.zst new file mode 100644 index 0000000000000000000000000000000000000000..7bbf2d5c224d31767a340dba4686a47b7a18a6c5 GIT binary patch literal 38739 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 t.channel !== appConfig.network.api.akEndfield.channel.cnWinRelBilibili, + ); + const uniqueTargets = [...new Set(filteredTargets.map((t) => t.channel))]; + + const dbPath = path.join(outputDir, 'mirror_file_res_list.json.zst'); + const patchDbPath = path.join(outputDir, 'mirror_file_res_patch_list.json.zst'); + const pendingDbPath = path.join(outputDir, 'mirror_file_res_list_pending.json'); + const pendingPatchDbPath = path.join(outputDir, 'mirror_file_res_patch_list_pending.json'); + if (!(await Bun.file(dbPath).exists())) await Bun.write(dbPath, Bun.zstdCompressSync('[]')); + if (!(await Bun.file(patchDbPath).exists())) await Bun.write(patchDbPath, Bun.zstdCompressSync('[]')); + if (!(await Bun.file(pendingDbPath).exists())) await Bun.write(pendingDbPath, '[]'); + if (!(await Bun.file(pendingPatchDbPath).exists())) await Bun.write(pendingPatchDbPath, '[]'); + const db: MirrorFileResEntry[] = JSON.parse(Bun.zstdDecompressSync(await Bun.file(dbPath).bytes()).toString('utf-8')); + const patchDb: MirrorFileResPatchEntry[] = JSON.parse( + Bun.zstdDecompressSync(await Bun.file(patchDbPath).bytes()).toString('utf-8'), + ); + const pendingDb: AssetToMirrorRes[] = await Bun.file(pendingDbPath).json(); + const pendingPatchDb: AssetToMirrorResPatch[] = await Bun.file(pendingPatchDbPath).json(); + + for (const channel of uniqueTargets) { + for (const platform of platforms) { + const apiResAllPath = path.join( + outputDir, + 'akEndfield', + 'launcher', + 'game_resources', + String(channel), + platform, + 'all.json', + ); + if (!(await Bun.file(apiResAllPath).exists())) continue; + const apiResAll = ((await Bun.file(apiResAllPath).json()) as StoredData[]) + .map((e) => e.rsp.resources) + .flat(); + for (const apiResEntry of apiResAll) { + const indexJsonPath = path.join( + outputDir, + 'raw', + apiResEntry.path.replace('https://', ''), + 'index_' + apiResEntry.name + '_dec.json', + ); + if (!(await Bun.file(indexJsonPath).exists())) continue; + const indexJson: IResEndfield.ResourceIndex = await Bun.file(indexJsonPath).json(); + for (const resFile of indexJson.files) { + if (db.some((e) => e.md5 === resFile.md5)) continue; + if (pendingDb.some((e) => e.md5 === resFile.md5)) continue; + pendingDb.push({ + md5: resFile.md5, + name: `VFS_${apiResEntry.version}_${resFile.md5}.${path.extname(resFile.name).slice(1)}`, + size: resFile.size, + url: `${apiResEntry.path}/${resFile.name}`, + }); + } + + const patchJsonPath = path.join(outputDir, 'raw', apiResEntry.path.replace('https://', ''), 'patch.json'); + if (!(await Bun.file(patchJsonPath).exists())) continue; + const patchJson: IResEndfield.ResourcePatch = await Bun.file(patchJsonPath).json(); + for (const file of patchJson.files) { + const md5New = file.md5; + for (const patch of file.patch.toReversed()) { + const md5Old = patch.base_md5; + const size = patch.patch_size; + const url = `${apiResEntry.path}/Patch/${patch.patch}`; + if (patchDb.some((e) => e.md5Old === md5Old && e.md5New === md5New)) continue; + if (pendingPatchDb.some((e) => e.md5Old === md5Old && e.md5New === md5New)) continue; + pendingPatchDb.push({ md5Old, md5New, size, url }); + } + } + } + } + } + + await Bun.write(pendingDbPath, JSON.stringify(pendingDb, null, 2)); + await Bun.write(pendingPatchDbPath, JSON.stringify(pendingPatchDb, null, 2)); +} + async function mainCmdHandler() { const cfg = appConfig.network.api.akEndfield; const gameTargets: GameTarget[] = [ @@ -700,15 +807,15 @@ async function mainCmdHandler() { }, ]; - await fetchAndSaveLatestGames(gameTargets); - await fetchAndSaveLatestGamePatches(gameTargets); - await fetchAndSaveLatestGameResources(gameTargets); - await fetchAndSaveLatestWebApis(gameTargets); - await fetchAndSaveLauncherProtocol(gameTargets); - await fetchAndSaveLatestLauncher(launcherTargets); - await fetchAndSaveAllGameResRawData(gameTargets); + // await fetchAndSaveLatestGames(gameTargets); + // await fetchAndSaveLatestGamePatches(gameTargets); + // await fetchAndSaveLatestGameResources(gameTargets); + // await fetchAndSaveLatestWebApis(gameTargets); + // await fetchAndSaveLauncherProtocol(gameTargets); + // await fetchAndSaveLatestLauncher(launcherTargets); + // await fetchAndSaveAllGameResRawData(gameTargets); + await addAllGameResVFSDataToPending(gameTargets); - // Save pending assets to mirror const outputDir = argvUtils.getArgv()['outputDir']; const pendingPath = path.join(outputDir, 'mirror_file_list_pending.json'); const dbPath = path.join(outputDir, 'mirror_file_list.json'); diff --git a/src/cmds/ghMirrorUpload.ts b/src/cmds/ghMirrorUpload.ts index 3ccb3b1..a4728bf 100644 --- a/src/cmds/ghMirrorUpload.ts +++ b/src/cmds/ghMirrorUpload.ts @@ -16,13 +16,38 @@ interface MirrorFileEntry { origStatus: boolean; } +interface MirrorFileResEntry { + md5: string; + mirror: string; + chunk: { start: number; length: number } | null; +} + +interface MirrorFileResPatchEntry { + md5Old: string; + md5New: string; + mirror: string; + chunk: { start: number; length: number } | null; +} + interface AssetToMirror { url: string; name: string | null; } -let githubAuthCfg: any = null; -let octoClient: Octokit | null = null; +interface AssetToMirrorRes { + md5: string; + name: string; + size: number; + url: string; +} + +interface AssetToMirrorResPatch { + md5Old: string; + md5New: string; + size: number; + url: string; +} + const networkQueue = new PQueue({ concurrency: appConfig.threadCount.network }); const formatBytes = (size: number) => @@ -62,7 +87,9 @@ async function checkMirrorFileDbStatus() { await Bun.write(dbPath, JSON.stringify(db, null, 2)); } -async function processMirrorQueue() { +async function processMirrorQueue(configAuth: any, client: Octokit) { + const owner = configAuth.github.relArchive.owner; + const repo = configAuth.github.relArchive.repo; const outputDir = argvUtils.getArgv()['outputDir']; const dbPath = path.join(outputDir, 'mirror_file_list.json'); const pendingPath = path.join(outputDir, 'mirror_file_list_pending.json'); @@ -82,49 +109,383 @@ async function processMirrorQueue() { logger.info(`Processing ${pending.length} pending assets ...`); + const selectedTag = (() => { + const regexp = /github\.com\/.+?\/.+?\/releases\/download\/(.+?)\//; + for (const tag of configAuth.github.relArchive.tags) { + if ( + db.filter((e) => e.mirror.match(regexp) && e.mirror.match(regexp)![1] && e.mirror.match(regexp)![1] === tag) + .length <= 997 + ) + return tag; + } + return false; + })(); + if (!selectedTag) logger.error('GitHub tag assets file count limit reached'); + for (const { url, name } of pending) { const origUrl = stringUtils.removeQueryStr(url); if (!db.find((e) => e.orig.includes(origUrl))) { - await githubUtils.uploadAsset(octoClient, githubAuthCfg, url, name); - if (githubAuthCfg) { - db.push({ - orig: origUrl, - mirror: `https://github.com/${githubAuthCfg.github.relArchive.owner}/${githubAuthCfg.github.relArchive.repo}/releases/download/${githubAuthCfg.github.relArchive.tag}/${name ?? new URL(url).pathname.split('/').pop() ?? ''}`, - origStatus: true, - }); - await Bun.write(dbPath, JSON.stringify(db, null, 2)); - } + await githubUtils.uploadAsset(client, owner, repo, selectedTag, url, name); + db.push({ + orig: origUrl, + mirror: `https://github.com/${owner}/${repo}/releases/download/${selectedTag}/${name ?? new URL(url).pathname.split('/').pop() ?? ''}`, + origStatus: true, + }); + await Bun.write(dbPath, JSON.stringify(db, null, 2)); } } - // Clear pending list await Bun.write(pendingPath, JSON.stringify([], null, 2)); logger.info('Mirroring process completed and pending list cleared'); } -async function mainCmdHandler() { - const authPath = 'config/config_auth.yaml'; - if (await Bun.file(authPath).exists()) { - githubAuthCfg = YAML.parse(await Bun.file(authPath).text()); - logger.info('Logging in to GitHub'); - octoClient = new Octokit({ auth: githubAuthCfg.github.relArchive.token }); - } else { - logger.error('GitHub authentication config not found'); - return; +async function processMirrorResQueue(configAuth: any, client: Octokit) { + const ghFileSizeLimit = 2 * 1024 ** 3 - 1; + const owner = configAuth.github.relArchiveRes.owner; + const repo = configAuth.github.relArchiveRes.repo; + const outputDir = argvUtils.getArgv()['outputDir']; + const dbPath = path.join(outputDir, 'mirror_file_res_list.json.zst'); + const patchDbPath = path.join(outputDir, 'mirror_file_res_patch_list.json.zst'); + const pendingDbPath = path.join(outputDir, 'mirror_file_res_list_pending.json'); + const patchPendingDbPath = path.join(outputDir, 'mirror_file_res_patch_list_pending.json'); + const db: MirrorFileResEntry[] = JSON.parse(Bun.zstdDecompressSync(await Bun.file(dbPath).bytes()).toString('utf-8')); + const patchDb: MirrorFileResPatchEntry[] = JSON.parse( + Bun.zstdDecompressSync(await Bun.file(patchDbPath).bytes()).toString('utf-8'), + ); + const pendingDb: AssetToMirrorRes[] = (await Bun.file(pendingDbPath).json()) ?? []; + const validPendingDb: AssetToMirrorRes[] = []; + const newPendingDb: AssetToMirrorRes[] = []; + + for (const entry of pendingDb) { + if (db.some((e) => e.md5 === entry.md5)) continue; + if (entry.size >= ghFileSizeLimit) { + logger.warn(`File size is larger than limit. Skipped: ${entry.name}`); + newPendingDb.push(entry); + continue; + } + validPendingDb.push(entry); } - if (await githubUtils.checkIsActionRunning(githubAuthCfg)) { + if (validPendingDb.length === 0) { + logger.info('Res valid pending list is empty'); + } else { + logger.info(`Processing ${validPendingDb.length} pending res ...`); + + const getSelectedTag = () => { + const regexp = /github\.com\/.+?\/.+?\/releases\/download\/(.+?)\//; + for (const tag of configAuth.github.relArchiveRes.tags) { + if ( + [...new Set([...db, ...patchDb].map((e) => e.mirror))].filter( + (e) => e.match(regexp) && e.match(regexp)![1] && e.match(regexp)![1] === tag, + ).length <= 997 + ) + return tag as string; + } + return false; + }; + + if (!getSelectedTag()) { + logger.error('GitHub tag assets file count limit reached'); + return; + } + + const pendingFileChunkSizeLimit = ghFileSizeLimit; + const chunkThresholdSize = 500 * 1024 ** 2; + const pendingFileChunks = validPendingDb + .filter((e) => e.size < chunkThresholdSize) + .reduce( + (acc, item) => { + const lastChunk = acc.at(-1)!; + const currentChunkSize = lastChunk.reduce((sum, i) => sum + i.size, 0); + if (currentChunkSize + item.size <= pendingFileChunkSizeLimit) { + lastChunk.push(item); + } else { + acc.push([item]); + } + return acc; + }, + [[]] as AssetToMirrorRes[][], + ); + if (pendingFileChunks.length === 1 && pendingFileChunks[0]!.length === 0) { + logger.info('Chunk upload skipped'); + await Bun.write(pendingDbPath, JSON.stringify(validPendingDb, null, 2)); + } else { + for (const chunk of pendingFileChunks) { + const buffers: { index: number; data: Uint8Array }[] = []; + console.log(''); + chunk.forEach((e, index) => { + networkQueue.add(async () => { + const data = await ky + .get(e.url, { + headers: { 'User-Agent': appConfig.network.userAgent.minimum }, + timeout: appConfig.network.timeout, + retry: { limit: appConfig.network.retryCount }, + }) + .bytes(); + buffers.push({ index, data }); + process.stdout.write('\x1b[1A\x1b[2K'); + logger.trace( + `Downloaded: ${buffers.length.toString().padStart(chunk.length.toString().length, ' ')} / ${chunk.length}, ${new URL(e.url).pathname.split('/').at(-1)}, ${formatBytes(data.length)}`, + ); + }); + }); + await networkQueue.onIdle(); + buffers.sort((a, b) => a.index - b.index); + + const chunkTotalSize = mathUtils.arrayTotal(buffers.map((e) => e.data.length)); + const combinedBuffer = new Uint8Array(chunkTotalSize); + let offset = 0; + for (const item of buffers) { + combinedBuffer.set(item.data, offset); + offset += item.data.length; + } + const combinedBufferMd5 = new Bun.CryptoHasher('md5').update(combinedBuffer).digest('hex'); + const chunkFileName = `VFS_Chunk_${combinedBufferMd5}.bin`; + if (getSelectedTag() === false) throw new Error('GitHub tag assets file count limit reached'); + await githubUtils.uploadAssetWithBuffer( + client, + owner, + repo, + getSelectedTag() as string, + chunkFileName, + combinedBuffer, + ); + + offset = 0; + for (const item of chunk) { + db.push({ + md5: item.md5, + mirror: `https://github.com/${owner}/${repo}/releases/download/${getSelectedTag()}/${chunkFileName}`, + chunk: { start: offset, length: item.size }, + }); + offset += item.size; + } + await Bun.write(dbPath, Bun.zstdCompressSync(JSON.stringify(db), { level: 16 })); + } + } + + const bigFiles = validPendingDb.filter((e) => e.size >= chunkThresholdSize); + await Bun.write(pendingDbPath, JSON.stringify([...newPendingDb, ...bigFiles], null, 2)); + + { + if (bigFiles.length > 0) logger.info('Processing big pending res ...'); + networkQueue.concurrency = 4; + for (const file of bigFiles) { + networkQueue.add(async () => { + const buffer: Uint8Array = await ky + .get(file.url, { + headers: { 'User-Agent': appConfig.network.userAgent.minimum }, + timeout: appConfig.network.timeout, + retry: { limit: appConfig.network.retryCount }, + }) + .bytes(); + logger.trace('Downloaded: ' + file.name); + if (getSelectedTag() === false) throw new Error('GitHub tag assets file count limit reached'); + + await githubUtils.uploadAssetWithBuffer(client, owner, repo, getSelectedTag() as string, file.name, buffer); + db.push({ + md5: file.md5, + mirror: `https://github.com/${owner}/${repo}/releases/download/${getSelectedTag()}/${file.name}`, + chunk: null, + }); + await Bun.write(dbPath, Bun.zstdCompressSync(JSON.stringify(db), { level: 16 })); + }); + } + await networkQueue.onIdle(); + networkQueue.concurrency = appConfig.threadCount.network; + } + } + + await Bun.write(pendingDbPath, JSON.stringify([...newPendingDb], null, 2)); +} + +async function processMirrorResPatchQueue(configAuth: any, client: Octokit) { + const ghFileSizeLimit = 2 * 1024 ** 3 - 1; + const owner = configAuth.github.relArchiveRes.owner; + const repo = configAuth.github.relArchiveRes.repo; + const outputDir = argvUtils.getArgv()['outputDir']; + const dbPath = path.join(outputDir, 'mirror_file_res_list.json.zst'); + const patchDbPath = path.join(outputDir, 'mirror_file_res_patch_list.json.zst'); + const pendingDbPath = path.join(outputDir, 'mirror_file_res_patch_list_pending.json'); + + if (!(await Bun.file(pendingDbPath).exists())) return; + + const db: MirrorFileResEntry[] = (await Bun.file(dbPath).exists()) + ? JSON.parse(Bun.zstdDecompressSync(await Bun.file(dbPath).bytes()).toString('utf-8')) + : []; + const patchDb: MirrorFileResPatchEntry[] = (await Bun.file(patchDbPath).exists()) + ? JSON.parse(Bun.zstdDecompressSync(await Bun.file(patchDbPath).bytes()).toString('utf-8')) + : []; + const pendingDb: AssetToMirrorResPatch[] = (await Bun.file(pendingDbPath).json()) ?? []; + const validPendingDb: AssetToMirrorResPatch[] = []; + const newPendingDb: AssetToMirrorResPatch[] = []; + + for (const entry of pendingDb) { + if (patchDb.some((e) => e.md5Old === entry.md5Old && e.md5New === entry.md5New)) continue; + if (entry.size >= ghFileSizeLimit) { + logger.warn(`File size is larger than limit. Skipped patch: ${entry.md5Old} -> ${entry.md5New}`); + newPendingDb.push(entry); + continue; + } + validPendingDb.push(entry); + } + + if (validPendingDb.length === 0) { + logger.info('Res patch valid pending list is empty'); + } else { + logger.info(`Processing ${validPendingDb.length} pending res patches ...`); + + const getSelectedTag = () => { + const regexp = /github\.com\/.+?\/.+?\/releases\/download\/(.+?)\//; + for (const tag of configAuth.github.relArchiveRes.tags) { + if ( + [...new Set([...db, ...patchDb].map((e) => e.mirror))].filter( + (e) => e.match(regexp) && e.match(regexp)![1] && e.match(regexp)![1] === tag, + ).length <= 997 + ) + return tag as string; + } + return false; + }; + + if (!getSelectedTag()) { + logger.error('GitHub tag assets file count limit reached'); + return; + } + + const chunkThresholdSize = 500 * 1024 ** 2; + const pendingFileChunks = validPendingDb + .filter((e) => e.size < chunkThresholdSize) + .reduce( + (acc, item) => { + const lastChunk = acc.at(-1)!; + const currentChunkSize = lastChunk.reduce((sum, i) => sum + i.size, 0); + if (currentChunkSize + item.size <= ghFileSizeLimit) { + lastChunk.push(item); + } else { + acc.push([item]); + } + return acc; + }, + [[]] as AssetToMirrorResPatch[][], + ); + + if (pendingFileChunks.length === 1 && pendingFileChunks[0]!.length === 0) { + logger.info('Patch chunk upload skipped'); + } else { + for (const chunk of pendingFileChunks) { + const buffers: { index: number; data: Uint8Array }[] = []; + console.log(''); + chunk.forEach((e, index) => { + networkQueue.add(async () => { + const data = await ky + .get(e.url, { + headers: { 'User-Agent': appConfig.network.userAgent.minimum }, + timeout: appConfig.network.timeout, + retry: { limit: appConfig.network.retryCount }, + }) + .bytes(); + buffers.push({ index, data }); + process.stdout.write('\x1b[1A\x1b[2K'); + logger.trace( + `Downloaded Patch: ${buffers.length.toString().padStart(chunk.length.toString().length, ' ')} / ${chunk.length}, ${e.md5Old.slice(0, 8)}... -> ${e.md5New.slice(0, 8)}..., ${formatBytes(data.length)}`, + ); + }); + }); + await networkQueue.onIdle(); + buffers.sort((a, b) => a.index - b.index); + + const combinedBuffer = new Uint8Array(mathUtils.arrayTotal(buffers.map((e) => e.data.length))); + let offset = 0; + for (const item of buffers) { + combinedBuffer.set(item.data, offset); + offset += item.data.length; + } + const combinedBufferMd5 = new Bun.CryptoHasher('md5').update(combinedBuffer).digest('hex'); + const chunkFileName = `VFS_Patch_Chunk_${combinedBufferMd5}.bin`; + const tag = getSelectedTag(); + if (!tag) throw new Error('GitHub tag assets file count limit reached'); + + await githubUtils.uploadAssetWithBuffer(client, owner, repo, tag, chunkFileName, combinedBuffer); + + offset = 0; + for (const item of chunk) { + patchDb.push({ + md5Old: item.md5Old, + md5New: item.md5New, + mirror: `https://github.com/${owner}/${repo}/releases/download/${tag}/${chunkFileName}`, + chunk: { start: offset, length: item.size }, + }); + offset += item.size; + } + await Bun.write(patchDbPath, Bun.zstdCompressSync(JSON.stringify(patchDb), { level: 16 })); + } + } + + const bigFiles = validPendingDb.filter((e) => e.size >= chunkThresholdSize); + if (bigFiles.length > 0) { + logger.info('Processing big pending patches ...'); + networkQueue.concurrency = 4; + for (const file of bigFiles) { + networkQueue.add(async () => { + const buffer = await ky + .get(file.url, { + headers: { 'User-Agent': appConfig.network.userAgent.minimum }, + timeout: appConfig.network.timeout, + retry: { limit: appConfig.network.retryCount }, + }) + .bytes(); + logger.trace(`Downloaded Patch: ${file.md5Old} -> ${file.md5New}`); + const tag = getSelectedTag(); + if (!tag) throw new Error('GitHub tag assets file count limit reached'); + + const fileName = `VFS_Patch_${file.md5Old}_${file.md5New}.bin`; + await githubUtils.uploadAssetWithBuffer(client, owner, repo, tag, fileName, buffer); + patchDb.push({ + md5Old: file.md5Old, + md5New: file.md5New, + mirror: `https://github.com/${owner}/${repo}/releases/download/${tag}/${fileName}`, + chunk: null, + }); + await Bun.write(patchDbPath, Bun.zstdCompressSync(JSON.stringify(patchDb), { level: 16 })); + }); + } + await networkQueue.onIdle(); + networkQueue.concurrency = appConfig.threadCount.network; + } + } + + await Bun.write(pendingDbPath, JSON.stringify([...newPendingDb], null, 2)); +} + +async function mainCmdHandler() { + const authPath = 'config/config_auth.yaml'; + if (!(await Bun.file(authPath).exists())) { + logger.error('Config auth not found'); + return; + } + const configAuth = YAML.parse(await Bun.file(authPath).text()); + const clients = { + main: new Octokit({ auth: configAuth.github.main.token }), + relArchive: new Octokit({ auth: configAuth.github.relArchive.token }), + relArchiveRes: new Octokit({ auth: configAuth.github.relArchiveRes.token }), + }; + logger.info('Logged in to GitHub'); + + if (await githubUtils.checkIsActionRunning(clients.main, configAuth.github.main.owner, configAuth.github.main.repo)) { logger.error('Duplicate execution detected (GitHub Action is already running)'); return; } await checkMirrorFileDbStatus(); - await processMirrorQueue(); + await processMirrorQueue(configAuth, clients.relArchive); + await processMirrorResQueue(configAuth, clients.relArchiveRes); + await processMirrorResPatchQueue(configAuth, clients.relArchiveRes); - const relInfo = await githubUtils.getReleaseInfo(octoClient, githubAuthCfg); - if (relInfo) { - logger.info(`GitHub Releases total size: ${formatBytes(mathUtils.arrayTotal(relInfo.assets.map((a) => a.size)))}`); - } + // const relInfo = await githubUtils.getReleaseInfo(octoClient, githubAuthCfg); + // if (relInfo) { + // logger.info(`GitHub Releases total size: ${formatBytes(mathUtils.arrayTotal(relInfo.assets.map((a) => a.size)))}`); + // } } export default mainCmdHandler; diff --git a/src/types/api/akEndfield/Res.ts b/src/types/api/akEndfield/Res.ts new file mode 100644 index 0000000..399b5d1 --- /dev/null +++ b/src/types/api/akEndfield/Res.ts @@ -0,0 +1,33 @@ +export interface ResourceIndex { + isInitial: boolean; + files: { + index: number; + name: string; + hash: string | null; + size: number; + type: number; // C# enum? + md5: string; + urlPath: any; + manifest: number; // ??? + }[]; + types: any; // ??? + version: any; // ??? + rebootVersion: string; // ??? +} + +export interface ResourcePatch { + version: string; // 6331530-16 + files: { + name: string; // 0CE8FA57/8A8746477A4254C6069BCC7124B229A2.chk (new file) + md5: string; // 4cd56084739f5cf92540ae9bb988e90a (new file) + size: number; // 205884826 (new file) + diffType: number; // 1 + patch: { + base_file: string; // 0CE8FA57/FA0DF58E1E98B5137A6A28DA9AD04ECF.chk (old file) + base_md5: string; // 4d0cf13a06886c2d40d7dced64f01025 (old file) + base_size: number; // 205875376 (old file) + patch: string; // diff_6331530-16_5961872-11/0CE8FA57_8A8746477A4254C6069BCC7124B229A2.chk_patch + patch_size: number; // 137279 + }[]; + }[]; +} diff --git a/src/utils/github.ts b/src/utils/github.ts index 7b9975c..f4c5474 100644 --- a/src/utils/github.ts +++ b/src/utils/github.ts @@ -4,18 +4,14 @@ import appConfig from './config.js'; import logger from './logger.js'; async function uploadAsset( - client: Octokit | null, - authCfg: { - github: { - relArchive: { token: string; owner: string; repo: string; tag: string }; - main: { token: string; owner: string; repo: string }; - }; - } | null, + client: Octokit, + owner: string, + repo: string, + tag: string, url: string, targetFileName: string | null, ) { - if (!client || !authCfg) return; - const release = await getReleaseInfo(client, authCfg); + const release = await getReleaseInfo(client, owner, repo, tag); if (!release) throw new Error('GH release not found'); const releaseId = release.id; @@ -25,53 +21,87 @@ async function uploadAsset( const binSize: number = bin.byteLength; logger.info(`Mirror archive: Uploading ${new URL(url).pathname.split('/').pop()} ...`); await client.rest.repos.uploadReleaseAsset({ - owner: authCfg.github.relArchive.owner, - repo: authCfg.github.relArchive.repo, + owner, + repo, release_id: releaseId, name, data: bin as any, headers: { 'content-length': binSize }, }); + return true; } -async function getReleaseInfo( - client: Octokit | null, - authCfg: { - github: { - relArchive: { token: string; owner: string; repo: string; tag: string }; - main: { token: string; owner: string; repo: string }; - }; - } | null, +async function uploadAssetWithBuffer( + client: Octokit, + owner: string, + repo: string, + tag: string, + targetFileName: string, + buffer: Uint8Array, ) { - if (!client || !authCfg) return; - const { data: release } = await client.rest.repos.getReleaseByTag({ - owner: authCfg.github.relArchive.owner, - repo: authCfg.github.relArchive.repo, - tag: authCfg.github.relArchive.tag, + const release = await getReleaseInfo(client, owner, repo, tag); + if (!release) throw new Error('GH release not found'); + const releaseId = release.id; + + logger.info(`Mirror archive: Uploading to ${tag}, ${targetFileName} ...`); + await client.rest.repos.uploadReleaseAsset({ + owner, + repo, + release_id: releaseId, + name: targetFileName, + data: buffer as any, + headers: { 'content-length': buffer.byteLength }, }); + return true; +} + +async function getReleaseInfo(client: Octokit, owner: string, repo: string, tag: string) { + const { data: release } = await client.rest.repos.getReleaseByTag({ owner, repo, tag }); return release; } -async function checkIsActionRunning( - authCfg: { - github: { - relArchive: { token: string; owner: string; repo: string; tag: string }; - main: { token: string; owner: string; repo: string }; - }; - } | null, -): Promise { - if (!authCfg) return false; +async function checkIsActionRunning(client: Octokit, owner: string, repo: string): Promise { logger.debug('Checking GitHub Actions running status ...'); - const client = new Octokit({ auth: authCfg.github.main.token }); - const data = await client.rest.actions.listWorkflowRunsForRepo({ - owner: authCfg.github.main.owner, - repo: authCfg.github.main.repo, - }); + const data = await client.rest.actions.listWorkflowRunsForRepo({ owner, repo }); return data.data.workflow_runs.filter((e) => e.status === 'in_progress').length > 1; } +async function createNewRelease( + client: Octokit, + owner: string, + repo: string, + tag: string, + title: string, + note: string, + preRelFlag: boolean, + draftFlag: boolean = false, + targetCommitish: string = 'main', +) { + const { data } = await client.rest.repos.createRelease({ + owner, + repo, + tag_name: tag, + name: title, + body: note, + draft: draftFlag, + prerelease: preRelFlag, + target_commitish: targetCommitish, + }); + return data; +} + +async function deleteReleaseTag(client: Octokit, owner: string, repo: string, tag: string) { + const { data: release } = await client.rest.repos.getReleaseByTag({ owner, repo, tag }); + await client.rest.repos.deleteRelease({ owner, repo, release_id: release.id }); + const data = await client.rest.git.deleteRef({ owner, repo, ref: `tags/${tag}` }); + return data; +} + export default { uploadAsset, + uploadAssetWithBuffer, getReleaseInfo, checkIsActionRunning, + createNewRelease, + deleteReleaseTag, };