UNPKG

check-visa

Version:

German National Visa status check for German Embassy in Moscow

66 lines (50 loc) 1.85 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.getPdfLink = getPdfLink; exports.getPdfFile = getPdfFile; var _async = require('async'); var _async2 = _interopRequireDefault(_async); var _cheerio = require('cheerio'); var _cheerio2 = _interopRequireDefault(_cheerio); var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); var _request = require('request'); var _request2 = _interopRequireDefault(_request); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var EMBASSY = 'http://www.germania.diplo.de'; var VISA_PAGE = EMBASSY + '/Vertretung/russland/ru/02-mosk/1-visa/3-merkblaetter/nationale-visa/0-nationale-visa.html'; function requestPageWithPdfLink(callback, results) { (0, _request2.default)(VISA_PAGE, function (error, response, body) { if (error || response.statusCode !== 200) { return callback(error, null); } var $ = _cheerio2.default.load(body); var downloadPdfLink = $('a.download').map(function (idx, link) { return $(link).attr('href'); }).filter(function (idx, href) { return href.includes('1entschiedenevisumantraege'); }).get(0); callback(null, '' + EMBASSY + downloadPdfLink); }); } function getPdfLink() { return new Promise(function (resolve, reject) { _async2.default.retry({ times: 3, interval: 200 }, requestPageWithPdfLink, function (err, result) { if (err) { return reject(err); } resolve(result); }); }); } function getPdfFile(linkToFile) { return new Promise(function (resolve, reject) { _request2.default.get(linkToFile).on('error', function (error) { return reject(error); }).pipe(_fs2.default.createWriteStream('test.pdf')).on('finish', function () { return resolve('test.pdf'); }); }); }