dckc / finquick

family finance tools of a closet librarian
https://www.madmode.com/search/label/finances/
MIT License
12 stars 4 forks source link

coinbase: scrape transaction history #29

Open dckc opened 2 years ago

dckc commented 2 years ago

I downloaded a "complete" transaction report, but the transactions don't add up to the balance. It seems to be missing "transfers".

But I seem to be able to compute the balance using a DOM query:

acs = document.querySelectorAll('*[data-element="AmountContainer"]')
acs.length // 245
ns = [...acs].map(ac => Number(ac.textContent.split(' ')[0].replace('−', '-').replace('+', '').replace(',', '')))
sum = ns => ns.reduce((acc, x) => acc + x, 0)
sum(ns)

To get associated transaction info, I'm starting with...

tis = document.querySelectorAll('*[data-component="TransactionItem"]')
dckc commented 2 years ago
txInfo = tr => ({ date: tr.getAttribute('aria-label').replace(' transaction details', ''), title: tr.querySelector('*[data-element="TitleWrapper"] span').textContent, status: tr.querySelector('*[data-element="TitleWrapper"] p').textContent, amount: Number(tr.querySelector('*[data-element="AmountContainer"]').textContent.split(' ')[0].replace('−', '-').replace('+', '').replace(',', '')) })
txs = [...tis].map(txInfo)
JSON.stringify(txs)