Merge pull request #44 from WBRK-dev/main

feat: added promotional material, characters and voice actors to `/info`
This commit is contained in:
Ritesh Ghosh
2024-04-28 15:47:29 +05:30
committed by GitHub
3 changed files with 79 additions and 1 deletions
+26 -1
View File
@@ -326,7 +326,32 @@ console.log(data);
},
type: string,
duration: string
}
},
promotionalVideos: [
{
title: string | undefined,
source: string | undefined,
thumbnail: string | undefined
},
{...},
],
characterVoiceActor: [
{
character: {
id: string,
poster: string,
name: string,
cast: string
},
voiceActor: {
id: string,
poster: string,
name: string,
cast: string
}
},
{...},
]
}
moreInfo: {
aired: string,
+33
View File
@@ -34,6 +34,8 @@ async function scrapeAnimeAboutInfo(
type: null,
duration: null,
},
promotionalVideos: [],
charactersVoiceActors: [],
},
moreInfo: {},
},
@@ -116,6 +118,37 @@ async function scrapeAnimeAboutInfo(
?.replace(/[\s\n]+/g, " ")
?.split(" ")
?.pop() || null;
// get promotional videos
$(".block_area.block_area-promotions .block_area-promotions-list .screen-items .item").each(
(_, el) => {
res.anime.info.promotionalVideos.push({
title: $(el).attr("data-title"),
source: $(el).attr("data-src"),
thumbnail: $(el).find("img").attr("src"),
});
}
);
// get characters and voice actors
$(".block_area.block_area-actors .block-actors-content .bac-list-wrap .bac-item").each(
(_, el) => {
res.anime.info.charactersVoiceActors.push({
character: {
id: $(el).find($(".per-info.ltr .pi-avatar")).attr("href")?.split("/")[2] || "",
poster: $(el).find($(".per-info.ltr .pi-avatar img")).attr("data-src") || "",
name: $(el).find($(".per-info.ltr .pi-detail a")).text(),
cast: $(el).find($(".per-info.ltr .pi-detail .pi-cast")).text(),
},
voiceActor: {
id: $(el).find($(".per-info.rtl .pi-avatar")).attr("href")?.split("/")[2] || "",
poster: $(el).find($(".per-info.rtl .pi-avatar img")).attr("data-src") || "",
name: $(el).find($(".per-info.rtl .pi-detail a")).text(),
cast: $(el).find($(".per-info.rtl .pi-detail .pi-cast")).text(),
},
});
}
);
// more information
$(`${selector} .anisc-info-wrap .anisc-info .item:not(.w-hide)`).each(
+20
View File
@@ -48,6 +48,8 @@ export interface AnimeGeneralAboutInfo
stats: {
quality: string | null;
} & Pick<Anime, "duration" | "episodes" | "rating" | "type">;
promotionalVideos: AnimePromotionalVideo[];
charactersVoiceActors: AnimeCharactersAndVoiceActors[];
}
export interface RecommendedAnime extends Anime {}
@@ -59,6 +61,24 @@ export interface Season extends Pick<Anime, CommonAnimeProps> {
title: string | null;
}
export interface AnimePromotionalVideo {
title: string | undefined;
source: string | undefined;
thumbnail: string | undefined;
}
export interface AnimeCharactersAndVoiceActors {
character: AnimeCharacter;
voiceActor: AnimeCharacter;
}
export interface AnimeCharacter {
id: string;
poster: string;
name: string;
cast: string;
}
export interface AnimeSearchSuggestion
extends Omit<MostPopularAnime, "episodes" | "type"> {
moreInfo: Array<string>;