catch errors when page is not found or if video is not yet available

This commit is contained in:
Romain Bignon 2011-07-01 14:08:03 +02:00
commit 95cb438294
2 changed files with 16 additions and 4 deletions

View file

@ -42,8 +42,11 @@ class PluzzBrowser(BaseBrowser):
self.location(url) self.location(url)
assert self.is_on_page(VideoPage) assert self.is_on_page(VideoPage)
metaurl = self.page.get_meta_url()
id = self.page.get_id() id = self.page.get_id()
metaurl = self.page.get_meta_url()
if metaurl is None:
return None
self.location(metaurl) self.location(metaurl)
assert self.is_on_page(MetaVideoPage) assert self.is_on_page(MetaVideoPage)

View file

@ -21,7 +21,7 @@ import datetime
import re import re
from weboob.tools.capabilities.thumbnail import Thumbnail from weboob.tools.capabilities.thumbnail import Thumbnail
from weboob.tools.browser import BasePage from weboob.tools.browser import BasePage, BrokenPageError
from .video import PluzzVideo from .video import PluzzVideo
@ -52,9 +52,18 @@ class IndexPage(BasePage):
yield video yield video
class VideoPage(BasePage): class VideoPage(BasePage):
def on_loaded(self):
p = self.parser.select(self.document.getroot(), 'p.alert')
if len(p) > 0:
raise Exception(p[0].text)
def get_meta_url(self): def get_meta_url(self):
div = self.parser.select(self.document.getroot(), 'a#current_video', 1) try:
return div.attrib['href'] div = self.parser.select(self.document.getroot(), 'a#current_video', 1)
except BrokenPageError:
return None
else:
return div.attrib['href']
def get_id(self): def get_id(self):
return self.groups[0] return self.groups[0]