YoutubeDL: format spec: don't accept a bare '/' (#6124)

This commit is contained in:
Jaime Marquínez Ferrándiz 2015-08-03 23:04:11 +02:00
parent e704f87f86
commit d96d604e53
2 changed files with 3 additions and 0 deletions

View file

@ -311,6 +311,7 @@ class TestFormatSelection(unittest.TestCase):
assert_syntax_error('bestvideo,,best') assert_syntax_error('bestvideo,,best')
assert_syntax_error('+bestaudio') assert_syntax_error('+bestaudio')
assert_syntax_error('bestvideo+') assert_syntax_error('bestvideo+')
assert_syntax_error('/')
def test_format_filtering(self): def test_format_filtering(self):
formats = [ formats = [

View file

@ -960,6 +960,8 @@ class YoutubeDL(object):
selectors.append(current_selector) selectors.append(current_selector)
current_selector = None current_selector = None
elif string == '/': elif string == '/':
if not current_selector:
raise syntax_error('"/" must follow a format selector', start)
first_choice = current_selector first_choice = current_selector
second_choice = _parse_format_selection(tokens, inside_choice=True) second_choice = _parse_format_selection(tokens, inside_choice=True)
current_selector = FormatSelector(PICKFIRST, (first_choice, second_choice), []) current_selector = FormatSelector(PICKFIRST, (first_choice, second_choice), [])