node-csfd-api 2.4.0-next.0 → 2.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -1
- package/{types/fetchers → fetchers}/index.d.ts +0 -0
- package/{cjs/fetchers → fetchers}/index.js +7 -13
- package/{types/helpers → helpers}/creator.helper.d.ts +0 -0
- package/{cjs/helpers → helpers}/creator.helper.js +0 -0
- package/{types/helpers → helpers}/global.helper.d.ts +0 -0
- package/{cjs/helpers → helpers}/global.helper.js +8 -3
- package/{types/helpers → helpers}/movie.helper.d.ts +2 -0
- package/{cjs/helpers → helpers}/movie.helper.js +36 -11
- package/{types/helpers → helpers}/search-user.helper.d.ts +0 -0
- package/{cjs/helpers → helpers}/search-user.helper.js +0 -0
- package/{types/helpers → helpers}/search.helper.d.ts +0 -0
- package/{cjs/helpers → helpers}/search.helper.js +0 -0
- package/{types/helpers → helpers}/user-ratings.helper.d.ts +0 -0
- package/{cjs/helpers → helpers}/user-ratings.helper.js +0 -0
- package/{types/index.d.ts → index.d.ts} +0 -0
- package/index.js +33 -0
- package/{types/interfaces → interfaces}/creator.interface.d.ts +0 -0
- package/{cjs/interfaces → interfaces}/creator.interface.js +0 -0
- package/{types/interfaces → interfaces}/global.d.ts +0 -0
- package/{cjs/interfaces → interfaces}/global.js +0 -0
- package/{types/interfaces → interfaces}/movie.interface.d.ts +2 -0
- package/{cjs/interfaces → interfaces}/movie.interface.js +0 -0
- package/{types/interfaces → interfaces}/search.interface.d.ts +0 -0
- package/{cjs/interfaces → interfaces}/search.interface.js +0 -0
- package/{types/interfaces → interfaces}/user-ratings.interface.d.ts +0 -0
- package/{cjs/interfaces → interfaces}/user-ratings.interface.js +0 -0
- package/package.json +9 -10
- package/{types/services → services}/creator.service.d.ts +0 -0
- package/services/creator.service.js +32 -0
- package/{types/services → services}/movie.service.d.ts +0 -0
- package/{cjs/services → services}/movie.service.js +12 -21
- package/{types/services → services}/search.service.d.ts +0 -0
- package/{cjs/services → services}/search.service.js +7 -18
- package/{types/services → services}/user-ratings.service.d.ts +0 -0
- package/{cjs/services → services}/user-ratings.service.js +25 -36
- package/{types/vars.d.ts → vars.d.ts} +0 -0
- package/{cjs/vars.js → vars.js} +1 -1
- package/cjs/index.js +0 -50
- package/cjs/services/creator.service.js +0 -43
- package/esm/fetchers/index.js +0 -32
- package/esm/helpers/creator.helper.js +0 -72
- package/esm/helpers/global.helper.js +0 -51
- package/esm/helpers/movie.helper.js +0 -200
- package/esm/helpers/search-user.helper.js +0 -15
- package/esm/helpers/search.helper.js +0 -38
- package/esm/helpers/user-ratings.helper.js +0 -47
- package/esm/index.js +0 -46
- package/esm/interfaces/creator.interface.js +0 -1
- package/esm/interfaces/global.js +0 -1
- package/esm/interfaces/movie.interface.js +0 -1
- package/esm/interfaces/search.interface.js +0 -1
- package/esm/interfaces/user-ratings.interface.js +0 -1
- package/esm/services/creator.service.js +0 -39
- package/esm/services/movie.service.js +0 -63
- package/esm/services/search.service.js +0 -67
- package/esm/services/user-ratings.service.js +0 -91
- package/esm/vars.js +0 -4
- package/types/index.ts +0 -22
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
import { parse } from 'node-html-parser';
|
|
11
|
-
import { fetchPage } from '../fetchers';
|
|
12
|
-
import { parseIdFromUrl } from '../helpers/global.helper';
|
|
13
|
-
import { getAvatar, getUser, getUserRealName, getUserUrl } from '../helpers/search-user.helper';
|
|
14
|
-
import { getColorRating, getOrigins, getPoster, getTitle, getType, getUrl, getYear, parsePeople } from '../helpers/search.helper';
|
|
15
|
-
import { searchUrl } from '../vars';
|
|
16
|
-
export class SearchScraper {
|
|
17
|
-
search(text) {
|
|
18
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
19
|
-
const url = searchUrl(text);
|
|
20
|
-
const response = yield fetchPage(url);
|
|
21
|
-
const html = parse(response);
|
|
22
|
-
const moviesNode = html.querySelectorAll('.main-movies article');
|
|
23
|
-
const usersNode = html.querySelectorAll('.main-users article');
|
|
24
|
-
return this.parseSearch(moviesNode, usersNode);
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
parseSearch(moviesNode, usersNode) {
|
|
28
|
-
const movies = [];
|
|
29
|
-
const users = [];
|
|
30
|
-
moviesNode.map((m) => {
|
|
31
|
-
const url = getUrl(m);
|
|
32
|
-
const movie = {
|
|
33
|
-
id: parseIdFromUrl(url),
|
|
34
|
-
title: getTitle(m),
|
|
35
|
-
year: getYear(m),
|
|
36
|
-
url: `https://www.csfd.cz${url}`,
|
|
37
|
-
type: getType(m),
|
|
38
|
-
colorRating: getColorRating(m),
|
|
39
|
-
poster: getPoster(m),
|
|
40
|
-
origins: getOrigins(m),
|
|
41
|
-
creators: {
|
|
42
|
-
directors: parsePeople(m, 'director'),
|
|
43
|
-
actors: parsePeople(m, 'actors')
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
movies.push(movie);
|
|
47
|
-
});
|
|
48
|
-
usersNode.map((m) => {
|
|
49
|
-
const url = getUserUrl(m);
|
|
50
|
-
const user = {
|
|
51
|
-
id: parseIdFromUrl(url),
|
|
52
|
-
user: getUser(m),
|
|
53
|
-
userRealName: getUserRealName(m),
|
|
54
|
-
avatar: getAvatar(m),
|
|
55
|
-
url: `https://www.csfd.cz${url}`
|
|
56
|
-
};
|
|
57
|
-
users.push(user);
|
|
58
|
-
});
|
|
59
|
-
const search = {
|
|
60
|
-
movies: movies,
|
|
61
|
-
users: users,
|
|
62
|
-
tvSeries: [],
|
|
63
|
-
creators: []
|
|
64
|
-
};
|
|
65
|
-
return search;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
import { parse } from 'node-html-parser';
|
|
11
|
-
import { fetchPage } from '../fetchers';
|
|
12
|
-
import { getColorRating, getDate, getId, getTitle, getType, getUrl, getUserRating, getYear, sleep } from '../helpers/user-ratings.helper';
|
|
13
|
-
import { userRatingsUrl } from '../vars';
|
|
14
|
-
export class UserRatingsScraper {
|
|
15
|
-
constructor() {
|
|
16
|
-
this.films = [];
|
|
17
|
-
}
|
|
18
|
-
userRatings(user, config) {
|
|
19
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
20
|
-
let allMovies = [];
|
|
21
|
-
const url = userRatingsUrl(user);
|
|
22
|
-
const response = yield fetchPage(url);
|
|
23
|
-
const items = parse(response);
|
|
24
|
-
const movies = items.querySelectorAll('.box-user-rating .table-container tbody tr');
|
|
25
|
-
// Get number of pages
|
|
26
|
-
const pagesNode = items.querySelector('.pagination');
|
|
27
|
-
const pages = +(pagesNode === null || pagesNode === void 0 ? void 0 : pagesNode.childNodes[pagesNode.childNodes.length - 4].rawText) || 1;
|
|
28
|
-
allMovies = this.getPage(config, movies);
|
|
29
|
-
if (config === null || config === void 0 ? void 0 : config.allPages) {
|
|
30
|
-
console.log('User', user, url);
|
|
31
|
-
console.log('Fetching all pages', pages);
|
|
32
|
-
for (let i = 2; i <= pages; i++) {
|
|
33
|
-
console.log('Fetching page', i, 'out of', pages, '...');
|
|
34
|
-
const url = userRatingsUrl(user, i);
|
|
35
|
-
const response = yield fetchPage(url);
|
|
36
|
-
const items = parse(response);
|
|
37
|
-
const movies = items.querySelectorAll('.box-user-rating .table-container tbody tr');
|
|
38
|
-
allMovies = [...this.getPage(config, movies)];
|
|
39
|
-
// Sleep
|
|
40
|
-
if (config.allPagesDelay) {
|
|
41
|
-
yield sleep(config.allPagesDelay);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
return allMovies;
|
|
45
|
-
}
|
|
46
|
-
return allMovies;
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
getPage(config, movies) {
|
|
50
|
-
var _a, _b, _c, _d;
|
|
51
|
-
if (config) {
|
|
52
|
-
if (((_a = config.includesOnly) === null || _a === void 0 ? void 0 : _a.length) && ((_b = config.excludes) === null || _b === void 0 ? void 0 : _b.length)) {
|
|
53
|
-
console.warn(`node-csfd-api:
|
|
54
|
-
You can not use both parameters 'includesOnly' and 'excludes'.
|
|
55
|
-
Parameter 'includesOnly' will be used now:`, config.includesOnly);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
for (const el of movies) {
|
|
59
|
-
const type = getType(el);
|
|
60
|
-
// Filtering includesOnly
|
|
61
|
-
if ((_c = config === null || config === void 0 ? void 0 : config.includesOnly) === null || _c === void 0 ? void 0 : _c.length) {
|
|
62
|
-
if (config.includesOnly.some((include) => type === include)) {
|
|
63
|
-
this.buildUserRatings(el);
|
|
64
|
-
}
|
|
65
|
-
// Filter exludes
|
|
66
|
-
}
|
|
67
|
-
else if ((_d = config === null || config === void 0 ? void 0 : config.excludes) === null || _d === void 0 ? void 0 : _d.length) {
|
|
68
|
-
if (!config.excludes.some((exclude) => type === exclude)) {
|
|
69
|
-
this.buildUserRatings(el);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
// Without filtering
|
|
74
|
-
this.buildUserRatings(el);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
return this.films;
|
|
78
|
-
}
|
|
79
|
-
buildUserRatings(el) {
|
|
80
|
-
this.films.push({
|
|
81
|
-
id: getId(el),
|
|
82
|
-
title: getTitle(el),
|
|
83
|
-
year: getYear(el),
|
|
84
|
-
type: getType(el),
|
|
85
|
-
url: getUrl(el),
|
|
86
|
-
colorRating: getColorRating(el),
|
|
87
|
-
userDate: getDate(el),
|
|
88
|
-
userRating: getUserRating(el)
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
}
|
package/esm/vars.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export const userRatingsUrl = (user, page) => `https://www.csfd.cz/uzivatel/${encodeURIComponent(user)}/hodnoceni/${page ? '?page=' + page : ''}`;
|
|
2
|
-
export const movieUrl = (movie) => `https://www.csfd.cz/film/${encodeURIComponent(movie)}`;
|
|
3
|
-
export const creatorUrl = (creator) => `https://www.csfd.cz/tvurce/${encodeURIComponent(creator)}`;
|
|
4
|
-
export const searchUrl = (text) => `https://www.csfd.cz/hledat/?q=${encodeURIComponent(text)}`;
|
package/types/index.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file Automatically generated by barrelsby.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
export * from "./index";
|
|
6
|
-
export * from "./vars";
|
|
7
|
-
export * from "./fetchers/index";
|
|
8
|
-
export * from "./helpers/creator.helper";
|
|
9
|
-
export * from "./helpers/global.helper";
|
|
10
|
-
export * from "./helpers/movie.helper";
|
|
11
|
-
export * from "./helpers/search-user.helper";
|
|
12
|
-
export * from "./helpers/search.helper";
|
|
13
|
-
export * from "./helpers/user-ratings.helper";
|
|
14
|
-
export * from "./interfaces/creator.interface";
|
|
15
|
-
export * from "./interfaces/global";
|
|
16
|
-
export * from "./interfaces/movie.interface";
|
|
17
|
-
export * from "./interfaces/search.interface";
|
|
18
|
-
export * from "./interfaces/user-ratings.interface";
|
|
19
|
-
export * from "./services/creator.service";
|
|
20
|
-
export * from "./services/movie.service";
|
|
21
|
-
export * from "./services/search.service";
|
|
22
|
-
export * from "./services/user-ratings.service";
|