[YoutubeDL] Ignore duplicates in --playlist-items

E.g. '--playlist-items 2-4,3-4,3' should result in '[2,3,4]', not '[2,3,4,3,4,3]'
This commit is contained in:
Sergey M․ 2017-10-06 23:46:57 +07:00
parent 86a15ed64b
commit cd6fc19ed7
No known key found for this signature in database
GPG key ID: 2C393E0F18A9236D
2 changed files with 5 additions and 1 deletions

View file

@ -773,6 +773,9 @@ class TestYoutubeDL(unittest.TestCase):
result = get_ids({'playlist_items': '3-10'}) result = get_ids({'playlist_items': '3-10'})
self.assertEqual(result, [3, 4]) self.assertEqual(result, [3, 4])
result = get_ids({'playlist_items': '2-4,3-4,3'})
self.assertEqual(result, [2, 3, 4])
def test_urlopen_no_file_protocol(self): def test_urlopen_no_file_protocol(self):
# see https://github.com/rg3/youtube-dl/issues/8227 # see https://github.com/rg3/youtube-dl/issues/8227
ydl = YDL() ydl = YDL()

View file

@ -65,6 +65,7 @@ from .utils import (
locked_file, locked_file,
make_HTTPS_handler, make_HTTPS_handler,
MaxDownloadsReached, MaxDownloadsReached,
orderedSet,
PagedList, PagedList,
parse_filesize, parse_filesize,
PerRequestProxyHandler, PerRequestProxyHandler,
@ -908,7 +909,7 @@ class YoutubeDL(object):
yield int(item) yield int(item)
else: else:
yield int(string_segment) yield int(string_segment)
playlistitems = iter_playlistitems(playlistitems_str) playlistitems = orderedSet(iter_playlistitems(playlistitems_str))
ie_entries = ie_result['entries'] ie_entries = ie_result['entries']