aboutsummaryrefslogtreecommitdiff
path: root/src/lib/Media/links.ts
diff options
context:
space:
mode:
authorFuwn <[email protected]>2023-12-17 04:45:12 -0800
committerFuwn <[email protected]>2023-12-17 04:45:12 -0800
commit74688bc2091f62878dfb1ccbd95930217de95fe2 (patch)
tree25235f5550a238d7b321bc696e9b76004f853c50 /src/lib/Media/links.ts
parentrefactor(manga): move time (diff)
downloaddue.moe-74688bc2091f62878dfb1ccbd95930217de95fe2.tar.xz
due.moe-74688bc2091f62878dfb1ccbd95930217de95fe2.zip
refactor(media): links
Diffstat (limited to 'src/lib/Media/links.ts')
-rw-r--r--src/lib/Media/links.ts45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/lib/Media/links.ts b/src/lib/Media/links.ts
new file mode 100644
index 00000000..4385d348
--- /dev/null
+++ b/src/lib/Media/links.ts
@@ -0,0 +1,45 @@
+import type { Media } from '$lib/AniList/media';
+
+export const outboundLink = (
+ media: Media,
+ type: 'anime' | 'manga',
+ setting: 'anilist' | 'livechartme' | 'animeschedule' | 'myanimelist'
+) => {
+ 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=${
+ 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 `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 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`;
+ }
+};