diff options
| author | Fuwn <[email protected]> | 2024-04-19 16:52:28 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-04-19 16:52:28 -0700 |
| commit | b23ffc34407dd9e5cf7aec67c8618d329b36bca0 (patch) | |
| tree | 7a5f83c61e3652b092b4db4bf9fec313047085f4 /src/lib/Utility | |
| parent | fix(badges): fix badge selection (diff) | |
| download | due.moe-b23ffc34407dd9e5cf7aec67c8618d329b36bca0.tar.xz due.moe-b23ffc34407dd9e5cf7aec67c8618d329b36bca0.zip | |
refactor(image): move cdn to image
Diffstat (limited to 'src/lib/Utility')
| -rw-r--r-- | src/lib/Utility/cdn.ts | 22 | ||||
| -rw-r--r-- | src/lib/Utility/image.ts | 46 |
2 files changed, 46 insertions, 22 deletions
diff --git a/src/lib/Utility/cdn.ts b/src/lib/Utility/cdn.ts deleted file mode 100644 index e7d08d38..00000000 --- a/src/lib/Utility/cdn.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { env } from '$env/dynamic/public'; - -export const cdn = (urlString: string | undefined) => - !urlString || - !['http', 'https'].some((protocol) => urlString.startsWith(protocol)) || - env.PUBLIC_ANILIST_REDIRECT_URI?.includes('localhost') || - [ - 'api.telegram.org', - 'telegra.ph', - 't.me', - 'discord.com', - 'cdn.discordapp.com', - 'media.discordapp.net', - 'images-ext-1.discordapp.net', - 'images-ext-2.discordapp.net', - 'media.trace.moe', - 'files.catbox.moe' - ].includes(new URL(urlString).hostname) - ? urlString - : `https://cdn.due.moe?url=${encodeURIComponent(urlString)}`; - -export default cdn; diff --git a/src/lib/Utility/image.ts b/src/lib/Utility/image.ts new file mode 100644 index 00000000..94f0859c --- /dev/null +++ b/src/lib/Utility/image.ts @@ -0,0 +1,46 @@ +import { env } from '$env/dynamic/public'; + +export const cdn = (urlString: string | undefined) => + !urlString || + !['http', 'https'].some((protocol) => urlString.startsWith(protocol)) || + env.PUBLIC_ANILIST_REDIRECT_URI?.includes('localhost') || + [ + 'api.telegram.org', + 'telegra.ph', + 't.me', + 'discord.com', + 'cdn.discordapp.com', + 'media.discordapp.net', + 'images-ext-1.discordapp.net', + 'images-ext-2.discordapp.net', + 'media.trace.moe', + 'files.catbox.moe' + ].includes(new URL(urlString).hostname) + ? urlString + : `https://cdn.due.moe?url=${encodeURIComponent(urlString)}`; + +export const thumbnail = (url: string | undefined) => { + const width = 144; + const height = 200; + + if (url && url.includes('catbox.moe') && !url.includes('gif')) + return url.replace('catbox.moe/', 'catbox.moe/thumbs/t_'); + + if (url && url.includes('imgur') && !url.includes('gif')) + return (!url.includes('i.imgur.com') ? url.replace('imgur.com', 'i.imgur.com') : url).replace( + /(\.\w+)$/, + `_d.webp?maxwidth=${width}&shape=thumb&fidelity=high` + ); + + if (url && url.includes('discordapp')) { + const match = url.match(/attachments\/(\d+)\/(\d+)\/(.+)/); + + if (match) { + const [_, server, id, file] = match; + + return `https://media.discordapp.net/attachments/${server}/${id}/${file}?width=${width}&height=${height}`; + } + } + + return url; +}; |