diff options
author | Jesús <heckyel@hyperbola.info> | 2022-03-05 00:59:20 +0800 |
---|---|---|
committer | Jesús <heckyel@hyperbola.info> | 2022-03-05 00:59:20 +0800 |
commit | f4f05a6915b8683655b073654d58f70a92f96330 (patch) | |
tree | f0fb8acb7acb580030f1b0b758ad03531d6cbb39 /yt_dlp/utils.py | |
parent | 2064247b6faafff3ee304ea6ec58495b8d9ee023 (diff) | |
parent | 72e995f1226a2fce3cd7f5fda50ebe024fe2a57e (diff) | |
download | hypervideo-pre-f4f05a6915b8683655b073654d58f70a92f96330.tar.lz hypervideo-pre-f4f05a6915b8683655b073654d58f70a92f96330.tar.xz hypervideo-pre-f4f05a6915b8683655b073654d58f70a92f96330.zip |
updated from upstream | 05/03/2022 at 00:59
Diffstat (limited to 'yt_dlp/utils.py')
-rw-r--r-- | yt_dlp/utils.py | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/yt_dlp/utils.py b/yt_dlp/utils.py index 5eb049ab7..be0c69d8f 100644 --- a/yt_dlp/utils.py +++ b/yt_dlp/utils.py @@ -1060,7 +1060,7 @@ class ExtractorError(YoutubeDLError): if sys.exc_info()[0] in network_exceptions: expected = True - self.msg = str(msg) + self.orig_msg = str(msg) self.traceback = tb self.expected = expected self.cause = cause @@ -1071,7 +1071,7 @@ class ExtractorError(YoutubeDLError): super(ExtractorError, self).__init__(''.join(( format_field(ie, template='[%s] '), format_field(video_id, template='%s: '), - self.msg, + msg, format_field(cause, template=' (caused by %r)'), '' if expected else bug_reports_message()))) @@ -1372,7 +1372,7 @@ class YoutubeDLHandler(compat_urllib_request.HTTPHandler): if url != url_escaped: req = update_Request(req, url=url_escaped) - for h, v in std_headers.items(): + for h, v in self._params.get('http_headers', std_headers).items(): # Capitalize is needed because of Python bug 2275: http://bugs.python.org/issue2275 # The dict keys are capitalized because of this bug by urllib if h.capitalize() not in req.headers: @@ -2257,7 +2257,7 @@ def unsmuggle_url(smug_url, default=None): def format_decimal_suffix(num, fmt='%d%s', *, factor=1000): """ Formats numbers with decimal sufixes like K, M, etc """ num, factor = float_or_none(num), float(factor) - if num is None: + if num is None or num < 0: return None exponent = 0 if num == 0 else int(math.log(num, factor)) suffix = ['', *'kMGTPEZY'][exponent] @@ -5436,3 +5436,8 @@ class WebSocketsWrapper(): has_websockets = bool(compat_websockets) + + +def merge_headers(*dicts): + """Merge dicts of network headers case insensitively, prioritizing the latter ones""" + return {k.capitalize(): v for k, v in itertools.chain.from_iterable(map(dict.items, dicts))} |