add large fetch function
fetching all lowest prices for all qualities of all products
This commit is contained in:
64
smallfetch.js
Normal file
64
smallfetch.js
Normal file
@@ -0,0 +1,64 @@
|
||||
const fetch = require("node-fetch");
|
||||
var mysql = require('mysql');
|
||||
var connection = mysql.createConnection({
|
||||
host: 'localhost',
|
||||
user: 'simcompanies',
|
||||
password: '',
|
||||
database: 'simcompanies'
|
||||
});
|
||||
|
||||
const marketAPI = "https://www.simcompanies.com/api/v1/market-ticker/";
|
||||
|
||||
var date = new Date();
|
||||
const actualdate = new Date();
|
||||
//don't ask me why, but simcompanies uses yesterday to get the values for today...
|
||||
date.setDate(date.getDate() - 1);
|
||||
|
||||
const url = marketAPI + date.toISOString() + "/";
|
||||
|
||||
//function to get marketprices from API:
|
||||
const getData = async url => {
|
||||
var marketData = await fetch(url);
|
||||
if (marketData.status === 200) {
|
||||
marketData = await marketData.text();
|
||||
marketData = await JSON.parse(marketData);
|
||||
return marketData;
|
||||
} else {
|
||||
throw ("fetch returned status code " + marketData.status);
|
||||
}
|
||||
}
|
||||
|
||||
const storeData = async marketData => {
|
||||
marketData = await marketData;
|
||||
|
||||
connection.beginTransaction(function (err) {
|
||||
if (err) { throw err; }
|
||||
|
||||
for (var data in marketData) {
|
||||
const kind = mysql.escape(marketData[data]["kind"]);
|
||||
const price = mysql.escape(marketData[data]["price"]);
|
||||
const storedate = `FROM_UNIXTIME(${Math.round(actualdate.valueOf() / 1000)})`;
|
||||
const querystring = `INSERT INTO market (kind,price,time) VALUES (${kind},${price},${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 () {
|
||||
connection.end();
|
||||
throw err;
|
||||
});
|
||||
} else {
|
||||
connection.end();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
storeData(getData(url));
|
||||
Reference in New Issue
Block a user