diff options
Diffstat (limited to 'src/lib/Media/links.ts')
| -rw-r--r-- | src/lib/Media/links.ts | 98 |
1 files changed, 52 insertions, 46 deletions
diff --git a/src/lib/Media/links.ts b/src/lib/Media/links.ts index 209afb28..bc9dde5b 100644 --- a/src/lib/Media/links.ts +++ b/src/lib/Media/links.ts @@ -1,51 +1,57 @@ -import type { Media } from '$lib/Data/AniList/media'; -import type { PrequelRelationNode } from '$lib/Data/AniList/prequels'; +import type { Media } from "$lib/Data/AniList/media"; +import type { PrequelRelationNode } from "$lib/Data/AniList/prequels"; export const outboundLink = ( - media: Media | PrequelRelationNode | null, - type: 'anime' | 'manga', - setting: 'anilist' | 'livechartme' | 'animeschedule' | 'myanimelist', - search = false, - title: string | null = null + media: Media | PrequelRelationNode | null, + type: "anime" | "manga", + setting: "anilist" | "livechartme" | "animeschedule" | "myanimelist", + search = false, + title: string | null = null, ) => { - media = media as Media; + media = media as Media; - if (type === 'manga') - switch (setting) { - case 'livechartme': - case 'animeschedule': - return `https://anilist.co/${type}/${media.id}/`; - case 'myanimelist': - return media.idMal - ? `https://myanimelist.net/manga/${media.idMal}` - : `https://myanimelist.net/manga.php?q=${encodeURIComponent( - media.title.native || media.title.english || media.title.romaji - )}&cat=manga`; - default: - return `https://anilist.co/${type}/${media.id}/`; - } - else - switch (setting) { - case 'anilist': - return search - ? `https://anilist.co/search?search=${encodeURIComponent(title || '')}` - : `https://anilist.co/${type}/${media.id}/`; - case 'livechartme': - return `https://www.livechart.me/search?q=${encodeURIComponent( - title || media.title.native || media.title.english || media.title.romaji - )}`; - case 'animeschedule': - return `https://animeschedule.net/shows?q=${encodeURIComponent( - title || media.title.native || media.title.english || media.title.romaji - )}`; - 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=${encodeURIComponent( - media.title.native || media.title.english || media.title.romaji - )}&cat=anime`; - } - } + if (type === "manga") + switch (setting) { + case "livechartme": + case "animeschedule": + return `https://anilist.co/${type}/${media.id}/`; + case "myanimelist": + return media.idMal + ? `https://myanimelist.net/manga/${media.idMal}` + : `https://myanimelist.net/manga.php?q=${encodeURIComponent( + media.title.native || media.title.english || media.title.romaji, + )}&cat=manga`; + default: + return `https://anilist.co/${type}/${media.id}/`; + } + else + switch (setting) { + case "anilist": + return search + ? `https://anilist.co/search?search=${encodeURIComponent(title || "")}` + : `https://anilist.co/${type}/${media.id}/`; + case "livechartme": + return `https://www.livechart.me/search?q=${encodeURIComponent( + title || + media.title.native || + media.title.english || + media.title.romaji, + )}`; + case "animeschedule": + return `https://animeschedule.net/shows?q=${encodeURIComponent( + title || + media.title.native || + media.title.english || + media.title.romaji, + )}`; + 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=${encodeURIComponent( + media.title.native || media.title.english || media.title.romaji, + )}&cat=anime`; + } + } }; |