node-csfd-api 3.0.0-next.0 → 3.0.0-next.1

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 CHANGED
@@ -340,7 +340,7 @@ _Note: You can not use both parameters 'includesOnly' and 'excludes'. Parameter
340
340
 
341
341
  - [Dafilms web extension](https://chrome.google.com/webstore/detail/dafilms/hgcgneddmgflnbmhkjnefiobjgobbmdm?hl=en) ([code](https://github.com/bartholomej/dafilms-ext)) – Parser for film ratings (web extension)
342
342
  - [bartweb.cz](https://bartweb.cz) – **Last seen** section (Firebase function)
343
- - KinoKlub – Mobile application for Aerofilms (native Adnroid + iOS application)
343
+ - KinoKlub – Mobile application for AeroFilms (native Android + iOS application)
344
344
 
345
345
  ## Roadmap
346
346
 
@@ -439,7 +439,7 @@ I DO NOT STORE ANY DATA. PERIOD.
439
439
 
440
440
  I physically can't. I have nowhere to store it. I don't even have a server database to store it. So even if Justin Bieber asked nicely to see your data, I wouldn't have anything to show him.
441
441
 
442
- That's why, with CSFD Api, what happens on your device stays on your device till disappear.
442
+ That's why, with node-csfd-api, what happens on your device stays on your device till disappear.
443
443
 
444
444
  ## License
445
445
 
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ // import fetch from 'cross-fetch';
2
3
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
4
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
5
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -8,12 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
9
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
10
  });
10
11
  };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
12
  Object.defineProperty(exports, "__esModule", { value: true });
15
13
  exports.fetchPage = void 0;
