diff --git a/weboob/backends/francetelevisions/browser.py b/weboob/backends/francetelevisions/browser.py index d48428f7..bceb075e 100644 --- a/weboob/backends/francetelevisions/browser.py +++ b/weboob/backends/francetelevisions/browser.py @@ -42,8 +42,11 @@ class PluzzBrowser(BaseBrowser): self.location(url) assert self.is_on_page(VideoPage) - metaurl = self.page.get_meta_url() id = self.page.get_id() + metaurl = self.page.get_meta_url() + if metaurl is None: + return None + self.location(metaurl) assert self.is_on_page(MetaVideoPage) diff --git a/weboob/backends/francetelevisions/pages.py b/weboob/backends/francetelevisions/pages.py index 67854a22..a83970fc 100644 --- a/weboob/backends/francetelevisions/pages.py +++ b/weboob/backends/francetelevisions/pages.py @@ -21,7 +21,7 @@ import datetime import re from weboob.tools.capabilities.thumbnail import Thumbnail -from weboob.tools.browser import BasePage +from weboob.tools.browser import BasePage, BrokenPageError from .video import PluzzVideo @@ -52,9 +52,18 @@ class IndexPage(BasePage): yield video 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): - div = self.parser.select(self.document.getroot(), 'a#current_video', 1) - return div.attrib['href'] + try: + div = self.parser.select(self.document.getroot(), 'a#current_video', 1) + except BrokenPageError: + return None + else: + return div.attrib['href'] def get_id(self): return self.groups[0]