@rexxhayanasi/nhentai
Version:
A scraper for NHentai with types
41 lines (40 loc) • 1.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseDoujinList = void 0;
const List_1 = require("../lib/Classes/List");
const lib_1 = require("../lib");
const parseDoujinList = ($, site) => {
const data = [];
const baseURL = lib_1.baseURLS[site];
const currentPage = Number($('.pagination').find('.page.current').text());
const totalPages = Number(($('.pagination').find('a.last').attr('href') || '').split('page=')[1]);
const pagination = currentPage === 0
? null
: {
currentPage,
hasNextPage: totalPages > currentPage,
totalPages
};
$('.gallery').each((i, el) => {
const contentElements = $(el).find('a');
const slug = contentElements.attr('href');
const id = slug ? slug.split('g/')[1].replace('/', '') : '';
const url = `${baseURL}/g/${id}`;
const coverSlug = contentElements.find('a > img').attr('data-src') ||
contentElements.find('a > img').attr('src');
const cover = coverSlug
? `${coverSlug.startsWith('/galleries/')
? 'https://t3.nhentai.net'
: ''}${coverSlug}`
.replace('/g/', '/galleries/')
.replace(lib_1.imageSites[site], 't3.nhentai.net')
: null;
const title = $(el).find('.caption').text().trim();
data.push(new List_1.List(title, id, cover, url));
});
return {
pagination,
data
};
};
exports.parseDoujinList = parseDoujinList;