node-csfd-api 3.0.0-next.22 → 3.0.0-next.24

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.
Files changed (90) hide show
  1. package/{fetchers → cjs/fetchers}/index.js +13 -4
  2. package/{helpers → cjs/helpers}/cinema.helper.js +12 -12
  3. package/{helpers → cjs/helpers}/creator.helper.js +19 -23
  4. package/{helpers → cjs/helpers}/movie.helper.js +44 -46
  5. package/{helpers → cjs/helpers}/search.helper.js +17 -17
  6. package/{helpers → cjs/helpers}/user-ratings.helper.js +16 -17
  7. package/cjs/index.js +58 -0
  8. package/cjs/services/cinema.service.js +45 -0
  9. package/cjs/services/creator.service.js +43 -0
  10. package/cjs/services/movie.service.js +69 -0
  11. package/cjs/services/search.service.js +91 -0
  12. package/cjs/services/user-ratings.service.js +95 -0
  13. package/esm/fetchers/index.js +13 -4
  14. package/esm/helpers/cinema.helper.js +7 -7
  15. package/esm/helpers/creator.helper.js +12 -12
  16. package/esm/helpers/movie.helper.js +23 -23
  17. package/esm/helpers/search.helper.js +8 -8
  18. package/esm/helpers/user-ratings.helper.js +8 -8
  19. package/esm/index.js +29 -10
  20. package/esm/services/cinema.service.js +20 -9
  21. package/esm/services/creator.service.js +27 -16
  22. package/esm/services/movie.service.js +51 -40
  23. package/esm/services/search.service.js +38 -27
  24. package/esm/services/user-ratings.service.js +45 -34
  25. package/package.json +11 -17
  26. package/{helpers → types/helpers}/cinema.helper.d.ts +5 -5
  27. package/types/helpers/creator.helper.d.ts +12 -0
  28. package/types/helpers/movie.helper.d.ts +23 -0
  29. package/types/helpers/search.helper.d.ts +11 -0
  30. package/types/helpers/user-ratings.helper.d.ts +11 -0
  31. package/{esm/types → types}/index.d.ts +1 -1
  32. package/types/index.ts +22 -0
  33. package/{interfaces → types/interfaces}/movie.interface.d.ts +11 -11
  34. package/{interfaces → types/interfaces}/search.interface.d.ts +4 -4
  35. package/{vars.d.ts → types/vars.d.ts} +1 -1
  36. package/esm/types/helpers/cinema.helper.d.ts +0 -18
  37. package/esm/types/helpers/creator.helper.d.ts +0 -17
  38. package/esm/types/helpers/movie.helper.d.ts +0 -25
  39. package/esm/types/helpers/search.helper.d.ts +0 -11
  40. package/esm/types/helpers/user-ratings.helper.d.ts +0 -13
  41. package/esm/types/interfaces/movie.interface.d.ts +0 -66
  42. package/esm/types/interfaces/search.interface.d.ts +0 -27
  43. package/esm/types/vars.d.ts +0 -6
  44. package/fetchers/fetch.polyfill.d.ts +0 -1
  45. package/fetchers/index.d.ts +0 -1
  46. package/helpers/creator.helper.d.ts +0 -17
  47. package/helpers/global.helper.d.ts +0 -17
  48. package/helpers/movie.helper.d.ts +0 -25
  49. package/helpers/search-user.helper.d.ts +0 -5
  50. package/helpers/search.helper.d.ts +0 -11
  51. package/helpers/user-ratings.helper.d.ts +0 -13
  52. package/index.d.ts +0 -24
  53. package/index.js +0 -39
  54. package/interfaces/cinema.interface.d.ts +0 -23
  55. package/interfaces/creator.interface.d.ts +0 -12
  56. package/interfaces/global.d.ts +0 -22
  57. package/interfaces/user-ratings.interface.d.ts +0 -18
  58. package/services/cinema.service.d.ts +0 -6
  59. package/services/cinema.service.js +0 -34
  60. package/services/creator.service.d.ts +0 -6
  61. package/services/creator.service.js +0 -32
  62. package/services/movie.service.d.ts +0 -6
  63. package/services/movie.service.js +0 -58
  64. package/services/search.service.d.ts +0 -5
  65. package/services/search.service.js +0 -80
  66. package/services/user-ratings.service.d.ts +0 -7
  67. package/services/user-ratings.service.js +0 -84
  68. /package/{fetchers → cjs/fetchers}/fetch.polyfill.js +0 -0
  69. /package/{helpers → cjs/helpers}/global.helper.js +0 -0
  70. /package/{helpers → cjs/helpers}/search-user.helper.js +0 -0
  71. /package/{interfaces → cjs/interfaces}/cinema.interface.js +0 -0
  72. /package/{interfaces → cjs/interfaces}/creator.interface.js +0 -0
  73. /package/{interfaces → cjs/interfaces}/global.js +0 -0
  74. /package/{interfaces → cjs/interfaces}/movie.interface.js +0 -0
  75. /package/{interfaces → cjs/interfaces}/search.interface.js +0 -0
  76. /package/{interfaces → cjs/interfaces}/user-ratings.interface.js +0 -0
  77. /package/{vars.js → cjs/vars.js} +0 -0
  78. /package/{esm/types → types}/fetchers/fetch.polyfill.d.ts +0 -0
  79. /package/{esm/types → types}/fetchers/index.d.ts +0 -0
  80. /package/{esm/types → types}/helpers/global.helper.d.ts +0 -0
  81. /package/{esm/types → types}/helpers/search-user.helper.d.ts +0 -0
  82. /package/{esm/types → types}/interfaces/cinema.interface.d.ts +0 -0
  83. /package/{esm/types → types}/interfaces/creator.interface.d.ts +0 -0
  84. /package/{esm/types → types}/interfaces/global.d.ts +0 -0
  85. /package/{esm/types → types}/interfaces/user-ratings.interface.d.ts +0 -0
  86. /package/{esm/types → types}/services/cinema.service.d.ts +0 -0
  87. /package/{esm/types → types}/services/creator.service.d.ts +0 -0
  88. /package/{esm/types → types}/services/movie.service.d.ts +0 -0
  89. /package/{esm/types → types}/services/search.service.d.ts +0 -0
  90. /package/{esm/types → types}/services/user-ratings.service.d.ts +0 -0
