From 6e806fdd9ece72b878973de2970d45cbac4ae142 Mon Sep 17 00:00:00 2001 From: Thomas Perl Date: Fri, 5 Dec 2008 15:02:32 +0100 Subject: [PATCH] Fix broken YouTube search function (website changed) The YouTube website has changed, which caused our YouTube search function to fail. This patch fixes this, but also removes the user description from the podcast list. --- src/gpodder/resolver.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/gpodder/resolver.py b/src/gpodder/resolver.py index 7b56f36d..e0a28253 100644 --- a/src/gpodder/resolver.py +++ b/src/gpodder/resolver.py @@ -100,21 +100,25 @@ def get_real_episode_length(episode): return 0 def find_youtube_channels(string): + # FIXME: Make proper use of the YouTube API instead + # of screen-scraping the YouTube website url = 'http://www.youtube.com/results?search_query='+ urllib.quote(string, '') +'&search_type=search_users&aq=f' r = re.compile('>\s+<') data = r.sub('><', urllib.urlopen(url).read()) - r1 = re.compile('([^<]+)[^<]*([^<]+)?') + r1 = re.compile(']*>([^<]+)') m1 = r1.findall(data) r2 = re.compile('\s+') model = gtk.ListStore(gobject.TYPE_BOOLEAN, gobject.TYPE_STRING, gobject.TYPE_STRING) - for (name, title, text) in m1: - link = 'http://www.youtube.com/rss/user/'+ name +'/videos.rss' - name = '%s\n%s' % (name, saxutils.escape(r2.sub(' ', text)).strip()) - model.append([False, name, link]) + found_users = [] + for (name, title) in m1: + if name not in found_users: + found_users.append(name) + link = 'http://www.youtube.com/rss/user/'+ name +'/videos.rss' + model.append([False, name, link]) return model -- 2.11.4.GIT