浏览代码

Move duplicate check to generic.py

anovicecodemonkey 11 年之前
父节点
当前提交
37e3cbe22e
共有 2 个文件被更改,包括 24 次插入10 次删除
  1. 0 10
      youtube_dl/extractor/common.py
  2. 24 0
      youtube_dl/extractor/generic.py

+ 0 - 10
youtube_dl/extractor/common.py

@@ -343,16 +343,6 @@ class InfoExtractor(object):
     @staticmethod
     @staticmethod
     def playlist_result(entries, playlist_id=None, playlist_title=None):
     def playlist_result(entries, playlist_id=None, playlist_title=None):
         """Returns a playlist"""
         """Returns a playlist"""
-        # Ensure we don't have any duplicates in the playlist
-        seen = set()
-        new_list = []
-        for url in entries:
-            theurl = tuple(url.items())
-            if theurl not in seen:
-             seen.add(theurl)
-             new_list.append(url)
-             entries = new_list
-
         video_info = {'_type': 'playlist',
         video_info = {'_type': 'playlist',
                       'entries': entries}
                       'entries': entries}
         if playlist_id:
         if playlist_id:

+ 24 - 0
youtube_dl/extractor/generic.py

@@ -494,6 +494,14 @@ class GenericIE(InfoExtractor):
         if matches:
         if matches:
             urlrs = [self.url_result(unescapeHTML(tuppl[1]), 'Youtube')
             urlrs = [self.url_result(unescapeHTML(tuppl[1]), 'Youtube')
                      for tuppl in matches]
                      for tuppl in matches]
+            # First, ensure we have a duplicate free list of entries
+            seen = set()
+            new_list = []
+            theurl = tuple(url.items())
+            if theurl not in seen:
+                seen.add(theurl)
+                new_list.append(url)
+                urlrs = new_list
             return self.playlist_result(
             return self.playlist_result(
                 urlrs, playlist_id=video_id, playlist_title=video_title)
                 urlrs, playlist_id=video_id, playlist_title=video_title)
 
 
@@ -503,6 +511,14 @@ class GenericIE(InfoExtractor):
         if matches:
         if matches:
             urlrs = [self.url_result(unescapeHTML(tuppl[1]))
             urlrs = [self.url_result(unescapeHTML(tuppl[1]))
                      for tuppl in matches]
                      for tuppl in matches]
+            # First, ensure we have a duplicate free list of entries
+            seen = set()
+            new_list = []
+            theurl = tuple(url.items())
+            if theurl not in seen:
+                seen.add(theurl)
+                new_list.append(url)
+                urlrs = new_list
             return self.playlist_result(
             return self.playlist_result(
                 urlrs, playlist_id=video_id, playlist_title=video_title)
                 urlrs, playlist_id=video_id, playlist_title=video_title)
 
 
@@ -615,6 +631,14 @@ class GenericIE(InfoExtractor):
         if matches:
         if matches:
             urlrs = [self.url_result(unescapeHTML(eurl), 'FunnyOrDie')
             urlrs = [self.url_result(unescapeHTML(eurl), 'FunnyOrDie')
                      for eurl in matches]
                      for eurl in matches]
+            # First, ensure we have a duplicate free list of entries
+            seen = set()
+            new_list = []
+            theurl = tuple(url.items())
+            if theurl not in seen:
+                seen.add(theurl)
+                new_list.append(url)
+                urlrs = new_list
             return self.playlist_result(
             return self.playlist_result(
                 urlrs, playlist_id=video_id, playlist_title=video_title)
                 urlrs, playlist_id=video_id, playlist_title=video_title)