/* * Run on https://www.humblebundle.com/home/library * Global variable `gamekeys` is available on the Library page * */ Promise.all(gamekeys.map(key => { return new Promise((resolve, reject) => { $.ajax({ url: `https://www.humblebundle.com/api/v1/order/${key}?all_tpkds=true` }).done(data => resolve(data)) }) })) .then(results => { let keys = [] results.forEach(result => { keys = keys.concat(result.tpkd_dict.all_tpks.map(tpk => { return { name: tpk.human_name, key_type: tpk.key_type_human_name, redeemed: tpk.redeemed_key_val } })) }) return keys }) .then(keys => keys.sort((a ,b) => (a.name < b.name) ? -1 : 1)) .then(keys => { keys.forEach(key => { console.log(`"${key.name}", ${key.key_type}, ${key.redeemed}`) }) })