diff --git a/index.js b/index.js index 2abbe35..b653d02 100644 --- a/index.js +++ b/index.js @@ -135,12 +135,42 @@ app.use((req, res, next) => { }); app.use("/custom-favicon", async (req, res) => { try { - const { url } = req.query; - const response = await fetch(url).then((apiRes) => apiRes.buffer()); - res.send(response); + const { url, contentType } = req.query; + const urlExt = url.split('.').pop(); + const response = await fetch(url); + const arrayBuffer = await response.arrayBuffer(); + const buffer = Buffer.from(arrayBuffer); + console.log(contentType) + if (contentType || !contentType == "") { + res.setHeader("Content-Type", contentType); + } else { + switch (urlExt) { + case "png": + res.setHeader("Content-Type", "image/png"); + break; + case "jpg": + res.setHeader("Content-Type", "image/jpeg"); + break; + case "jpeg": + res.setHeader("Content-Type", "image/jpeg"); + break; + case "gif": + res.setHeader("Content-Type", "image/gif"); + break; + case "svg": + res.setHeader("Content-Type", "image/svg+xml"); + break; + case "ico": + res.setHeader("Content-Type", "image/x-icon"); + break; + default: + res.setHeader("Content-Type", "image/png"); + break; + } + } + res.send(buffer); } catch (err) { - console.log(err); - res.send("Error"); + res.send(`Error: ${err}`); } }); app.use("/", express.static("dist/client/")); diff --git a/package-lock.json b/package-lock.json index 2863f93..3378b70 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,11 +10,10 @@ "dependencies": { "@astrojs/node": "^8.2.5", "@astrojs/sitemap": "^3.1.2", - "@mercuryworkshop/bare-mux": "^1.0.5", + "@mercuryworkshop/bare-mux": "^1.0.7", "@mercuryworkshop/epoxy-transport": "^1.1.0", "@mercuryworkshop/libcurl-transport": "^1.3.1", "@titaniumnetwork-dev/ultraviolet": "^3.0.0", - "@tomphttp/bare-client": "^2.2.0-alpha", "@tomphttp/bare-server-node": "^2.0.3", "astro": "^4.4.1", "chalk": "^5.3.0", @@ -23,6 +22,7 @@ "dotenv": "^16.3.1", "express": "^4.18.2", "node-fetch": "^3.3.2", + "notyf": "^3.10.0", "rammerhead": "https://github.com/NebulaServices/rammerhead/releases/download/rammerhead-1.2.41-nebula.8/rammerhead-1.2.41-nebula.7.tgz", "wisp-server-node": "^1.0.2" }, @@ -1115,9 +1115,9 @@ "integrity": "sha512-ojkXjR3K0Zz3jnCR80tqPL+0yvbZk/lEodb6RIVjLz7W8RVA2wrw8ym/CzCpXO9SYVUIKHFUpc7jvf8UKfIM3w==" }, "node_modules/@mercuryworkshop/bare-mux": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@mercuryworkshop/bare-mux/-/bare-mux-1.0.5.tgz", - "integrity": "sha512-5czcsWISUCrN49diTuF/8WXZUCyoWHn90Ea+gLhVWKGUTyJzPAG5gTVZ77rMcQYewSuSDA1WVPaF0n79ciL5Gg==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@mercuryworkshop/bare-mux/-/bare-mux-1.0.7.tgz", + "integrity": "sha512-VUJvfLxlzpyCuKoGfaI+sUpHEK4tvmvpYvkalU2z604+O9UahfZoc53arO9pm9F3Fnv7ZNloSWMnvSlPAznkoA==", "dependencies": { "@types/uuid": "^9.0.8", "uuid": "^9.0.1" @@ -1555,11 +1555,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/@tomphttp/bare-client": { - "version": "2.2.0-alpha", - "resolved": "https://registry.npmjs.org/@tomphttp/bare-client/-/bare-client-2.2.0-alpha.tgz", - "integrity": "sha512-xhcflOpwr92tkpp8SoDhB3nK3LHMBIjx+vgow37XobQew2k0/mXSxmaU7BsDFpOIa1CcLCEsR8gWn0v7Cy9+7Q==" - }, "node_modules/@tomphttp/bare-server-node": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@tomphttp/bare-server-node/-/bare-server-node-2.0.3.tgz", @@ -6799,6 +6794,11 @@ "node": ">=0.10.0" } }, + "node_modules/notyf": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/notyf/-/notyf-3.10.0.tgz", + "integrity": "sha512-Mtnp+0qiZxgrH+TzVlzhWyZceHdAZ/UWK0/ju9U0HQeDpap1mZ8cC7H5wSI5mwgni6yeAjaxsTw0sbMK+aSuHw==" + }, "node_modules/npm-run-path": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz", diff --git a/package.json b/package.json index faad729..6189a97 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "dotenv": "^16.3.1", "express": "^4.18.2", "node-fetch": "^3.3.2", + "notyf": "^3.10.0", "rammerhead": "https://github.com/NebulaServices/rammerhead/releases/download/rammerhead-1.2.41-nebula.8/rammerhead-1.2.41-nebula.7.tgz", "wisp-server-node": "^1.0.2" }, diff --git a/src/components/ProxyRegistrar.astro b/src/components/ProxyRegistrar.astro index cec74f7..b15d2a9 100644 --- a/src/components/ProxyRegistrar.astro +++ b/src/components/ProxyRegistrar.astro @@ -1,5 +1,8 @@