[Arte] retrieve default quality if requested quality does not exist
This commit is contained in:
parent
be0044662e
commit
402c038167
1 changed files with 23 additions and 9 deletions
|
|
@ -54,19 +54,33 @@ class ArteBrowser(BaseBrowser):
|
||||||
|
|
||||||
@id2url(ArteVideo.id2url)
|
@id2url(ArteVideo.id2url)
|
||||||
def get_video(self, url, video=None):
|
def get_video(self, url, video=None):
|
||||||
|
|
||||||
|
result = self.get_video_by_quality(url, self.quality)
|
||||||
|
|
||||||
|
if video is None:
|
||||||
|
video = ArteVideo(result['video']['VID'])
|
||||||
|
|
||||||
|
try:
|
||||||
|
video.url = u'%s' % result['video']['VSR'][0]['VUR']
|
||||||
|
except:
|
||||||
|
video.url = self.get_default_url(url)
|
||||||
|
|
||||||
|
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 \
|
_url = url \
|
||||||
+ '/' + self.quality \
|
+ '/' + quality \
|
||||||
+ '.json'
|
+ '.json'
|
||||||
|
|
||||||
response = self.openurl(_url)
|
response = self.openurl(_url)
|
||||||
result = simplejson.loads(response.read(), self.ENCODING)
|
return simplejson.loads(response.read(), self.ENCODING)
|
||||||
if video is None:
|
|
||||||
video = ArteVideo(result['video']['VID'])
|
|
||||||
try:
|
|
||||||
video.url = u'%s' % result['video']['VSR'][0]['VUR']
|
|
||||||
except:
|
|
||||||
video.url = NotAvailable
|
|
||||||
return video
|
|
||||||
|
|
||||||
@id2url(ArteLiveVideo.id2url)
|
@id2url(ArteLiveVideo.id2url)
|
||||||
def get_live_video(self, url, video=None):
|
def get_live_video(self, url, video=None):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue