Remove parse function

This commit is contained in:
Florent 2014-03-20 10:23:08 +01:00
commit dc7a83cba0
3 changed files with 22 additions and 20 deletions

View file

@ -28,8 +28,7 @@ __all__ = ['DresdenWetterBrowser']
class DresdenWetterBrowser(PagesBrowser):
BASEURL = 'http://www.dresden-wetter.de'
home = URL('/Current_Vantage_Pro.htm', StartPage)
home = URL('/Current_Vantage_Pro.htm', StartPage)
def get_sensors_list(self):
return self.home.stay_or_go().get_sensors_list()

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser2.page import HTMLPage, method, ListElement, ItemElement
from weboob.tools.browser2.filters import CleanText, Env, Regexp, Field
from weboob.tools.browser2.filters import CleanText, Regexp, Field, Filter
from weboob.capabilities.gauge import GaugeMeasure, GaugeSensor
from weboob.capabilities.base import NotAvailable
@ -26,6 +26,23 @@ from weboob.capabilities.base import NotAvailable
__all__ = ['StartPage']
class Split(Filter):
def __init__(self, selector, mode):
super(Split, self).__init__(selector)
self.mode = mode
def filter(self, txt):
if u"Temperatur" in txt:
value = txt.split(': ')[1].split(u'°')[0]
unit = u'°C'
else:
value = txt.split(':')[-1].split()[0]
unit = txt.split(':')[-1].split()[1]
if unit == u"W/m":
unit = u"W/m²"
return [value, unit][self.mode]
class StartPage(HTMLPage):
@method
@ -39,24 +56,10 @@ class StartPage(HTMLPage):
obj_id = CleanText(Regexp(Field('name'), '(.*)', "dd-\\1"), " .():")
obj_gaugeid = u"wetter"
obj_forecast = NotAvailable
def split_unit(self, text):
if u"Temperatur" in text:
value = text.split(': ')[1].split(u'°')[0]
unit = u'°C'
else:
value = text.split(':')[-1].split()[0]
unit = text.split(':')[-1].split(None, 1)[1]
return [value, unit]
obj_unit = Split(CleanText('.'), 1)
def obj_lastvalue(self):
lastvalue = GaugeMeasure()
lastvalue.level = float(Env('parse')(self)[0])
lastvalue.level = float(Split(CleanText('.'), 0)(self))
lastvalue.alarm = NotAvailable
return lastvalue
def obj_unit(self):
return Env('parse')(self)[1]
def parse(self, el):
self.env['parse'] = self.split_unit(CleanText(el)(self))

View file

@ -58,4 +58,4 @@ class DresdenWetterTest(BackendTest):
Test the last sensor return by module"
"""
sensor = list(self.backend.iter_sensors("wetter", "Globalstrahlung"))
assert sensor[0].unit == u"W/m 2"
assert sensor[0].unit == u"W/m²"