Cover downloader: Add 5-second connection timeout
This commit is contained in:
parent
4a9a4a406e
commit
9abcf6a3cc
|
@ -46,6 +46,9 @@ class CoverDownloader(object):
|
|||
EXTENSIONS = SUPPORTED_EXTENSIONS.keys()
|
||||
ALL_EPISODES_ID = ':gpodder:all-episodes:'
|
||||
|
||||
# Low timeout to avoid unnecessary hangs of GUIs
|
||||
TIMEOUT = 5
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
|
@ -81,7 +84,7 @@ class CoverDownloader(object):
|
|||
|
||||
try:
|
||||
logger.info('Downloading cover art: %s', cover_url)
|
||||
data = util.urlopen(cover_url).read()
|
||||
data = util.urlopen(cover_url, timeout=self.TIMEOUT).read()
|
||||
except Exception, e:
|
||||
logger.warn('Cover art download failed: %s', e)
|
||||
return self._fallback_filename(title)
|
||||
|
|
|
@ -986,7 +986,7 @@ def url_add_authentication(url, username, password):
|
|||
return urlparse.urlunsplit(url_parts)
|
||||
|
||||
|
||||
def urlopen(url, headers=None, data=None):
|
||||
def urlopen(url, headers=None, data=None, timeout=None):
|
||||
"""
|
||||
An URL opener with the User-agent set to gPodder (with version)
|
||||
"""
|
||||
|
@ -1007,7 +1007,10 @@ def urlopen(url, headers=None, data=None):
|
|||
|
||||
headers.update({'User-agent': gpodder.user_agent})
|
||||
request = urllib2.Request(url, data=data, headers=headers)
|
||||
return opener.open(request)
|
||||
if timeout is None:
|
||||
return opener.open(request)
|
||||
else:
|
||||
return opener.open(request, timeout=timeout)
|
||||
|
||||
def get_real_url(url):
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue