mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	| @@ -4756,7 +4756,6 @@ def _match_one(filter_part, dct, incomplete): | ||||
|         (?P<key>[a-z_]+) | ||||
|         \s*(?P<negation>!\s*)?(?P<op>%s)(?P<none_inclusive>\s*\?)?\s* | ||||
|         (?: | ||||
|             (?P<intval>[0-9.]+(?:[kKmMgGtTpPeEzZyY]i?[Bb]?)?)| | ||||
|             (?P<quote>["\'])(?P<quotedstrval>.+?)(?P=quote)| | ||||
|             (?P<strval>.+?) | ||||
|         ) | ||||
| @@ -4764,40 +4763,35 @@ def _match_one(filter_part, dct, incomplete): | ||||
|         ''' % '|'.join(map(re.escape, COMPARISON_OPERATORS.keys()))) | ||||
|     m = operator_rex.search(filter_part) | ||||
|     if m: | ||||
|         unnegated_op = COMPARISON_OPERATORS[m.group('op')] | ||||
|         if m.group('negation'): | ||||
|         m = m.groupdict() | ||||
|         unnegated_op = COMPARISON_OPERATORS[m['op']] | ||||
|         if m['negation']: | ||||
|             op = lambda attr, value: not unnegated_op(attr, value) | ||||
|         else: | ||||
|             op = unnegated_op | ||||
|         actual_value = dct.get(m.group('key')) | ||||
|         if (m.group('quotedstrval') is not None | ||||
|             or m.group('strval') is not None | ||||
|         comparison_value = m['quotedstrval'] or m['strval'] or m['intval'] | ||||
|         if m['quote']: | ||||
|             comparison_value = comparison_value.replace(r'\%s' % m['quote'], m['quote']) | ||||
|         actual_value = dct.get(m['key']) | ||||
|         numeric_comparison = None | ||||
|         if isinstance(actual_value, compat_numeric_types): | ||||
|             # If the original field is a string and matching comparisonvalue is | ||||
|             # a number we should respect the origin of the original field | ||||
|             # and process comparison value as a string (see | ||||
|             # https://github.com/ytdl-org/youtube-dl/issues/11082). | ||||
|             or actual_value is not None and m.group('intval') is not None | ||||
|                 and isinstance(actual_value, compat_str)): | ||||
|             comparison_value = m.group('quotedstrval') or m.group('strval') or m.group('intval') | ||||
|             quote = m.group('quote') | ||||
|             if quote is not None: | ||||
|                 comparison_value = comparison_value.replace(r'\%s' % quote, quote) | ||||
|         else: | ||||
|             if m.group('op') in STRING_OPERATORS: | ||||
|                 raise ValueError('Operator %s only supports string values!' % m.group('op')) | ||||
|             # https://github.com/ytdl-org/youtube-dl/issues/11082) | ||||
|             try: | ||||
|                 comparison_value = int(m.group('intval')) | ||||
|                 numeric_comparison = int(comparison_value) | ||||
|             except ValueError: | ||||
|                 comparison_value = parse_filesize(m.group('intval')) | ||||
|                 if comparison_value is None: | ||||
|                     comparison_value = parse_filesize(m.group('intval') + 'B') | ||||
|                 if comparison_value is None: | ||||
|                     raise ValueError( | ||||
|                         'Invalid integer value %r in filter part %r' % ( | ||||
|                             m.group('intval'), filter_part)) | ||||
|                 numeric_comparison = parse_filesize(comparison_value) | ||||
|                 if numeric_comparison is None: | ||||
|                     numeric_comparison = parse_filesize(f'{comparison_value}B') | ||||
|                 if numeric_comparison is None: | ||||
|                     numeric_comparison = parse_duration(comparison_value) | ||||
|         if numeric_comparison is not None and m['op'] in STRING_OPERATORS: | ||||
|             raise ValueError('Operator %s only supports string values!' % m['op']) | ||||
|         if actual_value is None: | ||||
|             return incomplete or m.group('none_inclusive') | ||||
|         return op(actual_value, comparison_value) | ||||
|             return incomplete or m['none_inclusive'] | ||||
|         return op(actual_value, comparison_value if numeric_comparison is None else numeric_comparison) | ||||
|  | ||||
|     UNARY_OPERATORS = { | ||||
|         '': lambda v: (v is True) if isinstance(v, bool) else (v is not None), | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 pukkandan
					pukkandan