aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRaze Viana <[email protected]>2024-04-13 00:21:31 +0200
committerRaze Viana <[email protected]>2024-04-13 00:21:31 +0200
commit55eaf060816f7ba05c12b1d1dcfa5404f0abde20 (patch)
treeb901635c7af2ec9e47652a268e498f31519662aa /src
parent05f62add7689dd4308f53d5777961d5720afbe93 (diff)
downloadaniwatch-api-55eaf060816f7ba05c12b1d1dcfa5404f0abde20.tar.xz
aniwatch-api-55eaf060816f7ba05c12b1d1dcfa5404f0abde20.zip
feat: added mal and anilist id to anime info endpoint
Diffstat (limited to 'src')
-rw-r--r--src/parsers/animeAboutInfo.ts12
-rw-r--r--src/types/anime.ts4
2 files changed, 16 insertions, 0 deletions
diff --git a/src/parsers/animeAboutInfo.ts b/src/parsers/animeAboutInfo.ts
index cc3f936..54af57f 100644
--- a/src/parsers/animeAboutInfo.ts
+++ b/src/parsers/animeAboutInfo.ts
@@ -19,6 +19,8 @@ async function scrapeAnimeAboutInfo(
anime: {
info: {
id: null,
+ anilistId: null,
+ malId: null,
name: null,
poster: null,
description: null,
@@ -53,6 +55,16 @@ async function scrapeAnimeAboutInfo(
const $: CheerioAPI = load(mainPage.data);
+ try {
+ res.anime.info.anilistId = Number(
+ JSON.parse($("body")?.find("#syncData")?.text())?.anilist_id
+ );
+ res.anime.info.malId = Number(JSON.parse($("body")?.find("#syncData")?.text())?.mal_id);
+ } catch (err) {
+ res.anime.info.anilistId = null;
+ res.anime.info.malId = null;
+ }
+
const selector: SelectorType = "#ani_detail .container .anis-content";
res.anime.info.id =
diff --git a/src/types/anime.ts b/src/types/anime.ts
index 7365c5e..d03534d 100644
--- a/src/types/anime.ts
+++ b/src/types/anime.ts
@@ -1,5 +1,7 @@
export interface Anime {
id: string | null;
+ anilistId: number | null;
+ malId: number | null;
name: string | null;
poster: string | null;
duration: string | null;
@@ -43,6 +45,8 @@ export interface TopAiringAnime extends MostPopularAnime {}
export interface AnimeGeneralAboutInfo
extends Pick<Anime, CommonAnimeProps>,
Pick<SpotlightAnime, "description"> {
+ anilistId: number | null;
+ malId: number | null;
stats: {
quality: string | null;
} & Pick<Anime, "duration" | "episodes" | "rating" | "type">;