mirror of
				https://code.hackerspace.pl/q3k/youtube-dl
				synced 2025-03-16 11:43:02 +00:00 
			
		
		
		
	Fix f4m downloading on Python 2.6
This commit is contained in:
		
							parent
							
								
									6a7a389679
								
							
						
					
					
						commit
						b53466e168
					
				| @ -25,6 +25,7 @@ from youtube_dl.utils import ( | |||||||
|     shell_quote, |     shell_quote, | ||||||
|     smuggle_url, |     smuggle_url, | ||||||
|     str_to_int, |     str_to_int, | ||||||
|  |     struct_unpack, | ||||||
|     timeconvert, |     timeconvert, | ||||||
|     unescapeHTML, |     unescapeHTML, | ||||||
|     unified_strdate, |     unified_strdate, | ||||||
| @ -237,5 +238,8 @@ class TestUtil(unittest.TestCase): | |||||||
|         testPL(5, 2, (2, 99), [2, 3, 4]) |         testPL(5, 2, (2, 99), [2, 3, 4]) | ||||||
|         testPL(5, 2, (20, 99), []) |         testPL(5, 2, (20, 99), []) | ||||||
| 
 | 
 | ||||||
|  |     def test_struct_unpack(self): | ||||||
|  |         self.assertEqual(struct_unpack(u'!B', b'\x00'), (0,)) | ||||||
|  | 
 | ||||||
| if __name__ == '__main__': | if __name__ == '__main__': | ||||||
|     unittest.main() |     unittest.main() | ||||||
|  | |||||||
| @ -4,13 +4,14 @@ import base64 | |||||||
| import io | import io | ||||||
| import itertools | import itertools | ||||||
| import os | import os | ||||||
| from struct import unpack, pack |  | ||||||
| import time | import time | ||||||
| import xml.etree.ElementTree as etree | import xml.etree.ElementTree as etree | ||||||
| 
 | 
 | ||||||
| from .common import FileDownloader | from .common import FileDownloader | ||||||
| from .http import HttpFD | from .http import HttpFD | ||||||
| from ..utils import ( | from ..utils import ( | ||||||
|  |     struct_pack, | ||||||
|  |     struct_unpack, | ||||||
|     compat_urllib_request, |     compat_urllib_request, | ||||||
|     compat_urlparse, |     compat_urlparse, | ||||||
|     format_bytes, |     format_bytes, | ||||||
| @ -27,13 +28,13 @@ class FlvReader(io.BytesIO): | |||||||
| 
 | 
 | ||||||
|     # Utility functions for reading numbers and strings |     # Utility functions for reading numbers and strings | ||||||
|     def read_unsigned_long_long(self): |     def read_unsigned_long_long(self): | ||||||
|         return unpack('!Q', self.read(8))[0] |         return struct_unpack('!Q', self.read(8))[0] | ||||||
| 
 | 
 | ||||||
|     def read_unsigned_int(self): |     def read_unsigned_int(self): | ||||||
|         return unpack('!I', self.read(4))[0] |         return struct_unpack('!I', self.read(4))[0] | ||||||
| 
 | 
 | ||||||
|     def read_unsigned_char(self): |     def read_unsigned_char(self): | ||||||
|         return unpack('!B', self.read(1))[0] |         return struct_unpack('!B', self.read(1))[0] | ||||||
| 
 | 
 | ||||||
|     def read_string(self): |     def read_string(self): | ||||||
|         res = b'' |         res = b'' | ||||||
| @ -196,7 +197,7 @@ def write_flv_header(stream, metadata): | |||||||
|     # Script data |     # Script data | ||||||
|     stream.write(b'\x12') |     stream.write(b'\x12') | ||||||
|     # Size of the metadata with 3 bytes |     # Size of the metadata with 3 bytes | ||||||
|     stream.write(pack('!L', len(metadata))[1:]) |     stream.write(struct_pack('!L', len(metadata))[1:]) | ||||||
|     stream.write(b'\x00\x00\x00\x00\x00\x00\x00') |     stream.write(b'\x00\x00\x00\x00\x00\x00\x00') | ||||||
|     stream.write(metadata) |     stream.write(metadata) | ||||||
|     # Magic numbers extracted from the output files produced by AdobeHDS.php |     # Magic numbers extracted from the output files produced by AdobeHDS.php | ||||||
|  | |||||||
| @ -17,6 +17,7 @@ import platform | |||||||
| import re | import re | ||||||
| import ssl | import ssl | ||||||
| import socket | import socket | ||||||
|  | import struct | ||||||
| import subprocess | import subprocess | ||||||
| import sys | import sys | ||||||
| import traceback | import traceback | ||||||
| @ -1220,3 +1221,20 @@ def uppercase_escape(s): | |||||||
|     return re.sub( |     return re.sub( | ||||||
|         r'\\U([0-9a-fA-F]{8})', |         r'\\U([0-9a-fA-F]{8})', | ||||||
|         lambda m: compat_chr(int(m.group(1), base=16)), s) |         lambda m: compat_chr(int(m.group(1), base=16)), s) | ||||||
|  | 
 | ||||||
|  | try: | ||||||
|  |     struct.pack(u'!I', 0) | ||||||
|  | except TypeError: | ||||||
|  |     # In Python 2.6 (and some 2.7 versions), struct requires a bytes argument | ||||||
|  |     def struct_pack(spec, *args): | ||||||
|  |         if isinstance(spec, compat_str): | ||||||
|  |             spec = spec.encode('ascii') | ||||||
|  |         return struct.pack(spec, *args) | ||||||
|  | 
 | ||||||
|  |     def struct_unpack(spec, *args): | ||||||
|  |         if isinstance(spec, compat_str): | ||||||
|  |             spec = spec.encode('ascii') | ||||||
|  |         return struct.unpack(spec, *args) | ||||||
|  | else: | ||||||
|  |     struct_pack = struct.pack | ||||||
|  |     struct_unpack = struct.unpack | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Philipp Hagemeister
						Philipp Hagemeister