From 3c66071e0535c55897b8d3c93d732c7dd704e4f3 Mon Sep 17 00:00:00 2001 From: Bezleputh Date: Wed, 16 Oct 2013 20:58:18 +0200 Subject: [PATCH] [vlille] improve method _get_sensor_by_id (suggested by Herve Werner) --- modules/vlille/backend.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/modules/vlille/backend.py b/modules/vlille/backend.py index 8d1938ad..c853c9a4 100644 --- a/modules/vlille/backend.py +++ b/modules/vlille/backend.py @@ -16,7 +16,7 @@ # # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . - +import re from weboob.tools.backend import BaseBackend from weboob.capabilities.gauge import ICapGauge, GaugeSensor, Gauge, SensorNotFound @@ -75,8 +75,13 @@ class VlilleBackend(BaseBackend, ICapGauge): return None def _get_sensor_by_id(self, id): - for gauge in self.browser.get_station_list(): - for sensor in self.browser.get_station_infos(gauge): - if id == sensor.id: - return sensor + reSensorId = re.search('(\d+)-((bikes|attach|status))', id, re.IGNORECASE) + if reSensorId: + gauge = reSensorId.group(1) + pattern = reSensorId.group(2) + sensor_generator = self.iter_sensors(gauge, pattern) + if sensor_generator: + return next(sensor_generator) + else: + return None return None