diff options
| author | Fuwn <[email protected]> | 2024-04-30 17:21:43 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-04-30 17:21:43 -0700 |
| commit | a16e30cac58086da50259aeefcfbe78211ea5dd2 (patch) | |
| tree | 41b9f0624c4c21fb3dd1195b54484f93b439fd7a /src/lib/User | |
| parent | feat(BadgePreview): simple source name (diff) | |
| download | due.moe-a16e30cac58086da50259aeefcfbe78211ea5dd2.tar.xz due.moe-a16e30cac58086da50259aeefcfbe78211ea5dd2.zip | |
feat(BadgePreview): simple designer link
Diffstat (limited to 'src/lib/User')
| -rw-r--r-- | src/lib/User/BadgeWall/BadgePreview.svelte | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src/lib/User/BadgeWall/BadgePreview.svelte b/src/lib/User/BadgeWall/BadgePreview.svelte index 4c374a27..fba6e2e5 100644 --- a/src/lib/User/BadgeWall/BadgePreview.svelte +++ b/src/lib/User/BadgeWall/BadgePreview.svelte @@ -61,7 +61,6 @@ }; }); - // generate a tag for the source const classifySource = (source: string) => { let name = source; const sourceLower = source.toLowerCase(); @@ -78,6 +77,24 @@ return `<a href="${source}" target="_blank">${name}</a>`; }; + + const classifyDesigner = (designer: string) => { + let name = designer; + let userLink = designer; + const designerLower = designer.toLowerCase(); + const anilistUser = designer.match(/https?:\/\/anilist\.co\/user\/([^/]+)\/?/); + + if (anilistUser) { + name = anilistUser[1]; + } else if (designerLower.startsWith('@')) { + name = designer.replace('@', ''); + userLink = `https://anilist.co/user/${name}/`; + } else if (!designerLower.startsWith('http')) { + userLink = `https://anilist.co/user/${name}/`; + } + + return `<a href="${userLink}" target="_blank">@${name}</a>`; + }; </script> {#if selectedBadge} @@ -120,7 +137,7 @@ {#if selectedBadge.designer} <b>Designer:</b> - {#if selectedBadge.designer.startsWith('http')} + <!-- {#if selectedBadge.designer.startsWith('http')} <a href={selectedBadge.designer} target="_blank"> {selectedBadge.designer} </a> @@ -130,7 +147,8 @@ </a> {:else} {selectedBadge.designer} - {/if} + {/if} --> + {@html classifyDesigner(selectedBadge.designer)} <br /> {/if} |