diff --git a/modules/youjizz/pages/index.py b/modules/youjizz/pages/index.py index fa2adb3e..b15111f5 100644 --- a/modules/youjizz/pages/index.py +++ b/modules/youjizz/pages/index.py @@ -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): diff --git a/weboob/tools/browser2/filters.py b/weboob/tools/browser2/filters.py index da6629c3..f4786a54 100644 --- a/weboob/tools/browser2/filters.py +++ b/weboob/tools/browser2/filters.py @@ -260,6 +260,10 @@ class Time(Filter): regexp = re.compile(ur'(?P\d+):?(?P\d+)(:(?P\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