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