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 import HTMLPage
|
||||||
from weboob.tools.browser2.page import ListElement, method, ItemElement
|
from weboob.tools.browser2.page import ListElement, method, ItemElement
|
||||||
from weboob.tools.browser2.filters import Filter, Link, CleanText, Duration
|
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.image import BaseImage
|
||||||
from weboob.capabilities.video import BaseVideo
|
from weboob.capabilities.video import BaseVideo
|
||||||
|
|
||||||
|
|
@ -46,7 +47,7 @@ class IndexPage(HTMLPage):
|
||||||
|
|
||||||
obj_id = Id(Link('.//a'))
|
obj_id = Id(Link('.//a'))
|
||||||
obj_title = CleanText('.//span[@id="title1"]')
|
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
|
obj_nsfw = True
|
||||||
|
|
||||||
def obj_thumbnail(self):
|
def obj_thumbnail(self):
|
||||||
|
|
|
||||||
|
|
@ -260,6 +260,10 @@ class Time(Filter):
|
||||||
regexp = re.compile(ur'(?P<hh>\d+):?(?P<mm>\d+)(:(?P<ss>\d+))?')
|
regexp = re.compile(ur'(?P<hh>\d+):?(?P<mm>\d+)(:(?P<ss>\d+))?')
|
||||||
kwargs = {'hour': 'hh', 'minute': 'mm', 'second': 'ss'}
|
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):
|
def filter(self, txt):
|
||||||
m = self.regexp.search(txt)
|
m = self.regexp.search(txt)
|
||||||
if m:
|
if m:
|
||||||
|
|
@ -268,6 +272,11 @@ class Time(Filter):
|
||||||
kwargs[key] = int(m.groupdict()[index] or 0)
|
kwargs[key] = int(m.groupdict()[index] or 0)
|
||||||
return self.klass(**kwargs)
|
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):
|
class Duration(Time):
|
||||||
klass = datetime.timedelta
|
klass = datetime.timedelta
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue