Sergey M․
7 years ago
No known key found for this signature in database
GPG Key ID: 2C393E0F18A9236D
3 changed files with
35 additions and
17 deletions
-
youtube_dl/compat.py
-
youtube_dl/downloader/ism.py
-
youtube_dl/utils.py
|
|
@ -2897,9 +2897,24 @@ except TypeError: |
|
|
|
if isinstance(spec, compat_str): |
|
|
|
spec = spec.encode('ascii') |
|
|
|
return struct.unpack(spec, *args) |
|
|
|
|
|
|
|
class compat_Struct(struct.Struct): |
|
|
|
def __init__(self, fmt): |
|
|
|
if isinstance(fmt, compat_str): |
|
|
|
fmt = fmt.encode('ascii') |
|
|
|
super(compat_Struct, self).__init__(fmt) |
|
|
|
else: |
|
|
|
compat_struct_pack = struct.pack |
|
|
|
compat_struct_unpack = struct.unpack |
|
|
|
if platform.python_implementation() == 'IronPython' and sys.version_info < (2, 7, 8): |
|
|
|
class compat_Struct(struct.Struct): |
|
|
|
def unpack(self, string): |
|
|
|
if not isinstance(string, buffer): |
|
|
|
string = buffer(string) |
|
|
|
return super(compat_Struct, self).unpack(string) |
|
|
|
else: |
|
|
|
compat_Struct = struct.Struct |
|
|
|
|
|
|
|
|
|
|
|
try: |
|
|
|
from future_builtins import zip as compat_zip |
|
|
@ -2941,6 +2956,7 @@ __all__ = [ |
|
|
|
'compat_HTMLParseError', |
|
|
|
'compat_HTMLParser', |
|
|
|
'compat_HTTPError', |
|
|
|
'compat_Struct', |
|
|
|
'compat_b64decode', |
|
|
|
'compat_basestring', |
|
|
|
'compat_chr', |
|
|
|
|
|
@ -1,25 +1,27 @@ |
|
|
|
from __future__ import unicode_literals |
|
|
|
|
|
|
|
import time |
|
|
|
import struct |
|
|
|
import binascii |
|
|
|
import io |
|
|
|
|
|
|
|
from .fragment import FragmentFD |
|
|
|
from ..compat import compat_urllib_error |
|
|
|
|
|
|
|
|
|
|
|
u8 = struct.Struct(b'>B') |
|
|
|
u88 = struct.Struct(b'>Bx') |
|
|
|
u16 = struct.Struct(b'>H') |
|
|
|
u1616 = struct.Struct(b'>Hxx') |
|
|
|
u32 = struct.Struct(b'>I') |
|
|
|
u64 = struct.Struct(b'>Q') |
|
|
|
|
|
|
|
s88 = struct.Struct(b'>bx') |
|
|
|
s16 = struct.Struct(b'>h') |
|
|
|
s1616 = struct.Struct(b'>hxx') |
|
|
|
s32 = struct.Struct(b'>i') |
|
|
|
from ..compat import ( |
|
|
|
compat_Struct, |
|
|
|
compat_urllib_error, |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
u8 = compat_Struct('>B') |
|
|
|
u88 = compat_Struct('>Bx') |
|
|
|
u16 = compat_Struct('>H') |
|
|
|
u1616 = compat_Struct('>Hxx') |
|
|
|
u32 = compat_Struct('>I') |
|
|
|
u64 = compat_Struct('>Q') |
|
|
|
|
|
|
|
s88 = compat_Struct('>bx') |
|
|
|
s16 = compat_Struct('>h') |
|
|
|
s1616 = compat_Struct('>hxx') |
|
|
|
s32 = compat_Struct('>i') |
|
|
|
|
|
|
|
unity_matrix = (s32.pack(0x10000) + s32.pack(0) * 3) * 2 + s32.pack(0x40000000) |
|
|
|
|
|
|
|
|
|
@ -866,8 +866,8 @@ def _create_http_connection(ydl_handler, http_class, is_https, *args, **kwargs): |
|
|
|
# expected HTTP responses to meet HTTP/1.0 or later (see also |
|
|
|
# https://github.com/rg3/youtube-dl/issues/6727) |
|
|
|
if sys.version_info < (3, 0): |
|
|
|
kwargs[b'strict'] = True |
|
|
|
hc = http_class(*args, **kwargs) |
|
|
|
kwargs['strict'] = True |
|
|
|
hc = http_class(*args, **compat_kwargs(kwargs)) |
|
|
|
source_address = ydl_handler._params.get('source_address') |
|
|
|
if source_address is not None: |
|
|
|
sa = (source_address, 0) |
|
|
|