diff options
| author | Fuwn <[email protected]> | 2023-12-20 02:37:50 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2023-12-20 02:37:50 -0800 |
| commit | 33cd7975e0ca8671297944d4c5bab835df5118bb (patch) | |
| tree | b4044ca2d3e955ed118e847e8256b9da4efb7025 /src/lib | |
| parent | feat(schedule): match media to anilist (diff) | |
| download | due.moe-33cd7975e0ca8671297944d4c5bab835df5118bb.tar.xz due.moe-33cd7975e0ca8671297944d4c5bab835df5118bb.zip | |
feat(schedule): respect outbound links
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/Media/links.ts | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/lib/Media/links.ts b/src/lib/Media/links.ts index 4385d348..1e65f82f 100644 --- a/src/lib/Media/links.ts +++ b/src/lib/Media/links.ts @@ -1,10 +1,14 @@ import type { Media } from '$lib/AniList/media'; export const outboundLink = ( - media: Media, + media: Media | null, type: 'anime' | 'manga', - setting: 'anilist' | 'livechartme' | 'animeschedule' | 'myanimelist' + setting: 'anilist' | 'livechartme' | 'animeschedule' | 'myanimelist', + search = false, + title: string | null = null ) => { + media = media as Media; + if (type === 'manga') switch (setting) { case 'livechartme': @@ -22,24 +26,31 @@ export const outboundLink = ( else switch (setting) { case 'anilist': - return `https://anilist.co/${type}/${media.id}`; + return search + ? `https://anilist.co/search?search=${encodeURIComponent(title || '')}` + : `https://anilist.co/${type}/${media.id}`; case 'livechartme': return `https://www.livechart.me/search?q=${( + title || media.title.native || media.title.english || media.title.romaji ).replace(/ /g, '+')}`; case 'animeschedule': return `https://animeschedule.net/shows?q=${( + title || media.title.native || media.title.english || media.title.romaji ).replace(/ /g, '+')}`; - case 'myanimelist': - return media.idMal + case 'myanimelist': { + return search + ? `https://myanimelist.net/anime.php?q=${title}&cat=anime` + : media.idMal ? `https://myanimelist.net/anime/${media.idMal}` : `https://myanimelist.net/anime.php?q=${ media.title.native || media.title.english || media.title.romaji }&cat=anime`; + } } }; |