Commit 36a4b59a authored by Eryk Leniart's avatar Eryk Leniart

Yet not working script

parent 0ef3506c
......@@ -3,20 +3,22 @@ import requests
import time
from tornado.ioloop import IOLoop
from functools import partial
from db import DDBstations, DDBtypes, DDBmeasurements, DDBlastmeasurements
from db import DDBstations, DDBtypes
from dateutil.parser import parse
import models
from tornado.gen import coroutine
def get_station_by_id(station_id, station_data):
for station in station_data:
if str(station['api_station_id']) == station_id:
return station['station_id']
return models.Station.get(station['station_id'])
def get_type_by_name(type_name, type_data):
for type in type_data:
if type['shortname'] == type_name:
return type['type_id']
return models.Type.get(type['type_id'])
def get_timestamp_from_datetime(datetime_string):
......@@ -24,33 +26,30 @@ def get_timestamp_from_datetime(datetime_string):
return time.mktime(dt.timetuple())
ioloop = IOLoop.instance()
measurements = DDBmeasurements()
last_measurements = DDBlastmeasurements()
stations = DDBstations()
types = DDBtypes()
@coroutine
def main(ioloop):
stations = DDBstations()
types = DDBtypes()
apiURL = "http://powietrze.malopolska.pl/_powietrzeapi/api/dane?act=danemiasta&ci_id=1"
apiURL = "http://powietrze.malopolska.pl/_powietrzeapi/api/dane?act=danemiasta&ci_id=1"
r = requests.get(apiURL)
actual_data = r.json()['dane']['actual']
r = requests.get(apiURL)
actual_data = r.json()['dane']['actual']
station_data = ioloop.run_sync(partial(stations.get_all))
type_data = ioloop.run_sync(partial(types.get_all))
station_data = ioloop.run_sync(partial(stations.get_all))
type_data = ioloop.run_sync(partial(types.get_all))
for station_measurements in actual_data:
for station_measurements in actual_data:
for measurement in station_measurements['details']:
try:
ready_station_id = get_station_by_id(measurement['st_id'], station_data)
ready_type_id = get_type_by_name(measurement['par_name'], type_data)
ready_station = get_station_by_id(measurement['st_id'], station_data)
ready_type = get_type_by_name(measurement['par_name'], type_data)
ready_measurement_value = measurement['o_value']
ready_measurement_timestamp = get_timestamp_from_datetime(measurement['o_czas'])
if ready_station_id and ready_type_id and ready_measurement_value and ready_measurement_timestamp:
ioloop.run_sync(partial(measurements.add, station_id=ready_station_id, type_id=ready_type_id,
value=ready_measurement_value, measurement_time=ready_measurement_timestamp))
ioloop.run_sync(partial(last_measurements.add, station_id=ready_station_id, type_id=ready_type_id,
value=ready_measurement_value, measurement_time=ready_measurement_timestamp))
if ready_station and ready_type and ready_measurement_value and ready_measurement_timestamp:
measurement = models.Measurement(station=ready_station, pollution_type=ready_type,
value=ready_measurement_value, time=ready_measurement_timestamp)
yield measurement.save()
except Exception:
pass
ioloop = IOLoop.instance()
IOLoop.current().run_sync(main(ioloop))
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment