diff --git a/p/server.js b/p/server.js index a6686d3..d8dd59e 100644 --- a/p/server.js +++ b/p/server.js @@ -1,51 +1,48 @@ const fs = require("fs"); -const express = require('express'); -const fetch = require('node-fetch'); +const express = require("express"); +const fetch = require("node-fetch"); const htmlParser = require("node-html-parser"); const app = express(); - -app.use(express.json()) // for parsing application/json -app.use(express.urlencoded({ extended: true })) // for parsing application/x-www-form-urlencoded - let Proxy = async (req, res) => { - var url = req.originalUrl - +app.use(express.json()); // for parsing application/json +app.use(express.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded + +let Proxy = async (req, res) => { + const url = "https://" + req.originalUrl.slice(10); + let f = await fetch(url, { method: req.method, }); - if(false && f.headers.get('content-type').includes("html")){ + if (false && f.headers.get("content-type").includes("html")) { const body = await f.text(); - if(false && !htmlParser.valid(body)) { + if (false && !htmlParser.valid(body)) { console.warn(`[ERROR] Invalid HTML at ${url}`); f.body.pipe(res); return; - }; + } const root = htmlParser.parse(body); - let html = root.childNodes.filter((x) => x.tagName && x.tagName.toLowerCase() == "html")[0]; - - if(!html) { + let html = root.childNodes.filter( + (x) => x.tagName && x.tagName.toLowerCase() == "html" + )[0]; + + if (!html) { console.warn(`[ERROR] No at ${url}`); res.send(body); return; - }; - - - res.send(html.toString()); - } else { - f.body.pipe(res); - }; -}; + } + res.send(html.toString()); + } else { + f.body.pipe(res); + } +}; const listener = (req, res) => { - Proxy(req, res) + Proxy(req, res); }; - app.get("/", (req, res) => res.redirect(`/https://www.google.com/`)); -app.all('/*', listener); +app.all("/*", listener); - -app.listen(3000, () => { - }) +app.listen(3000, () => {});