@@ -1,4 +1,13 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.fetchPage = void 0;
4
13
  const fetch_polyfill_1 = require("./fetch.polyfill");
@@ -11,17 +20,17 @@ const USER_AGENTS = [
11
20
  const headers = {
12
21
  'User-Agent': USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)]
13
22
  };
14
- const fetchPage = async (url) => {
23
+ const fetchPage = (url) => __awaiter(void 0, void 0, void 0, function* () {
15
24
  try {
16
- const response = await (0, fetch_polyfill_1.fetchSafe)(url, { headers });
25
+ const response = yield (0, fetch_polyfill_1.fetchSafe)(url, { headers });
17
26
  if (response.status >= 400 && response.status < 600) {
18
27
  throw new Error(`node-csfd-api: Bad response ${response.status} for url: ${url}`);
19
28
  }
20
- return await response.text();
29
+ return yield response.text();
21
30
  }
22
31
  catch (e) {
23
32
  console.error(e);
24
33
  return 'Error';
25
34
  }
26
- };
35
+ });
27
36
  exports.fetchPage = fetchPage;
@@ -1,25 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseMeta = exports.getFilms = exports.getGroupedFilmsByDate = exports.parseCinema = exports.getCinemaUrl = exports.getCoords = exports.getId = exports.getCinemaId = exports.getColorRating = void 0;
3
+ exports.parseMeta = exports.getCinemaFilms = exports.getGroupedFilmsByDate = exports.parseCinema = exports.getCinemaUrl = exports.getCinemaCoords = exports.getCinemaUrlId = exports.getCinemaId = exports.getCinemaColorRating = void 0;
4
4
  const global_helper_1 = require("./global.helper");
