diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/Utility/cdn.ts | 26 | ||||
| -rw-r--r-- | src/routes/user/[user]/badges/+page.svelte | 11 |
2 files changed, 32 insertions, 5 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; diff --git a/src/routes/user/[user]/badges/+page.svelte b/src/routes/user/[user]/badges/+page.svelte index 53483a65..0b7738e1 100644 --- a/src/routes/user/[user]/badges/+page.svelte +++ b/src/routes/user/[user]/badges/+page.svelte @@ -11,6 +11,7 @@ import root from '$lib/Utility/root.js'; import tooltip from '$lib/Tooltip/tooltip.js'; import proxy from '$lib/Utility/proxy.js'; + import cdn from '$lib/Utility/cdn.js'; // import { io } from 'socket.io-client'; export let data; @@ -109,7 +110,7 @@ link: '#', description: badge.alt, image: badge.src.includes('placeholder') - ? proxy('https://awc.moe/static/images/badge-placeholder.png') + ? cdn('https://awc.moe/static/images/badge-placeholder.png') : badge.src }; }) @@ -126,7 +127,7 @@ link: badge.href, description: image.alt, image: image.src.includes('placeholder') - ? proxy('https://awc.moe/static/images/badge-placeholder.png') + ? cdn('https://awc.moe/static/images/badge-placeholder.png') : image.src }; }) @@ -317,7 +318,7 @@ title={badge.description} use:tooltip > - <img src={badge.image} alt={badge.description} loading="lazy" /> + <img src={cdn(badge.image)} alt={badge.description} loading="lazy" /> </a> {/each} </div> @@ -464,7 +465,7 @@ }${badge.description ? `\n${badge.description}` : ''}`} use:tooltip > - <img src={badge.image} alt={badge.description} loading="lazy" /> + <img src={cdn(badge.image)} alt={badge.description} loading="lazy" /> </a> {:else} <a @@ -476,7 +477,7 @@ }${badge.description ? `\n${badge.description}` : ''}`} use:tooltip > - <img src={badge.image} alt={badge.description} loading="lazy" /> + <img src={cdn(badge.image)} alt={badge.description} loading="lazy" /> </a> {/if} {/each} |