| import express from "express"; |
| import fetch from "node-fetch"; |
|
|
| const router = express.Router(); |
|
|
| |
| router.get("/img", async (req, res) => { |
| try { |
| const u = req.query.u; |
| if (!u) return res.status(400).send("missing url"); |
| const url = decodeURIComponent(u); |
| if (!/^https?:\/\//i.test(url)) return res.status(400).send("bad url"); |
|
|
| const r = await fetch(url, { |
| headers: { "User-Agent": "Mozilla/5.0", Accept: "image/*" }, |
| }); |
| if (!r.ok) return res.status(502).send("fetch failed"); |
|
|
| const type = r.headers.get("content-type") || "image/jpeg"; |
| res.setHeader("Content-Type", type); |
| res.setHeader("Cache-Control", "public, max-age=86400"); |
| res.setHeader("Access-Control-Allow-Origin", "*"); |
| const buf = Buffer.from(await r.arrayBuffer()); |
| res.send(buf); |
| } catch (err) { |
| console.error("img proxy error:", err); |
| res.status(500).send("proxy error"); |
| } |
| }); |
|
|
| export default router; |
|
|