check-visa
Version:
German National Visa status check for German Embassy in Moscow
66 lines (50 loc) • 1.85 kB
JavaScript
;
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');
});
});
}