mirror of
				https://github.com/ytdl-org/youtube-dl
				synced 2025-11-04 03:33:46 +00:00 
			
		
		
		
	[utils] Skip ! prefixed code in js_to_json
This commit is contained in:
		
							parent
							
								
									6d3bdcf217
								
							
						
					
					
						commit
						fe07e788bf
					
				@ -937,6 +937,28 @@ class TestUtil(unittest.TestCase):
 | 
			
		||||
        self.assertEqual(d['x'], 1)
 | 
			
		||||
        self.assertEqual(d['y'], 'a')
 | 
			
		||||
 | 
			
		||||
        # Just drop ! prefix for now though this results in a wrong value
 | 
			
		||||
        on = js_to_json('''{
 | 
			
		||||
            a: !0,
 | 
			
		||||
            b: !1,
 | 
			
		||||
            c: !!0,
 | 
			
		||||
            d: !!42.42,
 | 
			
		||||
            e: !!![],
 | 
			
		||||
            f: !"abc",
 | 
			
		||||
            g: !"",
 | 
			
		||||
            !42: 42
 | 
			
		||||
        }''')
 | 
			
		||||
        self.assertEqual(json.loads(on), {
 | 
			
		||||
            'a': 0,
 | 
			
		||||
            'b': 1,
 | 
			
		||||
            'c': 0,
 | 
			
		||||
            'd': 42.42,
 | 
			
		||||
            'e': [],
 | 
			
		||||
            'f': "abc",
 | 
			
		||||
            'g': "",
 | 
			
		||||
            '42': 42
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
        on = js_to_json('["abc", "def",]')
 | 
			
		||||
        self.assertEqual(json.loads(on), ['abc', 'def'])
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -4078,7 +4078,7 @@ def js_to_json(code):
 | 
			
		||||
        v = m.group(0)
 | 
			
		||||
        if v in ('true', 'false', 'null'):
 | 
			
		||||
            return v
 | 
			
		||||
        elif v.startswith('/*') or v.startswith('//') or v == ',':
 | 
			
		||||
        elif v.startswith('/*') or v.startswith('//') or v.startswith('!') or v == ',':
 | 
			
		||||
            return ""
 | 
			
		||||
 | 
			
		||||
        if v[0] in ("'", '"'):
 | 
			
		||||
@ -4103,7 +4103,8 @@ def js_to_json(code):
 | 
			
		||||
        {comment}|,(?={skip}[\]}}])|
 | 
			
		||||
        (?:(?<![0-9])[eE]|[a-df-zA-DF-Z_])[.a-zA-Z_0-9]*|
 | 
			
		||||
        \b(?:0[xX][0-9a-fA-F]+|0+[0-7]+)(?:{skip}:)?|
 | 
			
		||||
        [0-9]+(?={skip}:)
 | 
			
		||||
        [0-9]+(?={skip}:)|
 | 
			
		||||
        !+
 | 
			
		||||
        '''.format(comment=COMMENT_RE, skip=SKIP_RE), fix_kv, code)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user