5
- const getColorRating = (el) => {
5
+ const getCinemaColorRating = (el) => {
6
6
  return (0, global_helper_1.parseColor)(el === null || el === void 0 ? void 0 : el.classNames.split(' ').pop());
7
7
  };
8
- exports.getColorRating = getColorRating;
8
+ exports.getCinemaColorRating = getCinemaColorRating;
9
9
  const getCinemaId = (el) => {
10
10
  var _a;
11
11
  const id = (_a = el === null || el === void 0 ? void 0 : el.id) === null || _a === void 0 ? void 0 : _a.split('-')[1];
12
12
  return +id;
13
13
  };
14
14
  exports.getCinemaId = getCinemaId;
15
- const getId = (url) => {
15
+ const getCinemaUrlId = (url) => {
16
16
  if (url) {
17
17
  return (0, global_helper_1.parseIdFromUrl)(url);
18
18
  }
19
19
  return null;
20
20
  };
21
- exports.getId = getId;
22
- const getCoords = (el) => {
21
+ exports.getCinemaUrlId = getCinemaUrlId;
22
+ const getCinemaCoords = (el) => {
23
23
  if (!el)
24
24
  return null;
25
25
  const linkMapsEl = el.querySelector('a[href*="q="]');
@@ -37,7 +37,7 @@ const getCoords = (el) => {
37
37
  }
38
38
  return null;
39
39
  };
40
- exports.getCoords = getCoords;
40
+ exports.getCinemaCoords = getCinemaCoords;
41
41
  const getCinemaUrl = (el) => {
42
42
  var _a, _b;
43
43
  if (!el)
@@ -60,19 +60,19 @@ const getGroupedFilmsByDate = (el) => {
60
60
  var _a, _b, _c;
61
61
  const [date, films] = divs.slice(index, index + 2);
62
62
  const dateText = (_c = (_b = (_a = date === null || date === void 0 ? void 0 : date.firstChild) === null || _a === void 0 ? void 0 : _a.textContent) === null || _b === void 0 ? void 0 : _b.trim()) !== null && _c !== void 0 ? _c : null;
63
- return { date: dateText, films: (0, exports.getFilms)('', films) };
63
+ return { date: dateText, films: (0, exports.getCinemaFilms)('', films) };
64
64
  });
65
65
  return getDatesAndFilms;
66
66
  };
67
67
  exports.getGroupedFilmsByDate = getGroupedFilmsByDate;
68
- const getFilms = (date, el) => {
68
+ const getCinemaFilms = (date, el) => {
69
69
  const filmNodes = el.querySelectorAll('.cinema-table tr');
70
70
  const films = filmNodes.map((filmNode) => {
71
71
  var _a, _b, _c, _d;
72
72
  const url = (_a = filmNode.querySelector('td.name h3 a')) === null || _a === void 0 ? void 0 : _a.attributes.href;
73
- const id = (0, exports.getId)(url);
73
+ const id = (0, exports.getCinemaUrlId)(url);
74
74
  const title = (_b = filmNode.querySelector('.name h3')) === null || _b === void 0 ? void 0 : _b.text.trim();
75
- const colorRating = (0, exports.getColorRating)(filmNode.querySelector('.name .icon'));
75
+ const colorRating = (0, exports.getCinemaColorRating)(filmNode.querySelector('.name .icon'));
76
76
  const showTimes = (_c = filmNode.querySelectorAll('.td-time')) === null || _c === void 0 ? void 0 : _c.map((x) => x.textContent.trim());
77
77
  const meta = (_d = filmNode.querySelectorAll('.td-title span')) === null || _d === void 0 ? void 0 : _d.map((x) => x.text.trim());
78
78
  return {
@@ -86,7 +86,7 @@ const getFilms = (date, el) => {
86
86
  });
87
87
  return films;
88
88
  };
89
- exports.getFilms = getFilms;
89
+ exports.getCinemaFilms = getCinemaFilms;
90
90
  const parseMeta = (meta) => {
91
91
  const metaConvert = [];
92
92
  for (const element of meta) {
@@ -1,23 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getFilms = exports.parseBirthPlace = exports.parseAge = exports.parseBirthday = exports.getPhoto = exports.getBio = exports.getBirthdayInfo = exports.getName = exports.getId = exports.getColorRating = void 0;
3
+ exports.getCreatorFilms = exports.getCreatorPhoto = exports.getCreatorBio = exports.getCreatorBirthdayInfo = exports.getCreatorName = exports.getCreatorId = void 0;
4
4
  const global_helper_1 = require("./global.helper");
5
- const getColorRating = (el) => {
5
+ const getCreatorColorRating = (el) => {
6
6
  return (0, global_helper_1.parseColor)(el === null || el === void 0 ? void 0 : el.classNames.split(' ').pop());
7
7
  };
8
- exports.getColorRating = getColorRating;
9
- const getId = (url) => {
8
+ const getCreatorId = (url) => {
10
9
  if (url) {
11
10
  return (0, global_helper_1.parseIdFromUrl)(url);
12
11
  }
13
12
  return null;
14
13
  };
15
- exports.getId = getId;
16
- const getName = (el) => {
14
+ exports.getCreatorId = getCreatorId;
15
+ const getCreatorName = (el) => {
17
16
  return el.querySelector('h1').innerText.trim();
18
17
  };
19
- exports.getName = getName;
20
- const getBirthdayInfo = (el) => {
18
+ exports.getCreatorName = getCreatorName;
19
+ const getCreatorBirthdayInfo = (el) => {
21
20
  var _a, _b;
22
21
  const infoBlock = el.querySelector('h1 + p');
23
22
  const text = infoBlock === null || infoBlock === void 0 ? void 0 : infoBlock.innerHTML.trim();
@@ -27,45 +26,42 @@ const getBirthdayInfo = (el) => {
27
26
  if (text) {
28
27
  const parts = text.split('\n');
29
28
  const birthdayRow = parts.find((x) => x.includes('nar.'));
30
- birthday = birthdayRow ? (0, exports.parseBirthday)(birthdayRow) : '';
29
+ birthday = birthdayRow ? parseBirthday(birthdayRow) : '';
31
30
  }
32
- const age = ageRow ? +(0, exports.parseAge)(ageRow) : null;
33
- const birthPlace = birthPlaceRow ? (0, exports.parseBirthPlace)(birthPlaceRow) : '';
31
+ const age = ageRow ? +parseAge(ageRow) : null;
32
+ const birthPlace = birthPlaceRow ? parseBirthPlace(birthPlaceRow) : '';
34
33
  return { birthday, age, birthPlace };
35
34
  };
36
- exports.getBirthdayInfo = getBirthdayInfo;
37
- const getBio = (el) => {
35
+ exports.getCreatorBirthdayInfo = getCreatorBirthdayInfo;
36
+ const getCreatorBio = (el) => {
38
37
  var _a;
39
38
  return ((_a = el.querySelector('.article-content p')) === null || _a === void 0 ? void 0 : _a.text.trim().split('\n')[0].trim()) || null;
40
39
  };
41
- exports.getBio = getBio;
42
- const getPhoto = (el) => {
40
+ exports.getCreatorBio = getCreatorBio;
41
+ const getCreatorPhoto = (el) => {
43
42
  const image = el.querySelector('img').attributes.src;
44
43
  return (0, global_helper_1.addProtocol)(image);
45
44
  };
46
- exports.getPhoto = getPhoto;
45
+ exports.getCreatorPhoto = getCreatorPhoto;
47
46
  const parseBirthday = (text) => {
48
47
  return text.replace(/nar./g, '').trim();
49
48
  };
50
- exports.parseBirthday = parseBirthday;
51
49
  const parseAge = (text) => {
52
50
  return text.trim().replace(/\(/g, '').replace(/let\)/g, '').trim();
53
51
  };
54
- exports.parseAge = parseAge;
55
52
  const parseBirthPlace = (text) => {
56
53
  return text.trim().replace(/<br>/g, '').trim();
57
54
  };
58
- exports.parseBirthPlace = parseBirthPlace;
59
- const getFilms = (el) => {
55
+ const getCreatorFilms = (el) => {
60
56
  var _a;
61
57
  const filmNodes = (_a = el.querySelectorAll('.box')[0]) === null || _a === void 0 ? void 0 : _a.querySelectorAll('table tr');
62
58
  let yearCache;
63
59
  const films = filmNodes.map((filmNode) => {
64
60
  var _a, _b, _c;
65
- const id = (0, exports.getId)((_a = filmNode.querySelector('td.name .film-title-name')) === null || _a === void 0 ? void 0 : _a.attributes.href);
61
+ const id = (0, exports.getCreatorId)((_a = filmNode.querySelector('td.name .film-title-name')) === null || _a === void 0 ? void 0 : _a.attributes.href);
66
62
  const title = (_b = filmNode.querySelector('.name')) === null || _b === void 0 ? void 0 : _b.text.trim();
67
63
  const year = +((_c = filmNode.querySelector('.year')) === null || _c === void 0 ? void 0 : _c.text.trim());
68
- const colorRating = (0, exports.getColorRating)(filmNode.querySelector('.name .icon'));
64
+ const colorRating = getCreatorColorRating(filmNode.querySelector('.name .icon'));
69
65
  // Cache year from previous film because there is a gap between movies with same year
70
66
  if (year) {
71
67
  yearCache = +year;
@@ -84,4 +80,4 @@ const getFilms = (el) => {
84
80
  const filmsUnique = films.filter((value) => Object.keys(value).length !== 0);
85
81
  return filmsUnique;
86
82
  };
87
- exports.getFilms = getFilms;
83
+ exports.getCreatorFilms = getCreatorFilms;
@@ -1,32 +1,32 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTags = exports.getPremieres = exports.getBoxMovies = exports.getBoxContent = exports.getVods = exports.getType = exports.getGroup = exports.parsePeople = exports.getDescriptions = exports.getTrivia = exports.getRandomPhoto = exports.getPoster = exports.getTitlesOther = exports.getDuration = exports.getYear = exports.getRatingCount = exports.getRating = exports.getColorRating = exports.getOrigins = exports.getGenres = exports.getTitle = exports.getId = void 0;
3
+ exports.getMovieTags = exports.getMoviePremieres = exports.getMovieBoxMovies = exports.getMovieVods = exports.getMovieType = exports.getMovieGroup = exports.getMovieDescriptions = exports.getMovieTrivia = exports.getMovieRandomPhoto = exports.getMoviePoster = exports.getMovieTitlesOther = exports.getMovieDuration = exports.getMovieYear = exports.getMovieRatingCount = exports.getMovieRating = exports.getMovieColorRating = exports.getMovieOrigins = exports.getMovieGenres = exports.getMovieTitle = exports.getMovieId = void 0;
4
4
  const global_helper_1 = require("./global.helper");
5
- const getId = (el) => {
5
+ const getMovieId = (el) => {
6
6
  const url = el.querySelector('.tabs .tab-nav-list a').attributes.href;
7
7
  return (0, global_helper_1.parseIdFromUrl)(url);
8
8
  };
9
- exports.getId = getId;
10
- const getTitle = (el) => {
9
+ exports.getMovieId = getMovieId;
10
+ const getMovieTitle = (el) => {
11
11
  return el.querySelector('h1').innerText.split(`(`)[0].trim();
12
12
  };
13
- exports.getTitle = getTitle;
14
- const getGenres = (el) => {
13
+ exports.getMovieTitle = getMovieTitle;
14
+ const getMovieGenres = (el) => {
15
15
  const genresRaw = el.querySelector('.genres').textContent;
16
16
  return genresRaw.split(' / ');
17
17
  };
18
- exports.getGenres = getGenres;
19
- const getOrigins = (el) => {
18
+ exports.getMovieGenres = getMovieGenres;
19
+ const getMovieOrigins = (el) => {
20
20
  const originsRaw = el.querySelector('.origin').textContent;
21
21
  const origins = originsRaw.split(',')[0];
22
22
  return origins.split(' / ');
23
23
  };
24
- exports.getOrigins = getOrigins;
25
- const getColorRating = (bodyClasses) => {
24
+ exports.getMovieOrigins = getMovieOrigins;
25
+ const getMovieColorRating = (bodyClasses) => {
26
26
  return (0, global_helper_1.getColor)(bodyClasses[1]);
27
27
  };
28
- exports.getColorRating = getColorRating;
29
- const getRating = (el) => {
28
+ exports.getMovieColorRating = getMovieColorRating;
29
+ const getMovieRating = (el) => {
30
30
  const ratingRaw = el.querySelector('.film-rating-average').textContent;
31
31
  const rating = ratingRaw === null || ratingRaw === void 0 ? void 0 : ratingRaw.replace(/%/g, '').trim();
32
32
  const ratingInt = parseInt(rating);
@@ -37,8 +37,8 @@ const getRating = (el) => {
37
37
  return null;
38
38
  }
39
39
  };
40
- exports.getRating = getRating;
41
- const getRatingCount = (el) => {
40
+ exports.getMovieRating = getMovieRating;
41
+ const getMovieRatingCount = (el) => {
42
42
  var _a;
43
43
  const ratingCountRaw = (_a = el.querySelector('.box-rating-container .counter')) === null || _a === void 0 ? void 0 : _a.textContent;
44
44
  const ratingCount = +(ratingCountRaw === null || ratingCountRaw === void 0 ? void 0 : ratingCountRaw.replace(/[(\s)]/g, ''));
@@ -49,8 +49,8 @@ const getRatingCount = (el) => {
49
49
  return null;
50
50
  }
51
51
  };
52
- exports.getRatingCount = getRatingCount;
53
- const getYear = (el) => {
52
+ exports.getMovieRatingCount = getMovieRatingCount;
53
+ const getMovieYear = (el) => {
54
54
  try {
55
55
  const jsonLd = JSON.parse(el);
56
56
  return +jsonLd.dateCreated;
@@ -60,8 +60,8 @@ const getYear = (el) => {
60
60
  return null;
61
61
  }
62
62
  };
63
- exports.getYear = getYear;
64
- const getDuration = (jsonLdRaw, el) => {
63
+ exports.getMovieYear = getMovieYear;
64
+ const getMovieDuration = (jsonLdRaw, el) => {
65
65
  let duration = null;
66
66
  try {
67
67
  const jsonLd = JSON.parse(jsonLdRaw);
@@ -88,8 +88,8 @@ const getDuration = (jsonLdRaw, el) => {
88
88
  }
89
89
  }
90
90
  };
91
- exports.getDuration = getDuration;
92
- const getTitlesOther = (el) => {
91
+ exports.getMovieDuration = getMovieDuration;
92
+ const getMovieTitlesOther = (el) => {
93
93
  const namesNode = el.querySelectorAll('.film-names li');
94
94
  if (!namesNode.length) {
95
95
  return [];
@@ -109,8 +109,8 @@ const getTitlesOther = (el) => {
109
109
  });
110
110
  return titlesOther.filter((x) => x);
111
111
  };
112
- exports.getTitlesOther = getTitlesOther;
113
- const getPoster = (el) => {
112
+ exports.getMovieTitlesOther = getMovieTitlesOther;
113
+ const getMoviePoster = (el) => {
114
114
  var _a;
115
115
  const poster = el.querySelector('.film-posters img');
116
116
  // Resolve empty image
@@ -129,8 +129,8 @@ const getPoster = (el) => {
129
129
  return null;
130
130
  }
131
131
  };
132
- exports.getPoster = getPoster;
133
- const getRandomPhoto = (el) => {
132
+ exports.getMoviePoster = getMoviePoster;
133
+ const getMovieRandomPhoto = (el) => {
134
134
  var _a;
135
135
  const imageNode = el.querySelector('.gallery-item picture img');
136
136
  const image = (_a = imageNode === null || imageNode === void 0 ? void 0 : imageNode.attributes) === null || _a === void 0 ? void 0 : _a.src;
@@ -141,8 +141,8 @@ const getRandomPhoto = (el) => {
141
141
  return null;
142
142
  }
143
143
  };
144
- exports.getRandomPhoto = getRandomPhoto;
145
- const getTrivia = (el) => {
144
+ exports.getMovieRandomPhoto = getMovieRandomPhoto;
145
+ const getMovieTrivia = (el) => {
146
146
  const triviaNodes = el.querySelectorAll('.article-trivia ul li');
147
147
  if (triviaNodes === null || triviaNodes === void 0 ? void 0 : triviaNodes.length) {
148
148
  return triviaNodes.map((node) => node.textContent.trim().replace(/(\r\n|\n|\r|\t)/gm, ''));
@@ -151,14 +151,14 @@ const getTrivia = (el) => {
151
151
  return null;
152
152
  }
153
153
  };
154
- exports.getTrivia = getTrivia;
155
- const getDescriptions = (el) => {
154
+ exports.getMovieTrivia = getMovieTrivia;
155
+ const getMovieDescriptions = (el) => {
156
156
  return el
157
157
  .querySelectorAll('.body--plots .plot-full p, .body--plots .plots .plots-item p')
158
158
  .map((movie) => { var _a; return (_a = movie.textContent) === null || _a === void 0 ? void 0 : _a.trim().replace(/(\r\n|\n|\r|\t)/gm, ''); });
159
159
  };
160
- exports.getDescriptions = getDescriptions;
161
- const parsePeople = (el) => {
160
+ exports.getMovieDescriptions = getMovieDescriptions;
161
+ const parseMoviePeople = (el) => {
162
162
  const people = el.querySelectorAll('a');
163
163
  return (people
164
164
  // Filter out "more" links
@@ -171,25 +171,24 @@ const parsePeople = (el) => {
171
171
  };
172
172
  }));
173
173
  };
174
- exports.parsePeople = parsePeople;
175
- const getGroup = (el, group) => {
174
+ const getMovieGroup = (el, group) => {
176
175
  const creators = el.querySelectorAll('.creators h4');
177
176
  const element = creators.filter((elem) => elem.textContent.trim().includes(group))[0];
178
177
  if (element === null || element === void 0 ? void 0 : element.parentNode) {
179
- return (0, exports.parsePeople)(element.parentNode);
178
+ return parseMoviePeople(element.parentNode);
180
179
  }
181
180
  else {
182
181
  return [];
183
182
  }
184
183
  };
185
- exports.getGroup = getGroup;
186
- const getType = (el) => {
184
+ exports.getMovieGroup = getMovieGroup;
185
+ const getMovieType = (el) => {
187
186
  var _a;
188
187
  const type = el.querySelector('.film-header-name .type');
189
188
  return ((_a = type === null || type === void 0 ? void 0 : type.innerText) === null || _a === void 0 ? void 0 : _a.replace(/[{()}]/g, '')) || 'film';
190
189
  };
191
- exports.getType = getType;
192
- const getVods = (el) => {
190
+ exports.getMovieType = getMovieType;
191
+ const getMovieVods = (el) => {
193
192
  let vods = [];
194
193
  if (el) {
195
194
  const buttons = el.querySelectorAll('.box-buttons .button');
@@ -203,17 +202,16 @@ const getVods = (el) => {
203
202
  }
204
203
  return vods.length ? vods : [];
205
204
  };
206
- exports.getVods = getVods;
205
+ exports.getMovieVods = getMovieVods;
207
206
  // Get box content
208
207
  const getBoxContent = (el, box) => {
209
208
  var _a;
210
209
  const headers = el.querySelectorAll('section.box .box-header');
211
210
  return (_a = headers.find((header) => header.querySelector('h3').textContent.trim().includes(box))) === null || _a === void 0 ? void 0 : _a.parentNode;
212
211
  };
213
- exports.getBoxContent = getBoxContent;
214
- const getBoxMovies = (el, boxName) => {
212
+ const getMovieBoxMovies = (el, boxName) => {
215
213
  const movieListItem = [];
216
- const box = (0, exports.getBoxContent)(el, boxName);
214
+ const box = getBoxContent(el, boxName);
217
215
  const movieTitleNodes = box === null || box === void 0 ? void 0 : box.querySelectorAll('.article-header .film-title-name');
218
216
  if (movieTitleNodes === null || movieTitleNodes === void 0 ? void 0 : movieTitleNodes.length) {
219
217
  for (const item of movieTitleNodes) {
@@ -226,8 +224,8 @@ const getBoxMovies = (el, boxName) => {
226
224
  }
227
225
  return movieListItem;
228
226
  };
229
- exports.getBoxMovies = getBoxMovies;
230
- const getPremieres = (el) => {
227
+ exports.getMovieBoxMovies = getMovieBoxMovies;
228
+ const getMoviePremieres = (el) => {
231
229
  var _a, _b;
232
230
  const premiereNodes = el.querySelectorAll('.box-premieres li');
233
231
  const premiere = [];
@@ -245,9 +243,9 @@ const getPremieres = (el) => {
245
243
  }
246
244
  return premiere;
247
245
  };
248
- exports.getPremieres = getPremieres;
249
- const getTags = (el) => {
246
+ exports.getMoviePremieres = getMoviePremieres;
247
+ const getMovieTags = (el) => {
250
248
  const tagsRaw = el.querySelectorAll('.box-content a[href*="/podrobne-vyhledavani/?tag="]');
251
249
  return tagsRaw.map((tag) => tag.textContent);
252
250
  };
253
- exports.getTags = getTags;
251
+ exports.getMovieTags = getMovieTags;
@@ -1,35 +1,35 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parsePeople = exports.getOrigins = exports.getPoster = exports.getColorRating = exports.getUrl = exports.getYear = exports.getTitle = exports.getType = void 0;
3
+ exports.parseSearchPeople = exports.getSearchOrigins = exports.getSearchPoster = exports.getSearchColorRating = exports.getSearchUrl = exports.getSearchYear = exports.getSearchTitle = exports.getSearchType = void 0;
4
4
  const global_helper_1 = require("./global.helper");
5
- const getType = (el) => {
5
+ const getSearchType = (el) => {
6
6
  const type = el.querySelectorAll('.film-title-info .info')[1];
7
7
  return ((type === null || type === void 0 ? void 0 : type.innerText.replace(/[{()}]/g, '')) || 'film');
8
8
  };
9
- exports.getType = getType;
10
- const getTitle = (el) => {
9
+ exports.getSearchType = getSearchType;
10
+ const getSearchTitle = (el) => {
11
11
  return el.querySelector('.film-title-name').text;
12
12
  };
13
- exports.getTitle = getTitle;
14
- const getYear = (el) => {
13
+ exports.getSearchTitle = getSearchTitle;
14
+ const getSearchYear = (el) => {
15
15
  var _a;
16
16
  return +((_a = el.querySelectorAll('.film-title-info .info')[0]) === null || _a === void 0 ? void 0 : _a.innerText.replace(/[{()}]/g, ''));
17
17
  };
18
- exports.getYear = getYear;
19
- const getUrl = (el) => {
18
+ exports.getSearchYear = getSearchYear;
19
+ const getSearchUrl = (el) => {
20
20
  return el.querySelector('.film-title-name').attributes.href;
21
21
  };
22
- exports.getUrl = getUrl;
23
- const getColorRating = (el) => {
22
+ exports.getSearchUrl = getSearchUrl;
23
+ const getSearchColorRating = (el) => {
24
24
  return (0, global_helper_1.parseColor)(el.querySelector('.article-header i.icon').classNames.split(' ').pop());
25
25
  };
26
- exports.getColorRating = getColorRating;
27
- const getPoster = (el) => {
26
+ exports.getSearchColorRating = getSearchColorRating;
27
+ const getSearchPoster = (el) => {
28
28
  const image = el.querySelector('img').attributes.src;
29
29
  return (0, global_helper_1.addProtocol)(image);
30
30
  };
31
- exports.getPoster = getPoster;
32
- const getOrigins = (el) => {
31
+ exports.getSearchPoster = getSearchPoster;
32
+ const getSearchOrigins = (el) => {
33
33
  var _a, _b;
34
34
  const originsRaw = (_a = el.querySelector('.article-content p .info')) === null || _a === void 0 ? void 0 : _a.text;
35
35
  if (!originsRaw)
@@ -37,8 +37,8 @@ const getOrigins = (el) => {
37
37
  const originsAll = (_b = originsRaw === null || originsRaw === void 0 ? void 0 : originsRaw.split(', ')) === null || _b === void 0 ? void 0 : _b[0];
38
38
  return originsAll === null || originsAll === void 0 ? void 0 : originsAll.split('/').map((country) => country.trim());
39
39
  };
40
- exports.getOrigins = getOrigins;
41
- const parsePeople = (el, type) => {
40
+ exports.getSearchOrigins = getSearchOrigins;
41
+ const parseSearchPeople = (el, type) => {
42
42
  let who;
43
43
  if (type === 'directors')
44
44
  who = 'Režie:';
@@ -59,4 +59,4 @@ const parsePeople = (el, type) => {
59
59
  return [];
60
60
  }
61
61
  };
62
- exports.parsePeople = parsePeople;
62
+ exports.parseSearchPeople = parseSearchPeople;
@@ -1,46 +1,46 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sleep = exports.parseColor = exports.getUrl = exports.getDate = exports.getColorRating = exports.getYear = exports.getTitle = exports.getType = exports.getUserRating = exports.getId = void 0;
3
+ exports.sleep = exports.getUserRatingUrl = exports.getUserRatingDate = exports.getUserRatingColorRating = exports.getUserRatingYear = exports.getUserRatingTitle = exports.getUserRatingType = exports.getUserRating = exports.getUserRatingId = void 0;
4
4
  const global_helper_1 = require("./global.helper");
5
- const getId = (el) => {
5
+ const getUserRatingId = (el) => {
6
6
  const url = el.querySelector('td.name .film-title-name').attributes.href;
7
7
  return (0, global_helper_1.parseIdFromUrl)(url);
8
8
  };
9
- exports.getId = getId;
9
+ exports.getUserRatingId = getUserRatingId;
10
10
  const getUserRating = (el) => {
11
11
  const ratingText = el.querySelector('td.star-rating-only .stars').classNames.split(' ').pop();
12
12
  const rating = ratingText.includes('stars-') ? +ratingText.split('-').pop() : 0;
13
13
  return rating;
14
14
  };
15
15
  exports.getUserRating = getUserRating;
16
- const getType = (el) => {
16
+ const getUserRatingType = (el) => {
17
17
  const typeText = el.querySelectorAll('td.name .film-title-info .info');
18
18
  return (typeText.length > 1 ? typeText[1].text.slice(1, -1) : 'film');
19
19
  };
20
- exports.getType = getType;
21
- const getTitle = (el) => {
20
+ exports.getUserRatingType = getUserRatingType;
21
+ const getUserRatingTitle = (el) => {
22
22
  return el.querySelector('td.name .film-title-name').text;
23
23
  };
24
- exports.getTitle = getTitle;
25
- const getYear = (el) => {
24
+ exports.getUserRatingTitle = getUserRatingTitle;
25
+ const getUserRatingYear = (el) => {
26
26
  var _a;
27
27
  return +((_a = el.querySelectorAll('td.name .film-title-info .info')[0]) === null || _a === void 0 ? void 0 : _a.text.slice(1, -1)) || null;
28
28
  };
29
- exports.getYear = getYear;
30
- const getColorRating = (el) => {
31
- const color = (0, exports.parseColor)(el.querySelector('td.name .icon').classNames.split(' ').pop());
29
+ exports.getUserRatingYear = getUserRatingYear;
30
+ const getUserRatingColorRating = (el) => {
31
+ const color = parseColor(el.querySelector('td.name .icon').classNames.split(' ').pop());
32
32
  return color;
33
33
  };
34
- exports.getColorRating = getColorRating;
35
- const getDate = (el) => {
34
+ exports.getUserRatingColorRating = getUserRatingColorRating;
35
+ const getUserRatingDate = (el) => {
36
36
  return el.querySelector('td.date-only').text.trim();
37
37
  };
38
- exports.getDate = getDate;
39
- const getUrl = (el) => {
38
+ exports.getUserRatingDate = getUserRatingDate;
39
+ const getUserRatingUrl = (el) => {
40
40
  const url = el.querySelector('td.name .film-title-name').attributes.href;
41
41
  return `https://www.csfd.cz${url}`;
42
42
  };
43
- exports.getUrl = getUrl;
43
+ exports.getUserRatingUrl = getUserRatingUrl;
44
44
  const parseColor = (quality) => {
45
45
  switch (quality) {
46
46
  case 'lightgrey':
@@ -55,7 +55,6 @@ const parseColor = (quality) => {
55
55
  return 'unknown';
56
56
  }
57
57
  };
58
- exports.parseColor = parseColor;
59
58
  // Sleep in loop
60
59
  const sleep = (ms) => new Promise((res) => setTimeout(res, ms));
61
60
  exports.sleep = sleep;
package/cjs/index.js ADDED
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.csfd = exports.Csfd = void 0;
13
+ const cinema_service_1 = require("./services/cinema.service");
14
+ const creator_service_1 = require("./services/creator.service");
15
+ const movie_service_1 = require("./services/movie.service");
16
+ const search_service_1 = require("./services/search.service");
17
+ const user_ratings_service_1 = require("./services/user-ratings.service");
18
+ class Csfd {
19
+ constructor(userRatingsService, movieService, creatorService, searchService, cinemaService) {
20
+ this.userRatingsService = userRatingsService;
21
+ this.movieService = movieService;
22
+ this.creatorService = creatorService;
23
+ this.searchService = searchService;
24
+ this.cinemaService = cinemaService;
25
+ }
26
+ userRatings(user, config) {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ return this.userRatingsService.userRatings(user, config);
29
+ });
30
+ }
31
+ movie(movie) {
32
+ return __awaiter(this, void 0, void 0, function* () {
33
+ return this.movieService.movie(+movie);
34
+ });
35
+ }
36
+ creator(creator) {
37
+ return __awaiter(this, void 0, void 0, function* () {
38
+ return this.creatorService.creator(+creator);
39
+ });
40
+ }
41
+ search(text) {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ return this.searchService.search(text);
44
+ });
45
+ }
46
+ cinema(district, period) {
47
+ return __awaiter(this, void 0, void 0, function* () {
48
+ return this.cinemaService.cinemas(+district, period);
49
+ });
50
+ }
51
+ }
52
+ exports.Csfd = Csfd;
53
+ const movieScraper = new movie_service_1.MovieScraper();
54
+ const userRatingsScraper = new user_ratings_service_1.UserRatingsScraper();
55
+ const cinemaScraper = new cinema_service_1.CinemaScraper();
56
+ const creatorScraper = new creator_service_1.CreatorScraper();
57
+ const searchScraper = new search_service_1.SearchScraper();
58
+ exports.csfd = new Csfd(userRatingsScraper, movieScraper, creatorScraper, searchScraper, cinemaScraper);