X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Futils.py;h=dce67de8ac323441926aa1337153e193b88f8c0a;hb=a7ab46375b81dfab6b46535796f3f63296c7bb2c;hp=18dbe28bb5ecbcdb922f292490a43ccf6662ac9b;hpb=2b14cb566fde3e5482ce9a63b2be7103cec939e0;p=youtube-dl diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index 18dbe28bb..dce67de8a 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -1717,6 +1717,16 @@ def encode_dict(d, encoding='utf-8'): return dict((encode(k), encode(v)) for k, v in d.items()) +def dict_get(d, key_or_keys, default=None, skip_false_values=True): + if isinstance(key_or_keys, (list, tuple)): + for key in key_or_keys: + if key not in d or d[key] is None or skip_false_values and not d[key]: + continue + return d[key] + return default + return d.get(key_or_keys, default) + + def encode_compat_str(string, encoding=preferredencoding(), errors='strict'): return string if isinstance(string, compat_str) else compat_str(string, encoding, errors) @@ -1739,7 +1749,7 @@ def parse_age_limit(s): def strip_jsonp(code): return re.sub( - r'(?s)^[a-zA-Z0-9_]+\s*\(\s*(.*)\);?\s*?(?://[^\n]*)*$', r'\1', code) + r'(?s)^[a-zA-Z0-9_.]+\s*\(\s*(.*)\);?\s*?(?://[^\n]*)*$', r'\1', code) def js_to_json(code): @@ -2017,7 +2027,7 @@ def dfxp2srt(dfxp_data): 'ttaf1': 'http://www.w3.org/2006/10/ttaf1', }) - class TTMLPElementParser: + class TTMLPElementParser(object): out = '' def start(self, tag, attrib):