From 96085a32b1aa8f882464da2a47218997b26b8145 Mon Sep 17 00:00:00 2001 From: Ritesh Ghosh Date: Sun, 6 Aug 2023 18:48:44 +0530 Subject: [PATCH] fix(totalPages): fixed bug showing wrong `totalPages` --- src/parsers/animeCategory.ts | 13 ++++--------- src/parsers/animeGenre.ts | 15 +++++---------- src/parsers/animeSearch.ts | 13 ++++--------- 3 files changed, 13 insertions(+), 28 deletions(-) diff --git a/src/parsers/animeCategory.ts b/src/parsers/animeCategory.ts index 12a322b..ffdd91c 100644 --- a/src/parsers/animeCategory.ts +++ b/src/parsers/animeCategory.ts @@ -28,7 +28,7 @@ async function scrapeAnimeCategory( category, currentPage: Number(page), hasNextPage: false, - totalPages: 0, + totalPages: 1, }; try { @@ -56,7 +56,7 @@ async function scrapeAnimeCategory( : false; res.totalPages = - parseInt( + Number( $('.pagination > .page-item a[title="Last"]') ?.attr("href") ?.split("=") @@ -66,17 +66,12 @@ async function scrapeAnimeCategory( ?.split("=") .pop() ?? $(".pagination > .page-item.active a")?.text()?.trim() - ) || 0; - - if (res.totalPages === 0 && !res.hasNextPage) { - res.totalPages = 0; - } + ) || 1; res.animes = extractAnimes($, selector); - if (res.animes.length === 0) { + if (res.animes.length === 0 && !res.hasNextPage) { res.totalPages = 0; - res.hasNextPage = false; } const genreSelector: SelectorType = diff --git a/src/parsers/animeGenre.ts b/src/parsers/animeGenre.ts index a3c1b5a..aed166b 100644 --- a/src/parsers/animeGenre.ts +++ b/src/parsers/animeGenre.ts @@ -12,7 +12,7 @@ import { import createHttpError, { HttpError } from "http-errors"; import { ScrapedGenreAnime } from "../models"; -// /anime/genre?name=${genreName}&page=${page} +// /anime/genre/${name}?page=${page} async function scrapeGenreAnime( genreName: string, page: number = 1 @@ -22,7 +22,7 @@ async function scrapeGenreAnime( animes: [], genres: [], topAiringAnimes: [], - totalPages: 0, + totalPages: 1, hasNextPage: false, currentPage: Number(page), }; @@ -63,7 +63,7 @@ async function scrapeGenreAnime( : false; res.totalPages = - parseInt( + Number( $('.pagination > .page-item a[title="Last"]') ?.attr("href") ?.split("=") @@ -73,17 +73,12 @@ async function scrapeGenreAnime( ?.split("=") .pop() ?? $(".pagination > .page-item.active a")?.text()?.trim() - ) || 0; - - if (res.totalPages === 0 && !res.hasNextPage) { - res.totalPages = 0; - } + ) || 1; res.animes = extractAnimes($, selector); - if (res.animes.length === 0) { + if (res.animes.length === 0 && !res.hasNextPage) { res.totalPages = 0; - res.hasNextPage = false; } const genreSelector: SelectorType = diff --git a/src/parsers/animeSearch.ts b/src/parsers/animeSearch.ts index 214045c..1c3c5f9 100644 --- a/src/parsers/animeSearch.ts +++ b/src/parsers/animeSearch.ts @@ -22,7 +22,7 @@ async function scrapeAnimeSearch( mostPopularAnimes: [], currentPage: Number(page), hasNextPage: false, - totalPages: 0, + totalPages: 1, }; try { @@ -52,7 +52,7 @@ async function scrapeAnimeSearch( : false; res.totalPages = - parseInt( + Number( $('.pagination > .page-item a[title="Last"]') ?.attr("href") ?.split("=") @@ -62,17 +62,12 @@ async function scrapeAnimeSearch( ?.split("=") .pop() ?? $(".pagination > .page-item.active a")?.text()?.trim() - ) || 0; - - if (res.totalPages === 0 && !res.hasNextPage) { - res.totalPages = 0; - } + ) || 1; res.animes = extractAnimes($, selector); - if (res.animes.length === 0) { + if (res.animes.length === 0 && !res.hasNextPage) { res.totalPages = 0; - res.hasNextPage = false; } const mostPopularSelector: SelectorType =