mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-11-04 08:35:12 +00:00 
			
		
		
		
	[utils:js_to_json] Fix bad escape in double quoted strings
This commit is contained in:
		@@ -495,6 +495,9 @@ class TestUtil(unittest.TestCase):
 | 
				
			|||||||
            "playlist":[{"controls":{"all":null}}]
 | 
					            "playlist":[{"controls":{"all":null}}]
 | 
				
			||||||
        }''')
 | 
					        }''')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        inp = '''"The CW\\'s \\'Crazy Ex-Girlfriend\\'"'''
 | 
				
			||||||
 | 
					        self.assertEqual(js_to_json(inp), '''"The CW's 'Crazy Ex-Girlfriend'"''')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        inp = '"SAND Number: SAND 2013-7800P\\nPresenter: Tom Russo\\nHabanero Software Training - Xyce Software\\nXyce, Sandia\\u0027s"'
 | 
					        inp = '"SAND Number: SAND 2013-7800P\\nPresenter: Tom Russo\\nHabanero Software Training - Xyce Software\\nXyce, Sandia\\u0027s"'
 | 
				
			||||||
        json_code = js_to_json(inp)
 | 
					        json_code = js_to_json(inp)
 | 
				
			||||||
        self.assertEqual(json.loads(json_code), json.loads(inp))
 | 
					        self.assertEqual(json.loads(json_code), json.loads(inp))
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1701,8 +1701,8 @@ def js_to_json(code):
 | 
				
			|||||||
        if v in ('true', 'false', 'null'):
 | 
					        if v in ('true', 'false', 'null'):
 | 
				
			||||||
            return v
 | 
					            return v
 | 
				
			||||||
        if v.startswith('"'):
 | 
					        if v.startswith('"'):
 | 
				
			||||||
            return v
 | 
					            v = re.sub(r"\\'", "'", v[1:-1])
 | 
				
			||||||
        if v.startswith("'"):
 | 
					        elif v.startswith("'"):
 | 
				
			||||||
            v = v[1:-1]
 | 
					            v = v[1:-1]
 | 
				
			||||||
            v = re.sub(r"\\\\|\\'|\"", lambda m: {
 | 
					            v = re.sub(r"\\\\|\\'|\"", lambda m: {
 | 
				
			||||||
                '\\\\': '\\\\',
 | 
					                '\\\\': '\\\\',
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user