diff --git a/pages/api/image/discord/avatars/[id].ts b/pages/api/image/discord/avatars/[id].ts index 0e58a16..979eae6 100644 --- a/pages/api/image/discord/avatars/[id].ts +++ b/pages/api/image/discord/avatars/[id].ts @@ -11,14 +11,14 @@ const Avatar = nc() .get(async(req, res) => { res.setHeader('Access-Control-Allow-Origin', process.env.KOREANBOTS_URL) const { imageRateLimit } = await import('@utils/Query') - const { id: param, size=256 } = req.query + const { id: param, size='256' } = req.query const rate = ratelimit.image(req.socket.remoteAddress) // eslint-disable-next-line @typescript-eslint/no-explicit-any const ratelimited = RateLimitHandler(res, { used: rate, limit: 600, reset: (imageRateLimit).scheduler.get(req.socket.remoteAddress).expiry, onLimitExceed: async(res) => { const img = await get.images.user.load(DiscordEnpoints.CDN.default(Math.floor(Math.random() * 6), { format: 'png' })) res.setHeader('Content-Type', 'image/png') res.setHeader('Cache-Control', 'no-cache') - img.pipe(res as unknown as NodeJS.WritableStream) + res.send(img) } }) if(ratelimited) return const splitted = param.split('.') @@ -42,7 +42,7 @@ const Avatar = nc() res.setHeader('Content-Type', `image/${ext}`) res.setHeader('Cache-Control', 'public, max-age=86400') - img.pipe(res as unknown as NodeJS.WritableStream) + res.send(img) }) diff --git a/utils/Query.ts b/utils/Query.ts index 0f30d50..040e4f1 100644 --- a/utils/Query.ts +++ b/utils/Query.ts @@ -49,6 +49,7 @@ async function getBot(id: string, owners=true):Promise { if(!discordBot) return null res[0].flags = res[0].flags | (discordBot.flags && DiscordUserFlags.VERIFIED_BOT ? BotFlags.verifed : 0) | (res[0].trusted ? BotFlags.trusted : 0) res[0].tag = discordBot.discriminator + res[0].avatar = discordBot.avatar res[0].name = discordBot.username res[0].category = JSON.parse(res[0].category) res[0].owners = JSON.parse(res[0].owners) @@ -216,11 +217,10 @@ async function submitBot(id: string, data: AddBotSubmit):Promise { +async function getImage(url: string) { const res = await fetch(url) if(!res.ok) return null - const cache = new StreamCache() - return res.body.pipe(cache) + return await res.buffer() } async function getDiscordUser(id: string):Promise {