new marketplace page

This commit is contained in:
2025-12-19 23:12:53 +01:00
parent 16cf6b3d4f
commit a26f03f024
7 changed files with 522 additions and 874 deletions

View File

@@ -37,24 +37,33 @@ export async function getExtensionSettings(req: ExtensionNameRequest, reply: Fas
}
export async function installExtension(req: any, reply: FastifyReply) {
const { fileName } = req.body;
const { url } = req.body;
if (!fileName || !fileName.endsWith('.js')) {
return reply.code(400).send({ error: "Invalid extension fileName provided" });
if (!url || typeof url !== 'string' || !url.endsWith('.js')) {
return reply.code(400).send({ error: "Invalid extension URL provided" });
}
try {
const fileName = url.split('/').pop();
const downloadUrl = `https://git.waifuboard.app/ItsSkaiya/WaifuBoard-Extensions/raw/branch/main/${fileName}`
if (!fileName) {
return reply.code(400).send({ error: "Could not determine file name from URL" });
}
await saveExtensionFile(fileName, downloadUrl);
await saveExtensionFile(fileName, url);
req.server.log.info(`Extension installed: ${fileName}`);
return reply.code(200).send({ success: true, message: `Extension ${fileName} installed successfully.` });
return reply.code(200).send({
success: true,
message: `Extension ${fileName} installed successfully.`,
});
} catch (error) {
req.server.log.error(`Failed to install extension ${fileName}:`, error);
return reply.code(500).send({ success: false, error: `Failed to install extension ${fileName}.` });
req.server.log.error(`Failed to install extension from ${url}:`, error);
return reply.code(500).send({
success: false,
error: "Failed to install extension.",
});
}
}