| '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}` | |
| } | |
| }) | |
| } | |
| } | |