mine market capitalization as well

This commit is contained in:
2020-05-14 10:16:42 +02:00
parent bd71f90f6b
commit abd8af9ae6

View File

@@ -28,6 +28,7 @@ const getFullData = async url => {
var resourceList = await fetch(resourceAPI); var resourceList = await fetch(resourceAPI);
resourceList = await resourceList.json(); resourceList = await resourceList.json();
let finalData = []; let finalData = [];
let marketCap = [];
for (let t1 = 0; t1 < resourceList.length; t1++) { for (let t1 = 0; t1 < resourceList.length; t1++) {
console.log(`fetching resource ${t1 + 1}/${resourceList.length}`) console.log(`fetching resource ${t1 + 1}/${resourceList.length}`)
var marketData = await fetch(exchangeAPI + resourceList[t1].db_letter, { var marketData = await fetch(exchangeAPI + resourceList[t1].db_letter, {
@@ -38,25 +39,40 @@ const getFullData = async url => {
if (marketData.status === 200) { if (marketData.status === 200) {
marketData = await marketData.json(); marketData = await marketData.json();
let foundQ = [false, false, false, false, false, false, false]; 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 = []; let res = [];
for (let t2 = 0; t2 < marketData.length; t2++) { for (let t2 = 0; t2 < marketData.length; t2++) {
if (!foundQ[marketData[t2].quality]) { if (marketData[t2].quality <= 7) {
foundQ[marketData[t2].quality] = true; if (!foundQ[marketData[t2].quality]) {
res.push(marketData[t2]); 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++) { for (let t3 = 0; t3 < res.length; t3++) {
finalData.push(res[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 { } else {
throw ("fetch returned status code " + marketData.status); throw ("fetch returned status code " + marketData.status);
} }
} }
return finalData; return { data: finalData, cap: marketCap };
} }
const storeFullData = async marketData => { const storeFullData = async marketData => {
marketData = await marketData; marketData = await marketData;
marketCap = marketData["cap"];
marketData = marketData["data"];
connection.beginTransaction(function (err) { connection.beginTransaction(function (err) {
if (err) { throw 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) { connection.commit(function (err) {
if (err) { if (err) {
return connection.rollback(function () { return connection.rollback(function () {