aboutsummaryrefslogtreecommitdiff
path: root/src/lib/Utility
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-01-22 10:03:16 -0800
committerFuwn <[email protected]>2024-01-22 10:03:16 -0800
commit1df50d1713cfc63ae06961c27c84009facabe620 (patch)
treeef0c3717398f9f6c509ba965f363570d3c8c7520 /src/lib/Utility
parentfeat(badges): clear no badge warning (diff)
downloaddue.moe-1df50d1713cfc63ae06961c27c84009facabe620.tar.xz
due.moe-1df50d1713cfc63ae06961c27c84009facabe620.zip
feat(badges): image cdn
Diffstat (limited to 'src/lib/Utility')
-rw-r--r--src/lib/Utility/cdn.ts26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/lib/Utility/cdn.ts b/src/lib/Utility/cdn.ts
new file mode 100644
index 00000000..bfb5a558
--- /dev/null
+++ b/src/lib/Utility/cdn.ts
@@ -0,0 +1,26 @@
+import { env } from '$env/dynamic/public';
+
+export const cdn = (urlString: string | undefined, disable = false) => {
+ if (!urlString || !['http', 'https'].some((protocol) => urlString.startsWith(protocol)))
+ return urlString;
+
+ const url = new URL(urlString);
+
+ return env.PUBLIC_ANILIST_REDIRECT_URI?.includes('localhost') ||
+ disable ||
+ [
+ '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'
+ ].includes(url.hostname)
+ ? urlString
+ : `https://cdn.due.moe?url=${encodeURIComponent(urlString)}`;
+};
+
+export default cdn;