Use more tools of browser2 in dresdenwetter (2/2)

This commit is contained in:
Florent 2014-03-18 16:28:04 +01:00
commit cc68ffcfe2

View file

@ -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 from weboob.tools.browser2.filters import CleanText, Env, Regexp, Attr, CleanChars
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
@ -35,20 +35,13 @@ class StartPage(HTMLPage):
class item(ItemElement): class item(ItemElement):
klass = GaugeSensor klass = GaugeSensor
obj_name = Env('name') obj_name = Regexp(CleanText('.'), '(.*?) {0,}: .*', "\\1")
obj_id = Env('id') obj_id = CleanChars(Regexp(Attr('name'), '(.*)', "dd-\\1"), " .():")
obj_unit = Env('unit') obj_unit = Env('unit')
obj_lastvalue = Env('lastvalue') obj_lastvalue = Env('lastvalue')
obj_gaugeid = u"wetter" obj_gaugeid = u"wetter"
obj_forecast = NotAvailable obj_forecast = NotAvailable
def get_name(self, text):
if u"Niederschlag" not in text:
return text.split(':')[0].strip()
else:
return text.split()[0]
def split_unit(self, text): def split_unit(self, text):
if u"Temperatur" in text: if u"Temperatur" in text:
value = text.split(': ')[1].split(u'°')[0] value = text.split(': ')[1].split(u'°')[0]
@ -61,12 +54,6 @@ class StartPage(HTMLPage):
def parse(self, el): def parse(self, el):
text = CleanText(el)(self) text = CleanText(el)(self)
name = self.get_name(text)
_id = u"dd-%s" % name
self.env['name'] = name
self.env['id'] = _id
level, self.env['unit'] = self.split_unit(text) level, self.env['unit'] = self.split_unit(text)
lastvalue = GaugeMeasure() lastvalue = GaugeMeasure()
lastvalue.level = float(level) lastvalue.level = float(level)