mirror of
https://github.com/ytdl-org/youtube-dl
synced 2024-11-27 04:26:50 +01:00
[utils] Add and use filter_dict()
from yt-dlp
This commit is contained in:
parent
2d2a4bc832
commit
e4178b5af3
@ -2586,7 +2586,7 @@ def handle_youtubedl_headers(headers):
|
|||||||
filtered_headers = headers
|
filtered_headers = headers
|
||||||
|
|
||||||
if 'Youtubedl-no-compression' in filtered_headers:
|
if 'Youtubedl-no-compression' in filtered_headers:
|
||||||
filtered_headers = dict((k, v) for k, v in filtered_headers.items() if k.lower() != 'accept-encoding')
|
filtered_headers = filter_dict(filtered_headers, cndn=lambda k, _: k.lower() != 'accept-encoding')
|
||||||
del filtered_headers['Youtubedl-no-compression']
|
del filtered_headers['Youtubedl-no-compression']
|
||||||
|
|
||||||
return filtered_headers
|
return filtered_headers
|
||||||
@ -3102,9 +3102,7 @@ class YoutubeDLRedirectHandler(compat_urllib_request.HTTPRedirectHandler):
|
|||||||
new_data = None
|
new_data = None
|
||||||
remove_headers.extend(['Content-Length', 'Content-Type'])
|
remove_headers.extend(['Content-Length', 'Content-Type'])
|
||||||
|
|
||||||
# NB: don't use dict comprehension for python 2.6 compatibility
|
new_headers = filter_dict(req.headers, cndn=lambda k, _: k.title() not in remove_headers)
|
||||||
new_headers = dict((k, v) for k, v in req.headers.items()
|
|
||||||
if k.title() not in remove_headers)
|
|
||||||
|
|
||||||
return compat_urllib_request.Request(
|
return compat_urllib_request.Request(
|
||||||
newurl, headers=new_headers, origin_req_host=req.origin_req_host,
|
newurl, headers=new_headers, origin_req_host=req.origin_req_host,
|
||||||
@ -4377,6 +4375,11 @@ def try_get(src, getter, expected_type=None):
|
|||||||
return v
|
return v
|
||||||
|
|
||||||
|
|
||||||
|
def filter_dict(dct, cndn=lambda _, v: v is not None):
|
||||||
|
# NB: don't use dict comprehension for python 2.6 compatibility
|
||||||
|
return dict((k, v) for k, v in dct.items() if cndn(k, v))
|
||||||
|
|
||||||
|
|
||||||
def merge_dicts(*dicts, **kwargs):
|
def merge_dicts(*dicts, **kwargs):
|
||||||
"""
|
"""
|
||||||
Merge the `dict`s in `dicts` using the first valid value for each key.
|
Merge the `dict`s in `dicts` using the first valid value for each key.
|
||||||
|
Loading…
Reference in New Issue
Block a user