From 14bacb3e133759b346c09fbbc988dcfbe4d2cf06 Mon Sep 17 00:00:00 2001 From: ElnuDev Date: Wed, 17 Aug 2022 22:32:29 -0700 Subject: [PATCH] Add random and image routes --- index.js | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/index.js b/index.js index 4dabb03..a94ccd9 100644 --- a/index.js +++ b/index.js @@ -4,9 +4,8 @@ app.use(require("cors")()); const fetch = require("node-fetch"); const jsdom = require("jsdom"); -app.get("/", (request, response) => { - response.writeHead(200, { "Content-Type": "application/json" }); - fetch("https://www.bing.com/images/search?q=" + request.url.substring(request.url.indexOf("?") + 1)) +async function getResults(query) { + return await fetch("https://www.bing.com/images/search?q=" + query) .then(response => response.text()) .then(text => new jsdom.JSDOM(text).window.document) .then(document => { @@ -19,9 +18,28 @@ app.get("/", (request, response) => { } results.push(src); } - response.write(JSON.stringify(results)); - response.end(); + return results; }); +} + +app.get("/random/:query*.jpg", (request, response) => { + getResults(request.params.query).then(results => { + response.redirect(results[Math.floor(Math.random() * results.length)]); + }); +}); + +app.get("/:query*.jpg", (request, response) => { + getResults(request.params.query).then(results => { + response.redirect(results[0]); + }); +}); + +app.get("/:query", (request, response) => { + response.writeHead(200, { "Content-Type": "application/json" }); + getResults(request.params.query).then(results => { + response.write(JSON.stringify(results)); + response.end(); + }); }); app.listen(process.argv[2] ? process.argv[2] : 3000);