From abd8af9ae68c5c1fbbdfc0ecb3009f7b3e2852b5 Mon Sep 17 00:00:00 2001 From: Oliver Boehlk Date: Thu, 14 May 2020 10:16:42 +0200 Subject: [PATCH] mine market capitalization as well --- largefetch.js | 40 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/largefetch.js b/largefetch.js index 40c8be7..cdb5f49 100644 --- a/largefetch.js +++ b/largefetch.js @@ -28,6 +28,7 @@ const getFullData = async url => { var resourceList = await fetch(resourceAPI); resourceList = await resourceList.json(); let finalData = []; + let marketCap = []; for (let t1 = 0; t1 < resourceList.length; t1++) { console.log(`fetching resource ${t1 + 1}/${resourceList.length}`) var marketData = await fetch(exchangeAPI + resourceList[t1].db_letter, { @@ -38,25 +39,40 @@ const getFullData = async url => { if (marketData.status === 200) { marketData = await marketData.json(); let foundQ = [false, false, false, false, false, false, false]; + let mCapSum = [0, 0, 0, 0, 0, 0, 0]; + let mCapCount = [0, 0, 0, 0, 0, 0, 0]; let res = []; for (let t2 = 0; t2 < marketData.length; t2++) { - if (!foundQ[marketData[t2].quality]) { - foundQ[marketData[t2].quality] = true; - res.push(marketData[t2]); + if (marketData[t2].quality <= 7) { + if (!foundQ[marketData[t2].quality]) { + foundQ[marketData[t2].quality] = true; + res.push(marketData[t2]); + } + mCapSum[marketData[t2].quality] += marketData[t2].price * marketData[t2].quantity; + mCapCount[marketData[t2].quality] += marketData[t2].quantity; } } for (let t3 = 0; t3 < res.length; t3++) { finalData.push(res[t3]); + + marketCap.push({ + kind: resourceList[t1].db_letter, + quality: t3, + avgprice: mCapCount[t3] === 0 ? 0 : mCapSum[t3] / mCapCount[t3], + count: mCapCount[t3], + }) } } else { throw ("fetch returned status code " + marketData.status); } } - return finalData; + return { data: finalData, cap: marketCap }; } const storeFullData = async marketData => { marketData = await marketData; + marketCap = marketData["cap"]; + marketData = marketData["data"]; connection.beginTransaction(function (err) { if (err) { throw err; } @@ -75,6 +91,22 @@ const storeFullData = async marketData => { }); } + for (var data in marketCap) { + const kind = mysql.escape(marketCap[data]["kind"]); + const price = mysql.escape(marketCap[data]["avgprice"]); + const quality = mysql.escape(marketCap[data]["quality"]); + const amount = mysql.escape(marketCap[data]["count"]); + const storedate = `FROM_UNIXTIME(${Math.round(actualdate.valueOf() / 1000)})`; + const querystring = `INSERT INTO marketcap (kind,quality,price,amount,time) VALUES (${kind},${quality},${price},${amount},${storedate})`; + connection.query(querystring, function (error, results, fields) { + if (error) { + return connection.rollback(function () { + throw error; + }); + } + }); + } + connection.commit(function (err) { if (err) { return connection.rollback(function () {