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 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`; } } };