From 4af2e0682f71691514dbcc5f43cce277fcdf2ad3 Mon Sep 17 00:00:00 2001 From: Thomas Perl Date: Mon, 28 Sep 2009 16:03:15 +0200 Subject: [PATCH] Fix problems with get_real_url() (bug 573) Don't fail hard when we cannot get the real URL of an episode while searching for files. Only partially fixes bug 573, as the reporter has posted the traceback in the wrong bug. --- src/gpodder/model.py | 3 ++- src/gpodder/util.py | 26 +++++++++++++++----------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/gpodder/model.py b/src/gpodder/model.py index ed45f579..55abf212 100644 --- a/src/gpodder/model.py +++ b/src/gpodder/model.py @@ -771,7 +771,8 @@ class PodcastEpisode(PodcastModelObject): xml.sax.saxutils.escape(self.channel.title)) def age_in_days(self): - return util.file_age_in_days(self.local_filename(create=False)) + return util.file_age_in_days(self.local_filename(create=False, \ + check_only=True)) def get_age_string(self): return util.file_age_to_string(self.age_in_days()) diff --git a/src/gpodder/util.py b/src/gpodder/util.py index 8d3e904d..82732e58 100644 --- a/src/gpodder/util.py +++ b/src/gpodder/util.py @@ -790,17 +790,21 @@ def get_real_url(url): """ Gets the real URL of a file and resolves all redirects. """ - username, password = username_password_from_url(url) - if username or password: - url = url_strip_authentication(url) - log('url=%s, username=%s, password=%s', url, username, password) - password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm() - password_mgr.add_password(None, url, username, password) - handler = urllib2.HTTPBasicAuthHandler(password_mgr) - opener = urllib2.build_opener(handler) - return opener.open(url).geturl() - else: - return urllib2.urlopen(url).geturl() + try: + username, password = username_password_from_url(url) + if username or password: + url = url_strip_authentication(url) + log('url=%s, username=%s, password=%s', url, username, password) + password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm() + password_mgr.add_password(None, url, username, password) + handler = urllib2.HTTPBasicAuthHandler(password_mgr) + opener = urllib2.build_opener(handler) + return opener.open(url).geturl() + else: + return urllib2.urlopen(url).geturl() + except: + log('Error getting real url for %s', url, traceback=True) + return url def find_command( command): -- 2.11.4.GIT