UNPKG

docparse-scraper-nst

Version:

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

39 lines (34 loc) 1.22 kB
var rk = require('required-keys'); module.exports = function (data, cb) { var keys = ['billDateString', 'bro']; var err = rk.truthySync(data, keys); if (err) { return cb(err); } var bro = data.bro; var atAccountHomepage = data.atAccountHomepage; if (!atAccountHomepage) { atAccountHomepage = require('./atAccountHomepage'); } var atPage = atAccountHomepage(bro); if (!atPage) { return cb('error selecting bill, not at account homepage when we should be'); } var goToPrintFriendlyPage = data.goToPrintFriendlyPage; if (!goToPrintFriendlyPage) { goToPrintFriendlyPage = require('./goToPrintFriendlyPage'); } var billDateString = data.billDateString; deselectAllBills(bro); bro.select('select[name=billDate]', billDateString, function (err, b) { bro.evaluate('document.querySelector(\'select[name="billDate"]\').form.submit()'); bro.wait(function (err, reply) { goToPrintFriendlyPage(data, cb); }); }); }; function deselectAllBills(bro) { var selectedOptions = bro.querySelectorAll('select[name=billDate] option'); selectedOptions.map(function (option) { var value = option.getAttribute('value'); option.removeAttribute('selected'); }); }