aboutsummaryrefslogtreecommitdiff
path: root/src/lib/Media/links.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/Media/links.ts')
-rw-r--r--src/lib/Media/links.ts21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/lib/Media/links.ts b/src/lib/Media/links.ts
index 4385d348..1e65f82f 100644
--- a/src/lib/Media/links.ts
+++ b/src/lib/Media/links.ts
@@ -1,10 +1,14 @@
import type { Media } from '$lib/AniList/media';
export const outboundLink = (
- media: Media,
+ media: Media | null,
type: 'anime' | 'manga',
- setting: 'anilist' | 'livechartme' | 'animeschedule' | 'myanimelist'
+ setting: 'anilist' | 'livechartme' | 'animeschedule' | 'myanimelist',
+ search = false,
+ title: string | null = null
) => {
+ media = media as Media;
+
if (type === 'manga')
switch (setting) {
case 'livechartme':
@@ -22,24 +26,31 @@ export const outboundLink = (
else
switch (setting) {
case 'anilist':
- return `https://anilist.co/${type}/${media.id}`;
+ return search
+ ? `https://anilist.co/search?search=${encodeURIComponent(title || '')}`
+ : `https://anilist.co/${type}/${media.id}`;
case 'livechartme':
return `https://www.livechart.me/search?q=${(
+ title ||
media.title.native ||
media.title.english ||
media.title.romaji
).replace(/ /g, '+')}`;
case 'animeschedule':
return `https://animeschedule.net/shows?q=${(
+ title ||
media.title.native ||
media.title.english ||
media.title.romaji
).replace(/ /g, '+')}`;
- case 'myanimelist':
- return media.idMal
+ 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=${
media.title.native || media.title.english || media.title.romaji
}&cat=anime`;
+ }
}
};