UNPKG

node-csfd-api

Version:

ČSFD API in JavaScript. Amazing NPM library for scrapping csfd.cz :)

80 lines (78 loc) 3.07 kB
const require_index = require('../fetchers/index.js'); const require_vars = require('../vars.js'); const require_global_helper = require('../helpers/global.helper.js'); const require_search_user_helper = require('../helpers/search-user.helper.js'); const require_search_helper = require('../helpers/search.helper.js'); let node_html_parser = require("node-html-parser"); //#region src/services/search.service.ts var SearchScraper = class { async search(text, options) { const html = (0, node_html_parser.parse)(await require_index.fetchPage(require_vars.searchUrl(text, { language: options?.language }), { ...options?.request })); const moviesNode = html.querySelectorAll(".main-movies article"); const usersNode = html.querySelectorAll(".main-users article"); const tvSeriesNode = html.querySelectorAll(".main-series article"); return this.parseSearch(moviesNode, usersNode, tvSeriesNode, options?.language); } parseSearch(moviesNode, usersNode, tvSeriesNode, language) { const movies = []; const users = []; const tvSeries = []; const baseUrl = require_vars.getUrlByLanguage(language); moviesNode.forEach((m) => { const url = require_search_helper.getSearchUrl(m); const movie = { id: require_global_helper.parseIdFromUrl(url), title: require_search_helper.getSearchTitle(m), year: require_search_helper.getSearchYear(m), url: `${baseUrl}${url}`, type: require_search_helper.getSearchType(m), colorRating: require_search_helper.getSearchColorRating(m), poster: require_search_helper.getSearchPoster(m), origins: require_search_helper.getSearchOrigins(m), creators: { directors: require_search_helper.parseSearchPeople(m, "directors"), actors: require_search_helper.parseSearchPeople(m, "actors") } }; movies.push(movie); }); usersNode.forEach((m) => { const url = require_search_user_helper.getUserUrl(m); const user = { id: require_global_helper.parseIdFromUrl(url), user: require_search_user_helper.getUser(m), userRealName: require_search_user_helper.getUserRealName(m), avatar: require_search_user_helper.getAvatar(m), url: `${baseUrl}${url}` }; users.push(user); }); tvSeriesNode.forEach((m) => { const url = require_search_helper.getSearchUrl(m); const user = { id: require_global_helper.parseIdFromUrl(url), title: require_search_helper.getSearchTitle(m), year: require_search_helper.getSearchYear(m), url: `${baseUrl}${url}`, type: require_search_helper.getSearchType(m), colorRating: require_search_helper.getSearchColorRating(m), poster: require_search_helper.getSearchPoster(m), origins: require_search_helper.getSearchOrigins(m), creators: { directors: require_search_helper.parseSearchPeople(m, "directors"), actors: require_search_helper.parseSearchPeople(m, "actors") } }; tvSeries.push(user); }); return { movies, users, tvSeries, creators: [] }; } }; //#endregion exports.SearchScraper = SearchScraper; //# sourceMappingURL=search.service.js.map