From 31fcf3e18911f55acd43cfc28f3bde368f20a255 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Thu, 7 Dec 2023 03:15:28 -0800 Subject: feat(media): outbound links option --- src/lib/Media/media.ts | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/lib/Media/media.ts (limited to 'src/lib/Media/media.ts') diff --git a/src/lib/Media/media.ts b/src/lib/Media/media.ts new file mode 100644 index 00000000..a98d5d07 --- /dev/null +++ b/src/lib/Media/media.ts @@ -0,0 +1,42 @@ +import type { Media } from '$lib/AniList/media'; + +export const outboundLink = ( + media: Media, + type: 'anime' | 'manga', + setting: 'anilist' | 'livechartme' | 'animeschedule' | 'myanimelist' +) => { + if (type === 'manga') { + switch (setting) { + case 'livechartme': + case 'animeschedule': + return `https://anilist.co/${type}/${media.id}`; + case 'myanimelist': + return `https://myanimelist.net/search/all?q=${ + media.title.native || media.title.english || media.title.romaji + }`; + default: + return `https://anilist.co/${type}/${media.id}`; + } + } else { + switch (setting) { + case 'anilist': + return `https://anilist.co/${type}/${media.id}`; + case 'livechartme': + return `https://www.livechart.me/search?q=${( + media.title.native || + media.title.english || + media.title.romaji + ).replace(/ /g, '+')}`; + case 'animeschedule': + return `https://animeschedule.net/shows?q=${( + media.title.native || + media.title.english || + media.title.romaji + ).replace(/ /g, '+')}`; + case 'myanimelist': + return `https://myanimelist.net/search/all?q=${ + media.title.native || media.title.english || media.title.romaji + }`; + } + } +}; -- cgit v1.2.3