feat: added mostPopular, mostFavorite and latestCompleted to the home route response
This commit is contained in:
@@ -182,9 +182,7 @@ console.log(data);
|
|||||||
id: string,
|
id: string,
|
||||||
name: string,
|
name: string,
|
||||||
poster: string,
|
poster: string,
|
||||||
duration: string,
|
|
||||||
type: string,
|
type: string,
|
||||||
rating: string,
|
|
||||||
episodes: {
|
episodes: {
|
||||||
sub: number,
|
sub: number,
|
||||||
dub: number,
|
dub: number,
|
||||||
@@ -258,6 +256,45 @@ console.log(data);
|
|||||||
},
|
},
|
||||||
{...},
|
{...},
|
||||||
],
|
],
|
||||||
|
mostPopularAnimes: [
|
||||||
|
{
|
||||||
|
id: string,
|
||||||
|
name: string,
|
||||||
|
poster: string,
|
||||||
|
type: string,
|
||||||
|
episodes: {
|
||||||
|
sub: number,
|
||||||
|
dub: number,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{...},
|
||||||
|
],
|
||||||
|
mostFavoriteAnimes: [
|
||||||
|
{
|
||||||
|
id: string,
|
||||||
|
name: string,
|
||||||
|
poster: string,
|
||||||
|
type: string,
|
||||||
|
episodes: {
|
||||||
|
sub: number,
|
||||||
|
dub: number,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{...},
|
||||||
|
],
|
||||||
|
latestCompletedAnimes: [
|
||||||
|
{
|
||||||
|
id: string,
|
||||||
|
name: string,
|
||||||
|
poster: string,
|
||||||
|
type: string,
|
||||||
|
episodes: {
|
||||||
|
sub: number,
|
||||||
|
dub: number,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{...},
|
||||||
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -25,6 +25,9 @@ async function scrapeHomePage(): Promise<ScrapedHomePage | HttpError> {
|
|||||||
month: [],
|
month: [],
|
||||||
},
|
},
|
||||||
topAiringAnimes: [],
|
topAiringAnimes: [],
|
||||||
|
mostPopularAnimes: [],
|
||||||
|
mostFavoriteAnimes: [],
|
||||||
|
latestCompletedAnimes: [],
|
||||||
genres: [],
|
genres: [],
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -160,6 +163,9 @@ async function scrapeHomePage(): Promise<ScrapedHomePage | HttpError> {
|
|||||||
});
|
});
|
||||||
|
|
||||||
res.topAiringAnimes = extractMostPopularAnimes($, "#anime-featured .row div:nth-of-type(1) .anif-block-ul ul li");
|
res.topAiringAnimes = extractMostPopularAnimes($, "#anime-featured .row div:nth-of-type(1) .anif-block-ul ul li");
|
||||||
|
res.mostPopularAnimes = extractMostPopularAnimes($, "#anime-featured .row div:nth-of-type(2) .anif-block-ul ul li");
|
||||||
|
res.mostFavoriteAnimes = extractMostPopularAnimes($, "#anime-featured .row div:nth-of-type(3) .anif-block-ul ul li");
|
||||||
|
res.latestCompletedAnimes = extractMostPopularAnimes($, "#anime-featured .row div:nth-of-type(4) .anif-block-ul ul li");
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
} catch (err: any) {
|
} catch (err: any) {
|
||||||
|
|||||||
@@ -39,6 +39,8 @@ export interface LatestEpisodeAnime extends Anime {}
|
|||||||
export interface TopUpcomingAnime extends Anime {}
|
export interface TopUpcomingAnime extends Anime {}
|
||||||
|
|
||||||
export interface TopAiringAnime extends MostPopularAnime {}
|
export interface TopAiringAnime extends MostPopularAnime {}
|
||||||
|
export interface MostFavoriteAnime extends MostPopularAnime {}
|
||||||
|
export interface LatestCompletedAnime extends MostPopularAnime {}
|
||||||
|
|
||||||
export interface AnimeGeneralAboutInfo
|
export interface AnimeGeneralAboutInfo
|
||||||
extends Pick<Anime, CommonAnimeProps>,
|
extends Pick<Anime, CommonAnimeProps>,
|
||||||
|
|||||||
@@ -4,6 +4,9 @@ import type {
|
|||||||
TopAiringAnime,
|
TopAiringAnime,
|
||||||
TopUpcomingAnime,
|
TopUpcomingAnime,
|
||||||
LatestEpisodeAnime,
|
LatestEpisodeAnime,
|
||||||
|
MostFavoriteAnime,
|
||||||
|
MostPopularAnime,
|
||||||
|
LatestCompletedAnime,
|
||||||
} from "../anime.js";
|
} from "../anime.js";
|
||||||
import type { HttpError } from "http-errors";
|
import type { HttpError } from "http-errors";
|
||||||
import type { ScrapedAnimeCategory } from "./animeCategory.js";
|
import type { ScrapedAnimeCategory } from "./animeCategory.js";
|
||||||
@@ -15,4 +18,7 @@ export interface ScrapedHomePage
|
|||||||
latestEpisodeAnimes: Array<LatestEpisodeAnime> | HttpError;
|
latestEpisodeAnimes: Array<LatestEpisodeAnime> | HttpError;
|
||||||
topUpcomingAnimes: Array<TopUpcomingAnime> | HttpError;
|
topUpcomingAnimes: Array<TopUpcomingAnime> | HttpError;
|
||||||
topAiringAnimes: Array<TopAiringAnime> | HttpError;
|
topAiringAnimes: Array<TopAiringAnime> | HttpError;
|
||||||
|
mostPopularAnimes: Array<MostPopularAnime> | HttpError;
|
||||||
|
mostFavoriteAnimes: Array<MostFavoriteAnime> | HttpError;
|
||||||
|
latestCompletedAnimes: Array<LatestCompletedAnime> | HttpError;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,9 @@ test("returns anime information present in homepage", async () => {
|
|||||||
expect(data.latestEpisodeAnimes).not.toEqual([]);
|
expect(data.latestEpisodeAnimes).not.toEqual([]);
|
||||||
expect(data.topUpcomingAnimes).not.toEqual([]);
|
expect(data.topUpcomingAnimes).not.toEqual([]);
|
||||||
expect(data.topAiringAnimes).not.toEqual([]);
|
expect(data.topAiringAnimes).not.toEqual([]);
|
||||||
|
expect(data.mostPopularAnimes).not.toEqual([]);
|
||||||
|
expect(data.mostFavoriteAnimes).not.toEqual([]);
|
||||||
|
expect(data.latestCompletedAnimes).not.toEqual([]);
|
||||||
expect(data.genres).not.toEqual([]);
|
expect(data.genres).not.toEqual([]);
|
||||||
|
|
||||||
expect(data.top10Animes.today).not.toEqual([]);
|
expect(data.top10Animes.today).not.toEqual([]);
|
||||||
|
|||||||
Reference in New Issue
Block a user