UNPKG

docparse-scraper-nst

Version:

Node Zombie based scraper to scrape bills from the NStar (supplier code "NST)" website

70 lines (62 loc) 2 kB
var rk = require('required-keys'); module.exports = function(data, cb) { var keys = ['billIndex', 'numBills', 'currentLogin', 'accountIndex', 'accountNumber', 'bro', 'config', 'billNumbers', 'billNumber', 'billIndex', 'numBills', 'billDateString', 'supplierCode', 'logger']; var err = rk.nonNullSync(data, keys); if (err) { return cb(err); } var logger = data.logger; var checkData = { supplierCode: data.supplierCode, billNumber: data.billNumber, billNumbers: data.billNumbers, config: data.config, logger: logger }; var check = data.check; if (!check) { check = require('docparse-scraper-check-node'); } var selectBill = data.selectBill; if (!selectBill) { selectBill = require('./selectBill'); } var downloadBill = data.downloadBill; if (!downloadBill) { downloadBill = require('./downloadBill'); } var goToAccountHomepage = data.goToAccountHomepage; if (!goToAccountHomepage) { goToAccountHomepage = require('./goToAccountHomepage'); } check(checkData, function (err, reply) { if (err) { return cb(err); } if (!reply) { logger.debug('bill already download', { type: 'scraper', supplierCode: 'NST', username: data.currentLogin.username, accountIndex: data.accountIndex, numAccounts: data.numAccounts, billIndex: data.billIndex, numBills: data.numBills }); return cb(); } logger.debug('bill not yet download, downloading now', { type: 'scraper', supplierCode: 'NST', username: data.currentLogin.username, accountIndex: data.accountIndex, numAccounts: data.numAccounts, billIndex: data.billIndex, numBills: data.numBills }); selectBill(data, function (err, reply) { if (err) { return cb(err); } downloadBill(data, function (err, reply) { if (err) { return cb(err); } goToAccountHomepage(data, cb); }); // getCSV(data, cb); }); }); };