From 60dc02e30f6cff90d663b7aecd5501b277c30cc5 Mon Sep 17 00:00:00 2001 From: Vincent A Date: Tue, 5 Nov 2013 09:52:18 +0100 Subject: [PATCH] velib: add longitude,latitude coordinates attributes to sensors --- modules/velib/backend.py | 10 +++++++++- modules/velib/browser.py | 3 +++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/modules/velib/backend.py b/modules/velib/backend.py index 52218cb8..cda5344e 100644 --- a/modules/velib/backend.py +++ b/modules/velib/backend.py @@ -19,6 +19,7 @@ from weboob.tools.backend import BaseBackend, BackendConfig +from weboob.capabilities.base import StringField from weboob.capabilities.gauge import ICapGauge, GaugeSensor, Gauge, GaugeMeasure, SensorNotFound from weboob.tools.value import Value @@ -43,6 +44,11 @@ class BikeMeasure(GaugeMeasure): return '' % self.level +class BikeSensor(GaugeSensor): + longitude = StringField('Longitude of the sensor') + latitude = StringField('Latitude of the sensor') + + class VelibBackend(BaseBackend, ICapGauge): NAME = 'velib' DESCRIPTION = (u'City bike renting availability information.\nCities: %s' % @@ -71,10 +77,12 @@ class VelibBackend(BaseBackend, ICapGauge): def _make_sensor(self, sensor_type, info, gauge): id = '%s.%s' % (sensor_type, gauge.id) - sensor = GaugeSensor(id) + sensor = BikeSensor(id) sensor.gaugeid = gauge.id sensor.name = SENSOR_TYPES[sensor_type] sensor.address = unicode(info['address']) + sensor.longitude = info['longitude'] + sensor.latitude = info['latitude'] sensor.history = [] return sensor diff --git a/modules/velib/browser.py b/modules/velib/browser.py index 20005f40..43a30fdc 100644 --- a/modules/velib/browser.py +++ b/modules/velib/browser.py @@ -63,4 +63,7 @@ class VelibBrowser(BaseBrowser): jgauge['id'] = '%s.%s' % (jgauge['number'], jgauge['contract_name']) jgauge['city'] = jgauge['contract_name'] jgauge['last_update'] = datetime.datetime.fromtimestamp(jgauge['last_update'] / 1000) + jgauge['latitude'] = str(jgauge['position']['lat']) + jgauge['longitude'] = str(jgauge['position']['lng']) + del jgauge['position'] return jgauge