node-csfd-api
Version:
ČSFD API in JavaScript. Amazing NPM library for scrapping csfd.cz :)
80 lines (78 loc) • 3.07 kB
JavaScript
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