mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-23 19:49:50 +02:00
feat: vfs file
This commit is contained in:
1 parent
5de40b220f
commit
f70864a0db
1 file changed
+24
-3
@@ -1,4 +1,3 @@
|
|||||||
import { writeFile } from "fs/promises";
|
|
||||||
import SteamUser, { EConnectionProtocol } from "steam-user";
|
import SteamUser, { EConnectionProtocol } from "steam-user";
|
||||||
|
|
||||||
interface SteamManifestFile {
|
interface SteamManifestFile {
|
||||||
@@ -52,12 +51,14 @@ export class SteamVFS {
|
|||||||
|
|
||||||
const productInfo = await this.steam.getProductInfo([this.app], []);
|
const productInfo = await this.steam.getProductInfo([this.app], []);
|
||||||
const manifest: SteamManifest = await new Promise((resolve) => {
|
const manifest: SteamManifest = await new Promise((resolve) => {
|
||||||
|
// @ts-expect-error
|
||||||
this.steam.getManifest(
|
this.steam.getManifest(
|
||||||
this.app,
|
this.app,
|
||||||
this.depot,
|
this.depot,
|
||||||
productInfo.apps[this.app].appinfo.depots[this.depot].manifests.public
|
productInfo.apps[this.app].appinfo.depots[this.depot].manifests.public
|
||||||
.gid,
|
.gid,
|
||||||
"public",
|
"public",
|
||||||
|
// @ts-expect-error
|
||||||
(_, response) => {
|
(_, response) => {
|
||||||
resolve(response);
|
resolve(response);
|
||||||
}
|
}
|
||||||
@@ -71,8 +72,28 @@ export class SteamVFS {
|
|||||||
this.manifest.set(path, file);
|
this.manifest.set(path, file);
|
||||||
}
|
}
|
||||||
|
|
||||||
writeFile("test.txt", paths.sort().join("\n"));
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
console.log(JSON.stringify(manifest.files[0], null, 2));
|
async file(path: string) {
|
||||||
|
if (!this.manifest.has(path)) {
|
||||||
|
throw new Error(`File not found: ${path}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
const fileManifest = this.manifest.get(path)!;
|
||||||
|
|
||||||
|
const downloaded: { type: "complete"; file: Buffer } =
|
||||||
|
// @ts-expect-error
|
||||||
|
await this.steam.downloadFile(this.app, this.depot, fileManifest);
|
||||||
|
|
||||||
|
return new Uint8Array(downloaded.file);
|
||||||
|
}
|
||||||
|
|
||||||
|
dispose() {
|
||||||
|
this.steam.logOff();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Symbol.dispose]() {
|
||||||
|
this.dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user