diff options
Diffstat (limited to 'youtube_dl/YoutubeDL.py')
| -rwxr-xr-x | youtube_dl/YoutubeDL.py | 9 | 
1 files changed, 6 insertions, 3 deletions
diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index 4493fd0e1..a827414dc 100755 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -1063,21 +1063,24 @@ class YoutubeDL(object):          if not m:              STR_OPERATORS = {                  '=': operator.eq, -                '!=': operator.ne,                  '^=': lambda attr, value: attr.startswith(value),                  '$=': lambda attr, value: attr.endswith(value),                  '*=': lambda attr, value: value in attr,              }              str_operator_rex = re.compile(r'''(?x)                  \s*(?P<key>ext|acodec|vcodec|container|protocol|format_id) -                \s*(?P<op>%s)(?P<none_inclusive>\s*\?)? +                \s*(?P<negation>!\s*)?(?P<op>%s)(?P<none_inclusive>\s*\?)?                  \s*(?P<value>[a-zA-Z0-9._-]+)                  \s*$                  ''' % '|'.join(map(re.escape, STR_OPERATORS.keys())))              m = str_operator_rex.search(filter_spec)              if m:                  comparison_value = m.group('value') -                op = STR_OPERATORS[m.group('op')] +                str_op = STR_OPERATORS[m.group('op')] +                if m.group('negation'): +                    op = lambda attr, value: not str_op +                else: +                    op = str_op          if not m:              raise ValueError('Invalid filter specification %r' % filter_spec)  | 
