diff --git a/src/lib/types/ocGenerator.ts b/src/lib/types/ocGenerator.ts deleted file mode 100644 index dab0b111..00000000 --- a/src/lib/types/ocGenerator.ts +++ /dev/null @@ -1,7 +0,0 @@ -export interface Generator { - name: string; - data: string; - uploaded_by: number; - uploaded_date: string; - verified: string; -} diff --git a/src/routes/games/allGames.ts b/src/routes/games/allGames.ts index e93815f5..2d293e71 100644 --- a/src/routes/games/allGames.ts +++ b/src/routes/games/allGames.ts @@ -23,11 +23,13 @@ export const allGames = async ( name: result.name, id: result.id, assetCategories: await listBucket(env.bucket, { - prefix: `${result.name}/`, + prefix: `assets/${result.name}/`, delimiter: "/", }).then((data) => data.delimitedPrefixes.map((prefix) => - prefix.replace(`${result.name}/`, "").replace("/", "") + prefix + .replace(`assets/${result.name}/`, "") + .replace("/", "") ) ), })) diff --git a/src/routes/oc-generators/getGenerator.ts b/src/routes/oc-generators/getGenerator.ts index 87976538..b1c8c0e4 100644 --- a/src/routes/oc-generators/getGenerator.ts +++ b/src/routes/oc-generators/getGenerator.ts @@ -1,5 +1,6 @@ import { responseHeaders } from "@/lib/responseHeaders"; -import type { Generator } from "@/lib/types/ocGenerator"; +import { listBucket } from "@/lib/listBucket"; +import { createNotFoundResponse } from "@/lib/helpers/responses/notFoundResponse"; export const getGenerator = async ( request: Request, @@ -14,44 +15,33 @@ export const getGenerator = async ( if (response) return response; - const row: D1Result = await env.database - .prepare(`SELECT * FROM ocGenerators WHERE name = ?`) - .bind(gameId) - .run(); - - if (!row.results.length) { - return new Response( - JSON.stringify({ - success: false, - status: "error", - error: "404 Not Found", - }), - { - headers: responseHeaders, - } - ); - } - - const results = row.results.map((result) => ({ - name: result.name, - data: JSON.parse(result.data), - uploaded_by: result.uploaded_by, - uploaded_date: result.uploaded_date, - verified: result.verified, - })); + const files = await listBucket(env.bucket, { + prefix: `oc-generators/${gameId}/list.json`, + }); + + if (files.objects.length === 0) + return createNotFoundResponse("Generator not found", responseHeaders); + + const data = await fetch( + `https://files.wanderer.moe/${files.objects[0].key}` + ); + + const generatorData = await data.json(); response = new Response( JSON.stringify({ success: true, status: "ok", - results: results, + uploaded: files.objects[0].uploaded, + key: files.objects[0].key, + data: generatorData, }), { headers: responseHeaders, } ); - response.headers.set("Cache-Control", "s-maxage=604800"); + response.headers.set("Cache-Control", "s-maxage=604800"); // the content of this file is unlikely to change, so caching is fine await cache.put(cacheKey, response.clone()); return response; diff --git a/src/routes/oc-generators/getGenerators.ts b/src/routes/oc-generators/getGenerators.ts index 03697044..63048f79 100644 --- a/src/routes/oc-generators/getGenerators.ts +++ b/src/routes/oc-generators/getGenerators.ts @@ -1,5 +1,5 @@ import { responseHeaders } from "@/lib/responseHeaders"; -import type { Generator } from "@/lib/types/ocGenerator"; +import { listBucket } from "@/lib/listBucket"; export const getGenerators = async ( request: Request, @@ -13,17 +13,21 @@ export const getGenerators = async ( if (response) return response; - const row: D1Result = await env.database - .prepare(`SELECT * FROM ocGenerators`) - .run(); - - const results = row.results.map((result) => ({ - name: result.name, - path: `/oc-generator/${result.name}`, - uploaded_by: result.uploaded_by, - uploaded_date: result.uploaded_date, - verified: result.verified, - })); + const files = await listBucket(env.bucket, { + prefix: "oc-generators/", + delimiter: "/", + }); + + // console.log(files); + + const results = files.delimitedPrefixes.map((file) => { + return { + name: file.replace("oc-generators/", "").replace("/", ""), + path: `/oc-generators/${file + .replace("oc-generators/", "") + .replace("/", "")}`, + }; + }); response = new Response( JSON.stringify({ diff --git a/wrangler.toml b/wrangler.toml index f2203c84..1ddc058c 100644 --- a/wrangler.toml +++ b/wrangler.toml @@ -7,8 +7,8 @@ workers_dev = true [[r2_buckets]] binding = 'bucket' -bucket_name = 'wanderer-moe' -preview_bucket_name = 'wanderer-moe' +bucket_name = 'files' +preview_bucket_name = 'files' [[d1_databases]] binding = 'database'