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/List/Anime/CleanAnimeList.svelte | 10 ++------ src/lib/List/Manga/CleanMangaList.svelte | 3 ++- src/lib/Media/media.ts | 42 ++++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+), 9 deletions(-) create mode 100644 src/lib/Media/media.ts (limited to 'src/lib') diff --git a/src/lib/List/Anime/CleanAnimeList.svelte b/src/lib/List/Anime/CleanAnimeList.svelte index 9eded7a0..e082f00a 100644 --- a/src/lib/List/Anime/CleanAnimeList.svelte +++ b/src/lib/List/Anime/CleanAnimeList.svelte @@ -7,6 +7,7 @@ import type { AniListAuthorisation, UserIdentity } from '$lib/AniList/identity'; import ListTitle from '../ListTitle.svelte'; import MediaTitle from '../MediaTitleDisplay.svelte'; + import { outboundLink } from '$lib/Media/media'; export let media: Media[]; export let title: string; @@ -38,14 +39,7 @@ {#if title.includes('Upcoming Episodes') || progress !== (anime.nextAiringEpisode?.episode || 9999) - 1}
  • - + import type { Media } from '$lib/AniList/media'; import { volumeCount } from '$lib/Media/manga'; + import { outboundLink } from '$lib/Media/media'; import settings from '../../../stores/settings'; import ListTitle from '../ListTitle.svelte'; import MediaTitle from '../MediaTitleDisplay.svelte'; @@ -34,7 +35,7 @@ {#if progress !== manga.episodes}
  • - + { + 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