first
This commit is contained in:
52
readdata.js
Normal file
52
readdata.js
Normal file
@@ -0,0 +1,52 @@
|
||||
import axios from 'axios'
|
||||
import * as fs from 'fs'
|
||||
import { logit, logerror} from'./logit.js'
|
||||
import { DateTime } from 'luxon'
|
||||
const API_URL = 'https://api.sensor.community/static/v1/data.json'; // URL to API on 'luftdaten.info'
|
||||
const SAVE_NAME = 'data/aktdata.json'; // filename for actual data
|
||||
|
||||
let LIVE = (process.env.LIVE == "true") || true
|
||||
export let statistics = {};
|
||||
|
||||
export const doReadfromAPI = async () => {
|
||||
logit(`LIVE = ${LIVE}`)
|
||||
let start = DateTime.now()
|
||||
let data = []
|
||||
if (LIVE) {
|
||||
logit(`Start Reading from API`)
|
||||
let body
|
||||
for(let count = 1; count <= 3; count++) {
|
||||
try {
|
||||
logit(`Try - ${count}`)
|
||||
let ret = await axios(API_URL, {timeout: 10000})
|
||||
if (ret.status != 200) {
|
||||
continue
|
||||
}
|
||||
data = ret.data
|
||||
saveDatatoFile(SAVE_NAME, JSON.stringify(data))
|
||||
break
|
||||
} catch (e) {
|
||||
logerror(`doReadfromAPI ${e}`)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
logit('Start using data on disk')
|
||||
data = readDatafromFile(SAVE_NAME)
|
||||
}
|
||||
statistics.readInTime = start.diffNow('seconds').toObject().seconds * -1
|
||||
statistics.entries = data.length
|
||||
logit(`ReadIn-Time: ${statistics.readInTime} sec`)
|
||||
return data
|
||||
}
|
||||
|
||||
|
||||
// die Daten in eimnr Datei zwischenspeichern
|
||||
function saveDatatoFile(fn, data) {
|
||||
fs.writeFileSync(fn, data)
|
||||
}
|
||||
|
||||
// Daten wieder vom File lesen
|
||||
function readDatafromFile(fn) {
|
||||
return JSON.parse(fs.readFileSync(fn))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user