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):
|
||||
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()
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
|
|
|
|||
|
|
@ -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²"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue