Franek-Le commited on
Commit
9ad973a
·
1 Parent(s): 222e54f
Files changed (1) hide show
  1. src/mods/mods.ts +36 -34
src/mods/mods.ts CHANGED
@@ -11,7 +11,7 @@ export class ModManager {
11
  private bucketId = "buckets/NSMP/NSMP-Server-Storage";
12
  private bucketFolder = "";
13
 
14
- constructor(server: Server) {
15
  this.server = server;
16
  }
17
 
@@ -22,38 +22,37 @@ export class ModManager {
22
  res.send(JSON.stringify(mods));
23
  });
24
 
25
- if (mods.length > 0) {
26
- for (const mod of mods) {
27
- this.server.get("/files/mods/:filename", async (req, res) => {
28
- try {
29
- const filename = req.params.filename;
30
-
31
- const remotePath = `${this.bucketFolder}/${filename}`;
32
- const blob = await downloadFile({
33
- repo: this.bucketId,
34
- path: remotePath,
35
- accessToken: process.env.HF_TOKEN
36
- });
37
-
38
- if (!blob) {
39
- res.status(404).send("Mod not found");
40
- return;
41
- }
42
-
43
- const buffer = Buffer.from(await blob.arrayBuffer());
44
-
45
- res.setHeader(
46
- "Content-Disposition",
47
- `attachment; filename="${filename}"`
48
- );
49
- res.setHeader("Content-Type", "application/java-archive");
50
- res.send(buffer);
51
- } catch (err) {
52
- res.status(500).send("Failed to fetch mod from bucket");
53
  }
54
- });
 
 
 
 
 
 
 
 
 
 
 
 
55
  }
56
- }
57
  }
58
 
59
  private async getModList(): Promise<Mod[]> {
@@ -83,17 +82,20 @@ export class ModManager {
83
 
84
  const jarBuffer = Buffer.from(await jarBlob.arrayBuffer());
85
  const metadataContent = Buffer.from(await metadataBlob.arrayBuffer()).toString("utf-8");
 
86
  const metadata = JSON.parse(metadataContent) as ModMetadata;
87
  const hash = sha256(jarBuffer);
88
 
 
 
89
  mods.push({
90
  name: metadata.name,
91
- filename: path.basename(jarPath),
92
  sha256: hash,
93
- url: `https://NSMP-NSMP-Server.hf.space/files/mods/${path.basename(jarPath)}`,
94
  });
95
  }
96
 
97
  return mods;
98
  }
99
- }
 
11
  private bucketId = "buckets/NSMP/NSMP-Server-Storage";
12
  private bucketFolder = "";
13
 
14
+ constructor(server: Server) {
15
  this.server = server;
16
  }
17
 
 
22
  res.send(JSON.stringify(mods));
23
  });
24
 
25
+ this.server.get("/files/mods/:filename(*)", async (req, res) => {
26
+ try {
27
+ const filename = req.params.filename;
28
+
29
+ const remotePath = `${this.bucketFolder}/${filename}`;
30
+
31
+ const blob = await downloadFile({
32
+ repo: this.bucketId,
33
+ path: remotePath,
34
+ accessToken: process.env.HF_TOKEN
35
+ });
36
+
37
+ if (!blob) {
38
+ res.status(404).send("Mod not found");
39
+ return;
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  }
41
+
42
+ const buffer = Buffer.from(await blob.arrayBuffer());
43
+
44
+ res.setHeader(
45
+ "Content-Disposition",
46
+ `attachment; filename="${filename}"`
47
+ );
48
+ res.setHeader("Content-Type", "application/java-archive");
49
+
50
+ res.send(buffer);
51
+ } catch (err) {
52
+ console.error(err);
53
+ res.status(500).send("Failed to fetch mod from bucket");
54
  }
55
+ });
56
  }
57
 
58
  private async getModList(): Promise<Mod[]> {
 
82
 
83
  const jarBuffer = Buffer.from(await jarBlob.arrayBuffer());
84
  const metadataContent = Buffer.from(await metadataBlob.arrayBuffer()).toString("utf-8");
85
+
86
  const metadata = JSON.parse(metadataContent) as ModMetadata;
87
  const hash = sha256(jarBuffer);
88
 
89
+ const filename = path.basename(jarPath);
90
+
91
  mods.push({
92
  name: metadata.name,
93
+ filename,
94
  sha256: hash,
95
+ url: `https://NSMP-NSMP-Server.hf.space/files/mods/${encodeURIComponent(filename)}`,
96
  });
97
  }
98
 
99
  return mods;
100
  }
101
+ }