16
- const cross_fetch_1 = __importDefault(require("cross-fetch"));
17
14
  const USER_AGENTS = [
18
15
  'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36',
19
16
  'Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/87.0.4280.77 Mobile/15E148 Safari/604.1',
@@ -25,7 +22,7 @@ const headers = {
25
22
  };
26
23
  const fetchPage = (url) => __awaiter(void 0, void 0, void 0, function* () {
27
24
  try {
28
- const response = yield (0, cross_fetch_1.default)(url, { headers });
25
+ const response = yield fetch(url, { headers });
29
26
  if (response.status >= 400 && response.status < 600) {
30
27
  throw new Error(`node-csfd-api: Bad response ${response.status} for url: ${url}`);
31
28
  }
@@ -56,7 +56,8 @@ const parseBirthPlace = (text) => {
56
56
  };
57
57
  exports.parseBirthPlace = parseBirthPlace;
58
58
  const getFilms = (el) => {
59
- const filmNodes = el.querySelectorAll('.box:first-of-type table tr');
59
+ var _a;
60
+ const filmNodes = (_a = el.querySelectorAll('.box')[0]) === null || _a === void 0 ? void 0 : _a.querySelectorAll('table tr');
60
61
  let yearCache;
61
62
  const films = filmNodes.map((filmNode) => {
62
63
  var _a, _b, _c;
@@ -223,17 +223,20 @@ const getBoxMovies = (el, boxName) => {
223
223
  };
224
224
  exports.getBoxMovies = getBoxMovies;
225
225
  const getPremieres = (el) => {
226
- var _a;
227
- const premieresNode = el.querySelectorAll('.box-premieres li');
226
+ var _a, _b;
227
+ const premiereNodes = el.querySelectorAll('.box-premieres li');
228
228
  const premiere = [];
229
- for (const premiereNode of premieresNode) {
230
- const [date, ...company] = premiereNode.querySelector('p + span').attributes.title.split(' ');
231
- premiere.push({
232
- country: ((_a = premiereNode.querySelector('.flag')) === null || _a === void 0 ? void 0 : _a.attributes.title) || null,
233
- format: premiereNode.querySelector('p').textContent.trim().split(' od')[0],
234
- date,
235
- company: company.join(' ')
236
- });
229
+ for (const premiereNode of premiereNodes) {
230
+ const title = premiereNode.querySelector('p + span').attributes.title;
231
+ if (title) {
232
+ const [date, ...company] = title === null || title === void 0 ? void 0 : title.split(' ');
233
+ premiere.push({
234
+ country: ((_a = premiereNode.querySelector('.flag')) === null || _a === void 0 ? void 0 : _a.attributes.title) || null,
235
+ format: (_b = premiereNode.querySelector('p').textContent.trim()) === null || _b === void 0 ? void 0 : _b.split(' od')[0],
236
+ date,
237
+ company: company.join(' ')
238
+ });
239
+ }
237
240
  }
238
241
  return premiere;
239
242
  };
@@ -1,3 +1,4 @@
1
+ // import fetch from 'cross-fetch';
1
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -7,7 +8,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
9
  });
9
10
  };
10
- import fetch from 'cross-fetch';
11
11
  const USER_AGENTS = [
12
12
  'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36',
13
13
  'Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/87.0.4280.77 Mobile/15E148 Safari/604.1',
@@ -44,7 +44,8 @@ export const parseBirthPlace = (text) => {
44
44
  return text.trim().replace(/<br>/g, '').trim();
45
45
  };
46
46
  export const getFilms = (el) => {
47
- const filmNodes = el.querySelectorAll('.box:first-of-type table tr');
47
+ var _a;
48
+ const filmNodes = (_a = el.querySelectorAll('.box')[0]) === null || _a === void 0 ? void 0 : _a.querySelectorAll('table tr');
48
49
  let yearCache;
49
50
  const films = filmNodes.map((filmNode) => {
50
51
  var _a, _b, _c;
@@ -200,17 +200,20 @@ export const getBoxMovies = (el, boxName) => {
200
200
  return movieListItem;
201
201
  };
202
202
  export const getPremieres = (el) => {
203
- var _a;
204
- const premieresNode = el.querySelectorAll('.box-premieres li');
203
+ var _a, _b;
204
+ const premiereNodes = el.querySelectorAll('.box-premieres li');
205
205
  const premiere = [];
206
- for (const premiereNode of premieresNode) {
207
- const [date, ...company] = premiereNode.querySelector('p + span').attributes.title.split(' ');
208
- premiere.push({
209
- country: ((_a = premiereNode.querySelector('.flag')) === null || _a === void 0 ? void 0 : _a.attributes.title) || null,
210
- format: premiereNode.querySelector('p').textContent.trim().split(' od')[0],
211
- date,
212
- company: company.join(' ')
213
- });
206
+ for (const premiereNode of premiereNodes) {
207
+ const title = premiereNode.querySelector('p + span').attributes.title;
208
+ if (title) {
209
+ const [date, ...company] = title === null || title === void 0 ? void 0 : title.split(' ');
210
+ premiere.push({
211
+ country: ((_a = premiereNode.querySelector('.flag')) === null || _a === void 0 ? void 0 : _a.attributes.title) || null,
212
+ format: (_b = premiereNode.querySelector('p').textContent.trim()) === null || _b === void 0 ? void 0 : _b.split(' od')[0],
213
+ date,
214
+ company: company.join(' ')
215
+ });
216
+ }
214
217
  }
215
218
  return premiere;
216
219
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-csfd-api",
3
- "version": "3.0.0-next.0",
3
+ "version": "3.0.0-next.1",
4
4
  "description": "ČSFD API in JavaScript. Amazing NPM library for scrapping csfd.cz :)",
5
5
  "main": "./cjs/index.js",
6
6
  "author": "BART! <bart@bartweb.cz>",
@@ -25,7 +25,7 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "cross-fetch": "^3.1.5",
28
- "node-html-parser": "^5.3.3"
28
+ "node-html-parser": "^6.1.1"
29
29
  },
30
30
  "repository": {
31
31
  "url": "git+https://github.com/bartholomej/node-csfd-api.git",