UNPKG

node-csfd-api-racintom

Version:

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

81 lines (80 loc) 3.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SearchScraper = void 0; const node_html_parser_1 = require("node-html-parser"); const fetchers_1 = require("../fetchers"); const global_helper_1 = require("../helpers/global.helper"); const search_user_helper_1 = require("../helpers/search-user.helper"); const search_helper_1 = require("../helpers/search.helper"); const vars_1 = require("../vars"); class SearchScraper { async search(text) { const url = (0, vars_1.searchUrl)(text); const response = await (0, fetchers_1.fetchPage)(url); const html = (0, node_html_parser_1.parse)(response); 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); } parseSearch(moviesNode, usersNode, tvSeriesNode) { const movies = []; const users = []; const tvSeries = []; moviesNode.map((m) => { const url = (0, search_helper_1.getUrl)(m); const movie = { id: (0, global_helper_1.parseIdFromUrl)(url), title: (0, search_helper_1.getTitle)(m), year: (0, search_helper_1.getYear)(m), url: `https://www.csfd.cz${url}`, type: (0, search_helper_1.getType)(m), colorRating: (0, search_helper_1.getColorRating)(m), poster: (0, search_helper_1.getPoster)(m), origins: (0, search_helper_1.getOrigins)(m), creators: { directors: (0, search_helper_1.parsePeople)(m, 'directors'), actors: (0, search_helper_1.parsePeople)(m, 'actors') } }; movies.push(movie); }); usersNode.map((m) => { const url = (0, search_user_helper_1.getUserUrl)(m); const user = { id: (0, global_helper_1.parseIdFromUrl)(url), user: (0, search_user_helper_1.getUser)(m), userRealName: (0, search_user_helper_1.getUserRealName)(m), avatar: (0, search_user_helper_1.getAvatar)(m), url: `https://www.csfd.cz${url}` }; users.push(user); }); tvSeriesNode.map((m) => { const url = (0, search_helper_1.getUrl)(m); const user = { id: (0, global_helper_1.parseIdFromUrl)(url), title: (0, search_helper_1.getTitle)(m), year: (0, search_helper_1.getYear)(m), url: `https://www.csfd.cz${url}`, type: (0, search_helper_1.getType)(m), colorRating: (0, search_helper_1.getColorRating)(m), poster: (0, search_helper_1.getPoster)(m), origins: (0, search_helper_1.getOrigins)(m), creators: { directors: (0, search_helper_1.parsePeople)(m, 'directors'), actors: (0, search_helper_1.parsePeople)(m, 'actors') } }; tvSeries.push(user); }); const search = { movies: movies, users: users, tvSeries: tvSeries, creators: [] }; return search; } } exports.SearchScraper = SearchScraper;