Rename the filter Date to Datetime. Introduce Date

This commit is contained in:
Florent 2014-03-25 12:23:08 +01:00
commit e289fc6b8f
3 changed files with 13 additions and 6 deletions

View file

@ -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",

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 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):

View file

@ -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<hh>\d+):?(?P<mm>\d+)(:(?P<ss>\d+))?')