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/>.
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.base import NotAvailable
@ -35,20 +35,13 @@ class StartPage(HTMLPage):
class item(ItemElement):
klass = GaugeSensor
obj_name = Env('name')
obj_id = Env('id')
obj_name = Regexp(CleanText('.'), '(.*?) {0,}: .*', "\\1")
obj_id = CleanChars(Regexp(Attr('name'), '(.*)', "dd-\\1"), " .():")
obj_unit = Env('unit')
obj_lastvalue = Env('lastvalue')
obj_gaugeid = u"wetter"
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):
if u"Temperatur" in text:
value = text.split(': ')[1].split(u'°')[0]
@ -61,12 +54,6 @@ class StartPage(HTMLPage):
def parse(self, el):
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)
lastvalue = GaugeMeasure()
lastvalue.level = float(level)