127.0.0.1:8000 budget / master server / external_apis / gmail / email_parsers / nelnet_loan.js
master

Tree @master (Download .tar.gz)

nelnet_loan.js @masterraw · history · blame

const {
  get_date_header_parser,
  parsers_html_wrapper
} = require('./helpers');
const time = require('../../../utils/time');

module.exports = {
  q: `from:nelnetnoreply@nelnet.studentaid.gov subject:"Your student loan billing statement is now available"`,
  headers: get_date_header_parser('created_date'),
  html: parsers_html_wrapper(function (root) {
    const transaction = {};
    let values_to_match_remaining = 2;

    const trs = root.querySelectorAll('tr');
    for (const tr of trs) {
      for (const div of tr.querySelectorAll('div')) {
        console.log(div.innerText);
        if (div.innerText.startsWith('Amount Due')) {
          transaction.value = div.innerText.split(':')[1].replace(' ', '').trim().replace('$', '').replace(',', '') * -1;
          if (--values_to_match_remaining === 0) return transaction;
        } else if (div.innerText.startsWith('Due Date')) {
          transaction.date = time.iso(time.now(div.innerText.split(':')[1].replace(' ', '').trim(), 'MM/D/YYYY'));
          if (--values_to_match_remaining === 0) return transaction;
        }
      }
    }

    console.error('NelNet Statement parser failed to find all data');
    return transaction;
  })
};