aboutsummaryrefslogtreecommitdiff
path: root/youtube_dl
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2018-04-28 02:47:17 +0700
committerSergey M․ <dstftw@gmail.com>2018-04-28 02:47:17 +0700
commit6cc622327ff8289f94894f3695ed31014c61cf8e (patch)
tree062f24b4bcc328c6d8d3621d32f5bc7b35f49756 /youtube_dl
parent0fe7783eced5c62dbd95780c2150fd1080bd3927 (diff)
downloadyoutube-dl-6cc622327ff8289f94894f3695ed31014c61cf8e.tar.xz
[utils] Introduce merge_dicts
Diffstat (limited to 'youtube_dl')
-rw-r--r--youtube_dl/extractor/generic.py16
-rw-r--r--youtube_dl/utils.py14
2 files changed, 15 insertions, 15 deletions
diff --git a/youtube_dl/extractor/generic.py b/youtube_dl/extractor/generic.py
index af1322e00..d48914495 100644
--- a/youtube_dl/extractor/generic.py
+++ b/youtube_dl/extractor/generic.py
@@ -23,6 +23,7 @@ from ..utils import (
is_html,
js_to_json,
KNOWN_EXTENSIONS,
+ merge_dicts,
mimetype2ext,
orderedSet,
sanitized_Request,
@@ -3002,21 +3003,6 @@ class GenericIE(InfoExtractor):
return self.playlist_from_matches(
sharevideos_urls, video_id, video_title)
- def merge_dicts(dict1, dict2):
- merged = {}
- for k, v in dict1.items():
- if v is not None:
- merged[k] = v
- for k, v in dict2.items():
- if v is None:
- continue
- if (k not in merged or
- (isinstance(v, compat_str) and v and
- isinstance(merged[k], compat_str) and
- not merged[k])):
- merged[k] = v
- return merged
-
# Look for HTML5 media
entries = self._parse_html5_media_entries(url, webpage, video_id, m3u8_id='hls')
if entries:
diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py
index 574284e94..b460393bf 100644
--- a/youtube_dl/utils.py
+++ b/youtube_dl/utils.py
@@ -2225,6 +2225,20 @@ def try_get(src, getter, expected_type=None):
return v
+def merge_dicts(*dicts):
+ merged = {}
+ for a_dict in dicts:
+ for k, v in a_dict.items():
+ if v is None:
+ continue
+ if (k not in merged or
+ (isinstance(v, compat_str) and v and
+ isinstance(merged[k], compat_str) and
+ not merged[k])):
+ merged[k] = v
+ return merged
+
+
def encode_compat_str(string, encoding=preferredencoding(), errors='strict'):
return string if isinstance(string, compat_str) else compat_str(string, encoding, errors)