PluralKit/dashboard/src/api/resize-media.ts
pulchra mentis adaddb579e
Implement media resizing using Discord media cache (#470)
* Implement media resizing using Discord media cache
Improve performance by offloading image scaling to Discord
Only apply the resizing to images stored in the Discord CDN
Set the format of the resized images to WebP for improved performance

* Implemented suggestion for improved regex
2022-08-17 21:50:36 +02:00

19 lines
454 B
TypeScript

const discordCDNAttachmentRegex =
/^https:\/\/cdn\.discordapp\.com\/attachments\/([^?]+)/i
const resizeMedia = (
mediaURL: string,
dimensions?: number[],
format?: string,
) =>
mediaURL.replace(
discordCDNAttachmentRegex,
`https://media.discordapp.net/attachments/$1?width=${
dimensions?.[0] ?? 256
}&height=${dimensions?.[1] ?? dimensions?.[0] ?? 256}&format=${
format ?? 'webp'
}`,
)
export default resizeMedia