mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	[utils] Correct octal/hexadecimal number detection in js_to_json
This commit is contained in:
		| @@ -1,3 +1,9 @@ | |||||||
|  | version <unreleased> | ||||||
|  |  | ||||||
|  | Core | ||||||
|  | * Fix js_to_json(): correct octal or hexadecimal number detection | ||||||
|  |  | ||||||
|  |  | ||||||
| version 2016.08.19 | version 2016.08.19 | ||||||
|  |  | ||||||
| Core | Core | ||||||
|   | |||||||
| @@ -712,6 +712,9 @@ class TestUtil(unittest.TestCase): | |||||||
|         inp = '''{"foo":101}''' |         inp = '''{"foo":101}''' | ||||||
|         self.assertEqual(js_to_json(inp), '''{"foo":101}''') |         self.assertEqual(js_to_json(inp), '''{"foo":101}''') | ||||||
|  |  | ||||||
|  |         inp = '''{"duration": "00:01:07"}''' | ||||||
|  |         self.assertEqual(js_to_json(inp), '''{"duration": "00:01:07"}''') | ||||||
|  |  | ||||||
|     def test_js_to_json_edgecases(self): |     def test_js_to_json_edgecases(self): | ||||||
|         on = js_to_json("{abc_def:'1\\'\\\\2\\\\\\'3\"4'}") |         on = js_to_json("{abc_def:'1\\'\\\\2\\\\\\'3\"4'}") | ||||||
|         self.assertEqual(json.loads(on), {"abc_def": "1'\\2\\'3\"4"}) |         self.assertEqual(json.loads(on), {"abc_def": "1'\\2\\'3\"4"}) | ||||||
|   | |||||||
| @@ -2038,14 +2038,14 @@ def js_to_json(code): | |||||||
|             }.get(m.group(0), m.group(0)), v[1:-1]) |             }.get(m.group(0), m.group(0)), v[1:-1]) | ||||||
|  |  | ||||||
|         INTEGER_TABLE = ( |         INTEGER_TABLE = ( | ||||||
|             (r'^0[xX][0-9a-fA-F]+', 16), |             (r'^(0[xX][0-9a-fA-F]+)\s*:?$', 16), | ||||||
|             (r'^0+[0-7]+', 8), |             (r'^(0+[0-7]+)\s*:?$', 8), | ||||||
|         ) |         ) | ||||||
|  |  | ||||||
|         for regex, base in INTEGER_TABLE: |         for regex, base in INTEGER_TABLE: | ||||||
|             im = re.match(regex, v) |             im = re.match(regex, v) | ||||||
|             if im: |             if im: | ||||||
|                 i = int(im.group(0), base) |                 i = int(im.group(1), base) | ||||||
|                 return '"%d":' % i if v.endswith(':') else '%d' % i |                 return '"%d":' % i if v.endswith(':') else '%d' % i | ||||||
|  |  | ||||||
|         return '"%s"' % v |         return '"%s"' % v | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Yen Chi Hsuan
					Yen Chi Hsuan