add a default value for Time/Duration
This commit is contained in:
parent
e3cbda5dc8
commit
e217b24427
2 changed files with 11 additions and 1 deletions
|
|
@ -23,6 +23,7 @@ import re
|
|||
from weboob.tools.browser2 import HTMLPage
|
||||
from weboob.tools.browser2.page import ListElement, method, ItemElement
|
||||
from weboob.tools.browser2.filters import Filter, Link, CleanText, Duration
|
||||
from weboob.capabilities.base import NotAvailable
|
||||
from weboob.capabilities.image import BaseImage
|
||||
from weboob.capabilities.video import BaseVideo
|
||||
|
||||
|
|
@ -46,7 +47,7 @@ class IndexPage(HTMLPage):
|
|||
|
||||
obj_id = Id(Link('.//a'))
|
||||
obj_title = CleanText('.//span[@id="title1"]')
|
||||
obj_duration = Duration(CleanText('.//span[@class="thumbtime"]//span'))
|
||||
obj_duration = Duration(CleanText('.//span[@class="thumbtime"]//span'), default=NotAvailable)
|
||||
obj_nsfw = True
|
||||
|
||||
def obj_thumbnail(self):
|
||||
|
|
|
|||
|
|
@ -260,6 +260,10 @@ class Time(Filter):
|
|||
regexp = re.compile(ur'(?P<hh>\d+):?(?P<mm>\d+)(:(?P<ss>\d+))?')
|
||||
kwargs = {'hour': 'hh', 'minute': 'mm', 'second': 'ss'}
|
||||
|
||||
def __init__(self, selector, default=_NO_DEFAULT):
|
||||
super(Time, self).__init__(selector)
|
||||
self.default = default
|
||||
|
||||
def filter(self, txt):
|
||||
m = self.regexp.search(txt)
|
||||
if m:
|
||||
|
|
@ -268,6 +272,11 @@ class Time(Filter):
|
|||
kwargs[key] = int(m.groupdict()[index] or 0)
|
||||
return self.klass(**kwargs)
|
||||
|
||||
if self.default is not _NO_DEFAULT:
|
||||
return self.default
|
||||
else:
|
||||
raise ValueError('Unable to find time in %r' % txt)
|
||||
|
||||
|
||||
class Duration(Time):
|
||||
klass = datetime.timedelta
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue