diff --git a/modules/poivy/pages.py b/modules/poivy/pages.py index 302d698f..c1aa9edb 100644 --- a/modules/poivy/pages.py +++ b/modules/poivy/pages.py @@ -19,7 +19,7 @@ from weboob.tools.browser import BrowserBanned from weboob.tools.browser2.page import HTMLPage, LoggedPage, method, ListElement, ItemElement -from weboob.tools.browser2.filters import Env, CleanText, CleanDecimal, Field, Attr, Time, Date, Link, Format +from weboob.tools.browser2.filters import Env, CleanText, CleanDecimal, Field, Attr, Time, DateTime, Link, Format from weboob.capabilities.bill import Subscription, Detail from datetime import datetime @@ -81,7 +81,7 @@ class HistoryPage(LoggedPage, HTMLPage): klass = Detail obj_id = None - obj_datetime = Date(CleanText('td[1] | td[2]')) + obj_datetime = DateTime(CleanText('td[1] | td[2]')) obj_price = CleanDecimal('td[7]', replace_dots=False, default=0) obj_currency = u'EUR' obj_label = Format(u"%s from %s to %s - %s", diff --git a/modules/sachsen/pages.py b/modules/sachsen/pages.py index 5b6eb080..07588417 100644 --- a/modules/sachsen/pages.py +++ b/modules/sachsen/pages.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . from weboob.tools.browser2.page import HTMLPage, method, ListElement, ItemElement -from weboob.tools.browser2.filters import Env, CleanText, Regexp, Field, Date, Map, Attr +from weboob.tools.browser2.filters import Env, CleanText, Regexp, Field, DateTime, Map, Attr from weboob.capabilities.gauge import Gauge, GaugeMeasure, GaugeSensor from weboob.capabilities.base import NotAvailable, NotLoaded @@ -87,7 +87,7 @@ class ListPage(HTMLPage): def obj_sensors(self): sensors = [] - lastdate = Date(Regexp(Env('datetime'), r'(\d+)\.(\d+)\.(\d+) (\d+):(\d+)', r'\3-\2-\1 \4:\5', default=NotAvailable))(self) + lastdate = DateTime(Regexp(Env('datetime'), r'(\d+)\.(\d+)\.(\d+) (\d+):(\d+)', r'\3-\2-\1 \4:\5', default=NotAvailable))(self) forecast = Map(Env('forecast'), self.forecasts, default=NotAvailable)(self) alarm = Map(Env('alarm'), self.alarmlevel, default=u'')(self) @@ -109,7 +109,7 @@ class HistoryPage(HTMLPage): def condition(self): return self.verif.match(self.el[0].text_content()) - obj_date = Date(Regexp(CleanText('.'), r'(\d+)\.(\d+)\.(\d+) (\d+):(\d+)', r'\3-\2-\1 \4:\5')) + obj_date = DateTime(Regexp(CleanText('.'), r'(\d+)\.(\d+)\.(\d+) (\d+):(\d+)', r'\3-\2-\1 \4:\5')) sensor_types = [u'Level', u'Flow'] def obj_level(self): diff --git a/weboob/tools/browser2/filters.py b/weboob/tools/browser2/filters.py index c76dbb6e..0740fcec 100644 --- a/weboob/tools/browser2/filters.py +++ b/weboob/tools/browser2/filters.py @@ -268,13 +268,20 @@ class Map(Filter): raise KeyError('Unable to handle %r' % txt) -class Date(Filter): +class DateTime(Filter): def filter(self, txt): if empty(txt): return txt return parse_date(txt) +class Date(DateTime): + def filter(self, txt): + datetime = super(Date, self).filter(txt) + if datetime is not None: + return datetime.date + + class Time(Filter): klass = datetime.time regexp = re.compile(ur'(?P\d+):?(?P\d+)(:(?P\d+))?')