mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-10-29 09:26:20 -07:00 
			
		
		
		
	[utils] Skip ! prefixed code in js_to_json
This commit is contained in:
		| @@ -937,6 +937,28 @@ class TestUtil(unittest.TestCase): | |||||||
|         self.assertEqual(d['x'], 1) |         self.assertEqual(d['x'], 1) | ||||||
|         self.assertEqual(d['y'], 'a') |         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",]') |         on = js_to_json('["abc", "def",]') | ||||||
|         self.assertEqual(json.loads(on), ['abc', 'def']) |         self.assertEqual(json.loads(on), ['abc', 'def']) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -4078,7 +4078,7 @@ def js_to_json(code): | |||||||
|         v = m.group(0) |         v = m.group(0) | ||||||
|         if v in ('true', 'false', 'null'): |         if v in ('true', 'false', 'null'): | ||||||
|             return v |             return v | ||||||
|         elif v.startswith('/*') or v.startswith('//') or v == ',': |         elif v.startswith('/*') or v.startswith('//') or v.startswith('!') or v == ',': | ||||||
|             return "" |             return "" | ||||||
|  |  | ||||||
|         if v[0] in ("'", '"'): |         if v[0] in ("'", '"'): | ||||||
| @@ -4103,7 +4103,8 @@ def js_to_json(code): | |||||||
|         {comment}|,(?={skip}[\]}}])| |         {comment}|,(?={skip}[\]}}])| | ||||||
|         (?:(?<![0-9])[eE]|[a-df-zA-DF-Z_])[.a-zA-Z_0-9]*| |         (?:(?<![0-9])[eE]|[a-df-zA-DF-Z_])[.a-zA-Z_0-9]*| | ||||||
|         \b(?:0[xX][0-9a-fA-F]+|0+[0-7]+)(?:{skip}:)?| |         \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) |         '''.format(comment=COMMENT_RE, skip=SKIP_RE), fix_kv, code) | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user