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

Yet not working script

parent 0ef3506c
...@@ -3,20 +3,22 @@ import requests ...@@ -3,20 +3,22 @@ import requests
import time import time
from tornado.ioloop import IOLoop from tornado.ioloop import IOLoop
from functools import partial from functools import partial
from db import DDBstations, DDBtypes, DDBmeasurements, DDBlastmeasurements from db import DDBstations, DDBtypes
from dateutil.parser import parse from dateutil.parser import parse
import models
from tornado.gen import coroutine
def get_station_by_id(station_id, station_data): def get_station_by_id(station_id, station_data):
for station in station_data: for station in station_data:
if str(station['api_station_id']) == station_id: 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): def get_type_by_name(type_name, type_data):
for type in type_data: for type in type_data:
if type['shortname'] == type_name: if type['shortname'] == type_name:
return type['type_id'] return models.Type.get(type['type_id'])
def get_timestamp_from_datetime(datetime_string): def get_timestamp_from_datetime(datetime_string):
...@@ -24,33 +26,30 @@ def get_timestamp_from_datetime(datetime_string): ...@@ -24,33 +26,30 @@ def get_timestamp_from_datetime(datetime_string):
return time.mktime(dt.timetuple()) return time.mktime(dt.timetuple())
ioloop = IOLoop.instance() @coroutine
measurements = DDBmeasurements() def main(ioloop):
last_measurements = DDBlastmeasurements() stations = DDBstations()
stations = DDBstations() types = DDBtypes()
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) r = requests.get(apiURL)
actual_data = r.json()['dane']['actual'] actual_data = r.json()['dane']['actual']
station_data = ioloop.run_sync(partial(stations.get_all)) station_data = ioloop.run_sync(partial(stations.get_all))
type_data = ioloop.run_sync(partial(types.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']: for measurement in station_measurements['details']:
try: ready_station = get_station_by_id(measurement['st_id'], station_data)
ready_station_id = get_station_by_id(measurement['st_id'], station_data) ready_type = get_type_by_name(measurement['par_name'], type_data)
ready_type_id = get_type_by_name(measurement['par_name'], type_data)
ready_measurement_value = measurement['o_value'] ready_measurement_value = measurement['o_value']
ready_measurement_timestamp = get_timestamp_from_datetime(measurement['o_czas']) 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: if ready_station and ready_type and ready_measurement_value and ready_measurement_timestamp:
ioloop.run_sync(partial(measurements.add, station_id=ready_station_id, type_id=ready_type_id, measurement = models.Measurement(station=ready_station, pollution_type=ready_type,
value=ready_measurement_value, measurement_time=ready_measurement_timestamp)) value=ready_measurement_value, time=ready_measurement_timestamp)
ioloop.run_sync(partial(last_measurements.add, station_id=ready_station_id, type_id=ready_type_id, yield measurement.save()
value=ready_measurement_value, measurement_time=ready_measurement_timestamp))
except Exception: ioloop = IOLoop.instance()
pass 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