Si queréis ver cuánto habéis gastado en bundles de Humble en los ocho años que llevan de vida:
- Váis a https://www.humblebundle.com/home/purchases
- F12 para ir a las dev tools de Chrome
- Pestaña "Consola"
- Pegáis este código, esperáis un par de segundos y os saldrá lo que habéis gastado en Humble (sin contar monthlies).
EUR_USD_FACTOR = 1.13
sumPage = () => +[...document.querySelectorAll('.results .total')].slice(1, -1).map(s => {
eur = s[0] === '€'
s = s.textContent.replace(/,/g, '.')
n = +s.replace(/[^0-9.]+/g, '')
if (eur) return n * EUR_USD_FACTOR
return n
}).reduce((a, v) => a + v, 0).toFixed(2)
goToPage = p => {
el = document.querySelector(`.jump-to-page[data-index="${p}"]`)
if (!el) return false
el.click()
return true
}
goAndSumPage = p => {
page = goToPage(p)
if (page) return sumPage()
return false
}
delay = ms => new Promise(res => setTimeout(res, ms))
run = async (counter = 0, sum = 0) => {
result = goAndSumPage(counter++)
if (!result) return sum
sum += result
await delay(500)
return run(counter, sum)
}
run().then(n => `Total spent on Humble Bundle: $${n} (${n / EUR_USD_FACTOR} euro)`).then(console.log)
Para los monthlies se puede hacer yendo a https://humblebundle.com/user/subscriptions/humble_monthly/billing y siguiendo el mismo proceso con este código:
EUR_USD_FACTOR = 1.13
run = async () => +[...document.querySelectorAll('.billing-history .amount')].map(s => {
eur = s[0] === '€'
s = s.textContent.replace(/,/g, '.')
n = +s.replace(/[^0-9.]+/g, '')
if (eur) return n * EUR_USD_FACTOR
return n
}).reduce((a, v) => a + v, 0).toFixed(2)
run().then(n => `Total spent on Humble Monthly: $${n} (${(n / EUR_USD_FACTOR).toFixed(2).replace('.', ',')}€)`).then(console.log)