mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +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 | ||||
|  | ||||
| Core | ||||
|   | ||||
| @@ -712,6 +712,9 @@ class TestUtil(unittest.TestCase): | ||||
|         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): | ||||
|         on = js_to_json("{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]) | ||||
|  | ||||
|         INTEGER_TABLE = ( | ||||
|             (r'^0[xX][0-9a-fA-F]+', 16), | ||||
|             (r'^0+[0-7]+', 8), | ||||
|             (r'^(0[xX][0-9a-fA-F]+)\s*:?$', 16), | ||||
|             (r'^(0+[0-7]+)\s*:?$', 8), | ||||
|         ) | ||||
|  | ||||
|         for regex, base in INTEGER_TABLE: | ||||
|             im = re.match(regex, v) | ||||
|             if im: | ||||
|                 i = int(im.group(0), base) | ||||
|                 i = int(im.group(1), base) | ||||
|                 return '"%d":' % i if v.endswith(':') else '%d' % i | ||||
|  | ||||
|         return '"%s"' % v | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Yen Chi Hsuan
					Yen Chi Hsuan