Last active
December 23, 2016 16:54
-
-
Save spig/5d3e80b262b564e1e21ef0cfe79483eb to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name Remove Kids Accounts from Total Balance | |
// @namespace http://stevespiga.rel.li/ | |
// @version 0.2 | |
// @description remove kid account balances from total balances - money and savings | |
// @author Steve Spigarelli | |
// @match https://secure.capitalone360.com/myaccount/banking/account_summary.vm | |
// @grant none | |
// ==/UserScript== | |
(function() { | |
'use strict'; | |
var total = document.querySelector('#m_total_deposit'); | |
var totalBalanceTD = total.querySelector('td.m_balance'); | |
var totalAvailableTD = total.querySelector('td.m_available'); | |
var totalBalance = getTotalBalance(); | |
var totalAvailable = getTotalAvailableBalance(); | |
function hasKidsAccount(element) { | |
var foundKidsAccount = false; | |
element.querySelectorAll('a').forEach(a => { | |
if (a.textContent.search(/Kids Saving/) !== -1 || a.textContent.search(/MONEY/) !== -1) { | |
foundKidsAccount = true; | |
} | |
}); | |
return foundKidsAccount; | |
} | |
function getBalance(element) { | |
return Number.parseFloat(element.querySelector('td.m_balance > a').textContent.trim()); | |
} | |
function getAvailable(element) { | |
return Number.parseFloat(element.querySelector('td.m_available > a').textContent.trim()); | |
} | |
function adjustTotalBalance(amount) { | |
totalBalance = totalBalance + amount; | |
totalBalanceTD.textContent = totalBalance.toLocaleString('en-US', { style: 'currency', currency: 'USD' }); | |
} | |
function adjustAvailableBalance(amount) { | |
totalAvailable = totalAvailable + amount; | |
totalAvailableTD.textContent = totalAvailable.toLocaleString('en-US', { style: 'currency', currency: 'USD' }); | |
} | |
function getTotalBalance() { | |
var totalBalance = totalBalanceTD.textContent.trim(); | |
var totalBalanceMatches = totalBalance.match(/[0-9,.]+/); | |
if (totalBalanceMatches.length > 0) { | |
totalBalance = totalBalanceMatches[0].replace(/,/, ''); | |
} | |
return Number.parseFloat(totalBalance); | |
} | |
function getTotalAvailableBalance() { | |
var totalAvailable = totalAvailableTD.textContent.trim(); | |
var totalAvailableMatches = totalAvailable.match(/[0-9,.]+/); | |
if (totalAvailableMatches.length > 0) { | |
totalAvailable = totalAvailableMatches[0].replace(/,/, ''); | |
} | |
return Number.parseFloat(totalAvailable); | |
} | |
document.querySelectorAll('tr.m_item_deposit').forEach(e => { | |
if (hasKidsAccount(e)) { | |
adjustTotalBalance(-1 * getBalance(e)); | |
adjustAvailableBalance(-1 * getAvailable(e)); | |
//e.parentNode.removeChild(e); | |
} | |
}); | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment