handle read URL data failures
This commit is contained in:
parent
b720e851fa
commit
46f4de696e
2 changed files with 16 additions and 2 deletions
|
|
@ -75,7 +75,7 @@ class YoutubeBackend(BaseBackend, ICapVideo):
|
||||||
video = self.browser.get_video(YoutubeVideo.id2url(video.id), video)
|
video = self.browser.get_video(YoutubeVideo.id2url(video.id), video)
|
||||||
if 'thumbnail' in fields:
|
if 'thumbnail' in fields:
|
||||||
with self.browser:
|
with self.browser:
|
||||||
video.thumbnail.data = self.browser.openurl(video.thumbnail.url).read()
|
video.thumbnail.data = self.browser.readurl(video.thumbnail.url)
|
||||||
|
|
||||||
return video
|
return video
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -238,15 +238,29 @@ class BaseBrowser(mechanize.Browser):
|
||||||
"""
|
"""
|
||||||
Open an URL but do not create a Page object.
|
Open an URL but do not create a Page object.
|
||||||
"""
|
"""
|
||||||
|
if_fail = kwargs.pop('if_fail', 'raise')
|
||||||
debug('Opening URL "%s", %s' % (args, kwargs))
|
debug('Opening URL "%s", %s' % (args, kwargs))
|
||||||
try:
|
try:
|
||||||
return mechanize.Browser.open_novisit(self, *args, **kwargs)
|
return mechanize.Browser.open_novisit(self, *args, **kwargs)
|
||||||
except (mechanize.response_seek_wrapper, urllib2.HTTPError, urllib2.URLError), e:
|
except (mechanize.response_seek_wrapper, urllib2.HTTPError, urllib2.URLError), e:
|
||||||
raise BrowserHTTPError('%s (url="%s")' % (e, args and args[0] or 'None'))
|
if if_fail == 'raise':
|
||||||
|
raise BrowserHTTPError('%s (url="%s")' % (e, args and args[0] or 'None'))
|
||||||
|
else:
|
||||||
|
return None
|
||||||
except (mechanize.BrowserStateError, BrowserRetry):
|
except (mechanize.BrowserStateError, BrowserRetry):
|
||||||
self.home()
|
self.home()
|
||||||
return mechanize.Browser.open(self, *args, **kwargs)
|
return mechanize.Browser.open(self, *args, **kwargs)
|
||||||
|
|
||||||
|
def readurl(self, url, if_fail=None):
|
||||||
|
"""
|
||||||
|
Download URL data specifying what to do on failure (nothing by default).
|
||||||
|
"""
|
||||||
|
result = self.openurl(url, if_fail=if_fail)
|
||||||
|
if result:
|
||||||
|
return result.read()
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
def submit(self, *args, **kwargs):
|
def submit(self, *args, **kwargs):
|
||||||
"""
|
"""
|
||||||
Submit the selected form.
|
Submit the selected form.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue