fix duplicate code
Signed-off-by: Sam Therapy <sam@samtherapy.net>
This commit is contained in:
parent
018afaf0e2
commit
87f45866d7
|
@ -1,52 +0,0 @@
|
|||
import { Request, Response, NextFunction } from "express";
|
||||
import booru from "booru";
|
||||
|
||||
/**
|
||||
* Middleware for extracting the options from a GET.
|
||||
*/
|
||||
export function ParseGet(req: Request, res: Response, next: NextFunction) {
|
||||
if (req.query.tags && typeof req.query.tags === "string") {
|
||||
res.locals.tags = req.query.tags.split(",");
|
||||
}
|
||||
res.locals.booru = (req.query.booru as string) ?? "sb";
|
||||
next();
|
||||
}
|
||||
|
||||
/**
|
||||
* Middleware for extracting the options from a POST.
|
||||
*/
|
||||
export function ParsePost(req: Request, res: Response, next: NextFunction) {
|
||||
res.locals.tags = req.body.tags;
|
||||
res.locals.booru = (req.body.booru as string) ?? "sb";
|
||||
next();
|
||||
}
|
||||
/**
|
||||
* Searches the booru for an image to return.
|
||||
* @param _req Express request (not used)
|
||||
* @param res Node Response
|
||||
*/
|
||||
export function Search(_req: Request, res: Response) {
|
||||
booru
|
||||
.search(res.locals.booru, res.locals.tags, { random: true, limit: 1 })
|
||||
.then(async (post) => {
|
||||
const imageURL = post[0]?.fileUrl as string;
|
||||
const type = imageURL.split(".").pop()?.replace("jpg", "jpeg");
|
||||
res.setHeader("content-type", `image/${type}`);
|
||||
|
||||
const img = await fetch(imageURL)
|
||||
// Turn the image into an ArrayBuffer (which is also a Promise)
|
||||
.then(async (fetchRes) => {
|
||||
return fetchRes?.arrayBuffer();
|
||||
})
|
||||
.catch((err: Error) => {
|
||||
console.error(err);
|
||||
res.status(500).json({ msg: "Wife machine broke", error: err });
|
||||
});
|
||||
|
||||
res.status(200).end(Buffer.from(img as ArrayBuffer), "binary");
|
||||
})
|
||||
.catch((err: Error) => {
|
||||
res.status(500).json({ msg: "WaaS Error", error: err });
|
||||
console.error(err);
|
||||
});
|
||||
}
|
Loading…
Reference in New Issue