aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorFuwn <[email protected]>2023-12-20 02:37:50 -0800
committerFuwn <[email protected]>2023-12-20 02:37:50 -0800
commit33cd7975e0ca8671297944d4c5bab835df5118bb (patch)
treeb4044ca2d3e955ed118e847e8256b9da4efb7025 /src/lib
parentfeat(schedule): match media to anilist (diff)
downloaddue.moe-33cd7975e0ca8671297944d4c5bab835df5118bb.tar.xz
due.moe-33cd7975e0ca8671297944d4c5bab835df5118bb.zip
feat(schedule): respect outbound links
Diffstat (limited to 'src/lib')
-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`;
+ }
}
};