mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	Authored by: ChillingPepper, pukkandan
This commit is contained in:
		| @@ -954,6 +954,85 @@ class TestUtil(unittest.TestCase): | |||||||
|         ) |         ) | ||||||
|         self.assertEqual(escape_url('http://vimeo.com/56015672#at=0'), 'http://vimeo.com/56015672#at=0') |         self.assertEqual(escape_url('http://vimeo.com/56015672#at=0'), 'http://vimeo.com/56015672#at=0') | ||||||
| 
 | 
 | ||||||
|  |     def test_js_to_json_vars_strings(self): | ||||||
|  |         self.assertDictEqual( | ||||||
|  |             json.loads(js_to_json( | ||||||
|  |                 '''{ | ||||||
|  |                     'null': a, | ||||||
|  |                     'nullStr': b, | ||||||
|  |                     'true': c, | ||||||
|  |                     'trueStr': d, | ||||||
|  |                     'false': e, | ||||||
|  |                     'falseStr': f, | ||||||
|  |                     'unresolvedVar': g, | ||||||
|  |                 }''', | ||||||
|  |                 { | ||||||
|  |                     'a': 'null', | ||||||
|  |                     'b': '"null"', | ||||||
|  |                     'c': 'true', | ||||||
|  |                     'd': '"true"', | ||||||
|  |                     'e': 'false', | ||||||
|  |                     'f': '"false"', | ||||||
|  |                     'g': 'var', | ||||||
|  |                 } | ||||||
|  |             )), | ||||||
|  |             { | ||||||
|  |                 'null': None, | ||||||
|  |                 'nullStr': 'null', | ||||||
|  |                 'true': True, | ||||||
|  |                 'trueStr': 'true', | ||||||
|  |                 'false': False, | ||||||
|  |                 'falseStr': 'false', | ||||||
|  |                 'unresolvedVar': 'var' | ||||||
|  |             } | ||||||
|  |         ) | ||||||
|  | 
 | ||||||
|  |         self.assertDictEqual( | ||||||
|  |             json.loads(js_to_json( | ||||||
|  |                 '''{ | ||||||
|  |                     'int': a, | ||||||
|  |                     'intStr': b, | ||||||
|  |                     'float': c, | ||||||
|  |                     'floatStr': d, | ||||||
|  |                 }''', | ||||||
|  |                 { | ||||||
|  |                     'a': '123', | ||||||
|  |                     'b': '"123"', | ||||||
|  |                     'c': '1.23', | ||||||
|  |                     'd': '"1.23"', | ||||||
|  |                 } | ||||||
|  |             )), | ||||||
|  |             { | ||||||
|  |                 'int': 123, | ||||||
|  |                 'intStr': '123', | ||||||
|  |                 'float': 1.23, | ||||||
|  |                 'floatStr': '1.23', | ||||||
|  |             } | ||||||
|  |         ) | ||||||
|  | 
 | ||||||
|  |         self.assertDictEqual( | ||||||
|  |             json.loads(js_to_json( | ||||||
|  |                 '''{ | ||||||
|  |                     'object': a, | ||||||
|  |                     'objectStr': b, | ||||||
|  |                     'array': c, | ||||||
|  |                     'arrayStr': d, | ||||||
|  |                 }''', | ||||||
|  |                 { | ||||||
|  |                     'a': '{}', | ||||||
|  |                     'b': '"{}"', | ||||||
|  |                     'c': '[]', | ||||||
|  |                     'd': '"[]"', | ||||||
|  |                 } | ||||||
|  |             )), | ||||||
|  |             { | ||||||
|  |                 'object': {}, | ||||||
|  |                 'objectStr': '{}', | ||||||
|  |                 'array': [], | ||||||
|  |                 'arrayStr': '[]', | ||||||
|  |             } | ||||||
|  |         ) | ||||||
|  | 
 | ||||||
|     def test_js_to_json_realworld(self): |     def test_js_to_json_realworld(self): | ||||||
|         inp = '''{ |         inp = '''{ | ||||||
|             'clip':{'provider':'pseudo'} |             'clip':{'provider':'pseudo'} | ||||||
|   | |||||||
| @@ -3360,7 +3360,13 @@ def js_to_json(code, vars={}, *, strict=False): | |||||||
|                 return f'"{i}":' if v.endswith(':') else str(i) |                 return f'"{i}":' if v.endswith(':') else str(i) | ||||||
| 
 | 
 | ||||||
|         if v in vars: |         if v in vars: | ||||||
|             return json.dumps(vars[v]) |             try: | ||||||
|  |                 if not strict: | ||||||
|  |                     json.loads(vars[v]) | ||||||
|  |             except json.decoder.JSONDecodeError: | ||||||
|  |                 return json.dumps(vars[v]) | ||||||
|  |             else: | ||||||
|  |                 return vars[v] | ||||||
| 
 | 
 | ||||||
|         if not strict: |         if not strict: | ||||||
|             return f'"{v}"' |             return f'"{v}"' | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 ChillingPepper
					ChillingPepper