[francetelevisions] add option to get video from an url
this will allow to do things like that : videoob -d -b francetelevisions download http://pluzz.francetv.fr/videos/faites_entrer_l_accuse.html
This commit is contained in:
parent
a7b9b6e9cc
commit
6c550ea5a7
3 changed files with 13 additions and 0 deletions
|
|
@ -35,6 +35,11 @@ class PluzzBrowser(PagesBrowser):
|
|||
video_page = URL(r'http://webservices.francetelevisions.fr/tools/getInfosOeuvre/v2/\?idDiffusion=(?P<id>.*)&catalogue=Pluzz', VideoPage)
|
||||
videos_list_page = URL('(?P<program>videos/.*)', VideoListPage)
|
||||
|
||||
def get_video_from_url(self, url):
|
||||
video = self.videos_list_page.go(program=url).get_last_video()
|
||||
if video:
|
||||
return self.get_video(video.id, video)
|
||||
|
||||
def search_videos(self, pattern):
|
||||
if not self.PROGRAMS:
|
||||
self.PROGRAMS = self.get_program_list()
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ from weboob.tools.backend import Module
|
|||
|
||||
from .browser import PluzzBrowser
|
||||
|
||||
import re
|
||||
|
||||
__all__ = ['PluzzModule']
|
||||
|
||||
|
|
@ -38,6 +39,9 @@ class PluzzModule(Module, CapVideo, CapCollection):
|
|||
BROWSER = PluzzBrowser
|
||||
|
||||
def get_video(self, _id):
|
||||
m = re.match('http://pluzz.francetv.fr/(videos/.*)', _id)
|
||||
if m:
|
||||
return self.browser.get_video_from_url(m.group(1))
|
||||
return self.browser.get_video(_id)
|
||||
|
||||
def search_videos(self, pattern, sortby=CapVideo.SEARCH_RELEVANCE, nsfw=False):
|
||||
|
|
|
|||
|
|
@ -31,3 +31,7 @@ class PluzzTest(BackendTest):
|
|||
v = l[0]
|
||||
self.backend.fillobj(v, ('url',))
|
||||
self.assertTrue(v.url, 'URL for video "%s" not found: %s' % (v.id, v.url))
|
||||
|
||||
def test_video_from_url(self):
|
||||
v = self.backend.get_video('http://pluzz.francetv.fr/videos/faites_entrer_l_accuse.html')
|
||||
self.assertTrue(v.url, 'URL for video "%s" not found: %s' % (v.id, v.url))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue