add liveweb.arte.tv url management in arte module
This commit is contained in:
parent
e6d60492f3
commit
9d933a00eb
3 changed files with 25 additions and 3 deletions
|
|
@ -55,7 +55,9 @@ class ArteBackend(BaseBackend, ICapVideo, ICapCollection):
|
||||||
if m:
|
if m:
|
||||||
return 'videos', m.group(1)
|
return 'videos', m.group(1)
|
||||||
|
|
||||||
# TODO support live videos
|
m = re.match('https?://liveweb.arte.tv/\w+/video/(.*)/', _id)
|
||||||
|
if m:
|
||||||
|
return 'live_url', _id
|
||||||
|
|
||||||
return 'videos', _id
|
return 'videos', _id
|
||||||
|
|
||||||
|
|
@ -65,6 +67,10 @@ class ArteBackend(BaseBackend, ICapVideo, ICapCollection):
|
||||||
|
|
||||||
if site == 'live':
|
if site == 'live':
|
||||||
return self.browser.get_live_video(_id)
|
return self.browser.get_live_video(_id)
|
||||||
|
|
||||||
|
elif site == 'live_url':
|
||||||
|
return self.browser.get_live_from_url(_id)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
return self.browser.get_video(_id)
|
return self.browser.get_video(_id)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@
|
||||||
from weboob.tools.browser import BaseBrowser
|
from weboob.tools.browser import BaseBrowser
|
||||||
from weboob.tools.browser.decorators import id2url
|
from weboob.tools.browser.decorators import id2url
|
||||||
|
|
||||||
from .pages import IndexPage, VideoPage, ArteLivePage, ArteLiveCategorieVideoPage, ArteLiveVideoPage
|
from .pages import IndexPage, VideoPage, ArteLivePage, ArteLiveCategorieVideoPage, ArteLiveVideoPage, ArteLivePlayerPage
|
||||||
from .video import ArteVideo, ArteLiveVideo
|
from .video import ArteVideo, ArteLiveVideo
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -36,6 +36,7 @@ class ArteBrowser(BaseBrowser):
|
||||||
r'http://videos.arte.tv/\w+/videos/(?P<id>.+)\.html': VideoPage,
|
r'http://videos.arte.tv/\w+/videos/(?P<id>.+)\.html': VideoPage,
|
||||||
r'http://liveweb.arte.tv/\w+' : ArteLivePage,
|
r'http://liveweb.arte.tv/\w+' : ArteLivePage,
|
||||||
r'http://liveweb.arte.tv/\w+/cat/.*' : ArteLiveCategorieVideoPage,
|
r'http://liveweb.arte.tv/\w+/cat/.*' : ArteLiveCategorieVideoPage,
|
||||||
|
r'http://liveweb.arte.tv/\w+/video/.*': ArteLivePlayerPage,
|
||||||
r'http://arte.vo.llnwd.net/o21/liveweb/events/event-(?P<id>.+).xml' : ArteLiveVideoPage,
|
r'http://arte.vo.llnwd.net/o21/liveweb/events/event-(?P<id>.+).xml' : ArteLiveVideoPage,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -79,3 +80,10 @@ class ArteBrowser(BaseBrowser):
|
||||||
self.location(url)
|
self.location(url)
|
||||||
assert self.is_on_page(ArteLiveCategorieVideoPage)
|
assert self.is_on_page(ArteLiveCategorieVideoPage)
|
||||||
return self.page.iter_videos(self.lang)
|
return self.page.iter_videos(self.lang)
|
||||||
|
|
||||||
|
def get_live_from_url(self, url):
|
||||||
|
self.location(url)
|
||||||
|
assert self.is_on_page(ArteLivePlayerPage)
|
||||||
|
_id = self.page.retrieve_id()
|
||||||
|
if _id:
|
||||||
|
return self.get_live_video(_id)
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ __all__ = ['IndexPage', 'VideoPage', 'ArteLivePage', 'ArteLiveCategorieVideoPage
|
||||||
class ArteLiveVideoPage(BasePage):
|
class ArteLiveVideoPage(BasePage):
|
||||||
def get_video(self, video=None, lang='fr', quality='hd'):
|
def get_video(self, video=None, lang='fr', quality='hd'):
|
||||||
if not video:
|
if not video:
|
||||||
video = ArteVideo(self.group_dict['id'])
|
video = ArteLiveVideo(self.group_dict['id'])
|
||||||
|
|
||||||
urls = {}
|
urls = {}
|
||||||
for url in self.document.xpath('//video')[0].getchildren():
|
for url in self.document.xpath('//video')[0].getchildren():
|
||||||
|
|
@ -214,3 +214,11 @@ class VideoPage(BasePage):
|
||||||
video_url = urls.popitem()[1]
|
video_url = urls.popitem()[1]
|
||||||
|
|
||||||
return video_url
|
return video_url
|
||||||
|
|
||||||
|
|
||||||
|
class ArteLivePlayerPage(BasePage):
|
||||||
|
def retrieve_id(self):
|
||||||
|
player_url = self.document.xpath('//div[@class="flash"]/div/object/param')[0].attrib['value']
|
||||||
|
_id = re.match('(.*)&eventId=(\d*)&(.*)', player_url)
|
||||||
|
if _id:
|
||||||
|
return u'%s' % _id.group(2)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue