Remove parse function
This commit is contained in:
parent
991723549e
commit
dc7a83cba0
3 changed files with 22 additions and 20 deletions
|
|
@ -28,8 +28,7 @@ __all__ = ['DresdenWetterBrowser']
|
||||||
class DresdenWetterBrowser(PagesBrowser):
|
class DresdenWetterBrowser(PagesBrowser):
|
||||||
BASEURL = 'http://www.dresden-wetter.de'
|
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):
|
def get_sensors_list(self):
|
||||||
return self.home.stay_or_go().get_sensors_list()
|
return self.home.stay_or_go().get_sensors_list()
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@
|
||||||
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
|
# 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.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.gauge import GaugeMeasure, GaugeSensor
|
||||||
from weboob.capabilities.base import NotAvailable
|
from weboob.capabilities.base import NotAvailable
|
||||||
|
|
||||||
|
|
@ -26,6 +26,23 @@ from weboob.capabilities.base import NotAvailable
|
||||||
__all__ = ['StartPage']
|
__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):
|
class StartPage(HTMLPage):
|
||||||
|
|
||||||
@method
|
@method
|
||||||
|
|
@ -39,24 +56,10 @@ class StartPage(HTMLPage):
|
||||||
obj_id = CleanText(Regexp(Field('name'), '(.*)', "dd-\\1"), " .():")
|
obj_id = CleanText(Regexp(Field('name'), '(.*)', "dd-\\1"), " .():")
|
||||||
obj_gaugeid = u"wetter"
|
obj_gaugeid = u"wetter"
|
||||||
obj_forecast = NotAvailable
|
obj_forecast = NotAvailable
|
||||||
|
obj_unit = Split(CleanText('.'), 1)
|
||||||
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]
|
|
||||||
|
|
||||||
def obj_lastvalue(self):
|
def obj_lastvalue(self):
|
||||||
lastvalue = GaugeMeasure()
|
lastvalue = GaugeMeasure()
|
||||||
lastvalue.level = float(Env('parse')(self)[0])
|
lastvalue.level = float(Split(CleanText('.'), 0)(self))
|
||||||
lastvalue.alarm = NotAvailable
|
lastvalue.alarm = NotAvailable
|
||||||
return lastvalue
|
return lastvalue
|
||||||
|
|
||||||
def obj_unit(self):
|
|
||||||
return Env('parse')(self)[1]
|
|
||||||
|
|
||||||
def parse(self, el):
|
|
||||||
self.env['parse'] = self.split_unit(CleanText(el)(self))
|
|
||||||
|
|
|
||||||
|
|
@ -58,4 +58,4 @@ class DresdenWetterTest(BackendTest):
|
||||||
Test the last sensor return by module"
|
Test the last sensor return by module"
|
||||||
"""
|
"""
|
||||||
sensor = list(self.backend.iter_sensors("wetter", "Globalstrahlung"))
|
sensor = list(self.backend.iter_sensors("wetter", "Globalstrahlung"))
|
||||||
assert sensor[0].unit == u"W/m 2"
|
assert sensor[0].unit == u"W/m²"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue