Move duplicate check to generic.py

This commit is contained in:
anovicecodemonkey 2014-06-01 01:16:35 +09:30
parent 610134730a
commit 37e3cbe22e
2 changed files with 24 additions and 10 deletions

View file

@ -343,16 +343,6 @@ def url_result(url, ie=None, video_id=None):
@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:

View file

@ -494,6 +494,14 @@ def _real_extract(self, url):
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 @@ def _real_extract(self, url):
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 @@ def _real_extract(self, url):
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)