mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	[jsinterp] Fix extract_object (#13580)
				
					
				
			Fixes sig extraction for YouTube player `e12fbea4` Authored by: seproDev
This commit is contained in:
		| @@ -478,6 +478,10 @@ class TestJSInterpreter(unittest.TestCase): | ||||
|         func = jsi.extract_function('c', {'e': 10}, {'f': 100, 'g': 1000}) | ||||
|         self.assertEqual(func([1]), 1111) | ||||
| 
 | ||||
|     def test_extract_object(self): | ||||
|         jsi = JSInterpreter('var a={};a.xy={};var xy;var zxy={};xy={z:function(){return "abc"}};') | ||||
|         self.assertTrue('z' in jsi.extract_object('xy', None)) | ||||
| 
 | ||||
|     def test_increment_decrement(self): | ||||
|         self._test('function f() { var x = 1; return ++x; }', 2) | ||||
|         self._test('function f() { var x = 1; return x++; }', 1) | ||||
|   | ||||
| @@ -133,6 +133,11 @@ _SIG_TESTS = [ | ||||
|         '2aq0aqSyOoJXtK73m-uME_jv7-pT15gOFC02RFkGMqWpzEICs69VdbwQ0LDp1v7j8xx92efCJlYFYb1sUkkBSPOlPmXgIARw8JQ0qOAOAA', | ||||
|         'IAOAOq0QJ8wRAAgXmPlOPSBkkUs1bYFYlJCfe29xx8j7v1pDL0QwbdV96sCIEzpWqMGkFR20CFOg51Tp-7vj_E2u-m37KtXJoOySqa0', | ||||
|     ), | ||||
|     ( | ||||
|         'https://www.youtube.com/s/player/e12fbea4/player_ias.vflset/en_US/base.js', | ||||
|         'gN7a-hudCuAuPH6fByOk1_GNXN0yNMHShjZXS2VOgsEItAJz0tipeavEOmNdYN-wUtcEqD3bCXjc0iyKfAyZxCBGgIARwsSdQfJ2CJtt', | ||||
|         'JC2JfQdSswRAIgGBCxZyAfKyi0cjXCb3DqEctUw-NYdNmOEvaepit0zJAtIEsgOV2SXZjhSHMNy0NXNG_1kOyBf6HPuAuCduh-a', | ||||
|     ), | ||||
| ] | ||||
| 
 | ||||
| _NSIG_TESTS = [ | ||||
|   | ||||
| @@ -857,7 +857,7 @@ class JSInterpreter: | ||||
|         obj = {} | ||||
|         obj_m = re.search( | ||||
|             r'''(?x) | ||||
|                 (?<!\.)%s\s*=\s*{\s* | ||||
|                 (?<![a-zA-Z$0-9.])%s\s*=\s*{\s* | ||||
|                     (?P<fields>(%s\s*:\s*function\s*\(.*?\)\s*{.*?}(?:,\s*)?)*) | ||||
|                 }\s*; | ||||
|             ''' % (re.escape(objname), _FUNC_NAME_RE), | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 sepro
					sepro