UNPKG

afacinemas

Version:

> A web scraper library for [AFA Cinemas](http://www.afacinemas.com.br/)

90 lines 3.59 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.MovieScraper = void 0; const afa_scraper_1 = require("./afa-scraper"); class MovieScraper extends afa_scraper_1.AfaScraper { constructor(movieId) { super(); this.movieId = movieId; this.url = `${this.baseUrl}filmes.php?idf=${this.movieId}`; console.debug(this.url); } extract() { return __awaiter(this, void 0, void 0, function* () { yield this.loadContent(); const section = this.$('section.boxbrevefilme'); const id = this.movieId; const posterUrl = this.getMoviePosterUrl(section); const title = this.getMovieTitle(section); const releaseDate = this.getMovieReleaseDate(section); const description = this.getMovieDescription(section); const classification = this.getMovieClassification(section); const duration = this.getMovieDuration(section); const trailerUrl = this.getTrailerUrl(section); return { id, posterUrl, title, releaseDate, description, classification, duration, trailerUrl, }; }); } getMoviePosterUrl(item) { const src = this.$(item).find('img').attr('src'); return `${this.baseUrl}${src}`; } getMovieTitle(item) { const title = this.$(item).find('h1').text(); return title; } getMovieReleaseDate(item) { const releaseDate = this.$(item).find('section.databreve').text().trim(); return releaseDate; } getMovieDescription(item) { let description = this.$(item) .find('section.brevedadosfilme p') .eq(1) .text() .trim(); description = description.replace(/\s+/g, ' ').replace('Sinopse: ', ''); return description; } getMovieClassification(item) { let classification = this.$(item).find('img.classificao').attr('src'); classification = classification.split('.').slice(0, -1).join('.'); classification = classification.split('/').slice(-1)[0]; if (classification.match(/^\d+$/)) { classification = `${classification} ANOS`; } return classification.toUpperCase(); } getMovieDuration(item) { const duration = this.$(item) .find('section.brevedadosfilme p') .first() .text() .trim(); return duration; } getTrailerUrl(item) { let trailerUrl = this.$(item).find('iframe.frametrailer').attr('src') || ''; trailerUrl = trailerUrl.replace('embed/', 'watch?v='); return trailerUrl; } } exports.MovieScraper = MovieScraper; //# sourceMappingURL=movie-scraper.js.map