'use server' | |
import { NextApiRequest, NextApiResponse } from 'next' | |
import { Readable } from 'node:stream' | |
import { fetch } from '@/lib/isomorphic' | |
const API_DOMAIN = 'https://www.bing.com' | |
export default async function handler(req: NextApiRequest, res: NextApiResponse) { | |
try { | |
const { bcid } = req.query | |
const { headers, body } = await fetch(`${API_DOMAIN}/images/blob?bcid=${bcid}`, | |
{ | |
method: 'GET', | |
headers: { | |
"sec-ch-ua": "\"Not/A)Brand\";v=\"99\", \"Google Chrome\";v=\"115\", \"Chromium\";v=\"115\"", | |
"sec-ch-ua-mobile": "?0", | |
"sec-ch-ua-platform": "\"Windows\"", | |
"Referrer-Policy": "origin-when-cross-origin", | |
}, | |
}, | |
) | |
res.writeHead(200, { | |
'Content-Length': headers.get('content-length')!, | |
'Content-Type': headers.get('content-type')!, | |
}) | |
// @ts-ignore | |
return Readable.fromWeb(body!).pipe(res) | |
} catch (e) { | |
console.log('Error', e) | |
return res.json({ | |
result: { | |
value: 'UploadFailed', | |
message: `${e}` | |
} | |
}) | |
} | |
} | |