[Arte] retrieve default quality if requested quality does not exist

This commit is contained in:
Bezleputh 2013-10-26 18:44:33 +02:00 committed by Florent
commit 402c038167

View file

@ -54,20 +54,34 @@ class ArteBrowser(BaseBrowser):
@id2url(ArteVideo.id2url) @id2url(ArteVideo.id2url)
def get_video(self, url, video=None): def get_video(self, url, video=None):
_url = url \
+ '/' + self.quality \
+ '.json'
response = self.openurl(_url) result = self.get_video_by_quality(url, self.quality)
result = simplejson.loads(response.read(), self.ENCODING)
if video is None: if video is None:
video = ArteVideo(result['video']['VID']) video = ArteVideo(result['video']['VID'])
try: try:
video.url = u'%s' % result['video']['VSR'][0]['VUR'] video.url = u'%s' % result['video']['VSR'][0]['VUR']
except: except:
video.url = NotAvailable video.url = self.get_default_url(url)
return video return video
def get_default_url(self, url):
result = self.get_video_by_quality(url, 'ALL')
try:
return u'%s' % result['video']['VSR'][0]['VUR']
except:
return NotAvailable
def get_video_by_quality(self, url, quality):
_url = url \
+ '/' + quality \
+ '.json'
response = self.openurl(_url)
return simplejson.loads(response.read(), self.ENCODING)
@id2url(ArteLiveVideo.id2url) @id2url(ArteLiveVideo.id2url)
def get_live_video(self, url, video=None): def get_live_video(self, url, video=None):
self.location(url) self.location(url)