aboutsummaryrefslogtreecommitdiff
path: root/src/lib/Utility
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-04-19 16:52:28 -0700
committerFuwn <[email protected]>2024-04-19 16:52:28 -0700
commitb23ffc34407dd9e5cf7aec67c8618d329b36bca0 (patch)
tree7a5f83c61e3652b092b4db4bf9fec313047085f4 /src/lib/Utility
parentfix(badges): fix badge selection (diff)
downloaddue.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.ts22
-rw-r--r--src/lib/Utility/image.ts46
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;
+};