mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	[swfinterp] Allow function patching
This commit is contained in:
		| @@ -150,6 +150,7 @@ def _read_byte(reader): | ||||
|  | ||||
| class SWFInterpreter(object): | ||||
|     def __init__(self, file_contents): | ||||
|         self._patched_functions = {} | ||||
|         code_tag = next(tag | ||||
|                         for tag_code, tag in _extract_tags(file_contents) | ||||
|                         if tag_code == 82) | ||||
| @@ -354,6 +355,9 @@ class SWFInterpreter(object): | ||||
|  | ||||
|         assert p + code_reader.tell() == len(code_tag) | ||||
|  | ||||
|     def patch_function(self, avm_class, func_name, f): | ||||
|         self._patched_functions[(avm_class, func_name)] = f | ||||
|  | ||||
|     def extract_class(self, class_name): | ||||
|         try: | ||||
|             return self._classes_by_name[class_name] | ||||
| @@ -361,6 +365,9 @@ class SWFInterpreter(object): | ||||
|             raise ExtractorError('Class %r not found' % class_name) | ||||
|  | ||||
|     def extract_function(self, avm_class, func_name): | ||||
|         p = self._patched_functions.get((avm_class, func_name)) | ||||
|         if p: | ||||
|             return p | ||||
|         if func_name in avm_class.method_pyfunctions: | ||||
|             return avm_class.method_pyfunctions[func_name] | ||||
|         if func_name in self._classes_by_name: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Philipp Hagemeister
					Philipp Hagemeister