diff options
Diffstat (limited to 'youtube_dl/utils.py')
| -rw-r--r-- | youtube_dl/utils.py | 13 | 
1 files changed, 8 insertions, 5 deletions
| diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index 472d4df41..52f0dd09a 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -75,7 +75,7 @@ def preferredencoding():      try:          pref = locale.getpreferredencoding()          'TEST'.encode(pref) -    except: +    except Exception:          pref = 'UTF-8'      return pref @@ -127,7 +127,7 @@ def write_json_file(obj, fn):              except OSError:                  pass          os.rename(tf.name, fn) -    except: +    except Exception:          try:              os.remove(tf.name)          except OSError: @@ -348,7 +348,7 @@ def _htmlentity_transform(entity):      if entity in compat_html_entities.name2codepoint:          return compat_chr(compat_html_entities.name2codepoint[entity]) -    mobj = re.match(r'#(x?[0-9]+)', entity) +    mobj = re.match(r'#(x[0-9a-fA-F]+|[0-9]+)', entity)      if mobj is not None:          numstr = mobj.group(1)          if numstr.startswith('x'): @@ -730,7 +730,8 @@ def unified_strdate(date_str, day_first=True):      # Replace commas      date_str = date_str.replace(',', ' ')      # %z (UTC offset) is only supported in python>=3.2 -    date_str = re.sub(r' ?(\+|-)[0-9]{2}:?[0-9]{2}$', '', date_str) +    if not re.match(r'^[0-9]{1,2}-[0-9]{1,2}-[0-9]{4}$', date_str): +        date_str = re.sub(r' ?(\+|-)[0-9]{2}:?[0-9]{2}$', '', date_str)      # Remove AM/PM + timezone      date_str = re.sub(r'(?i)\s*(?:AM|PM)(?:\s+[A-Z]+)?', '', date_str) @@ -759,6 +760,7 @@ def unified_strdate(date_str, day_first=True):      ]      if day_first:          format_expressions.extend([ +            '%d-%m-%Y',              '%d.%m.%Y',              '%d/%m/%Y',              '%d/%m/%y', @@ -766,6 +768,7 @@ def unified_strdate(date_str, day_first=True):          ])      else:          format_expressions.extend([ +            '%m-%d-%Y',              '%m.%d.%Y',              '%m/%d/%Y',              '%m/%d/%y', @@ -1577,7 +1580,7 @@ def js_to_json(code):          '(?:[^'\\]*(?:\\\\|\\['"nu]))*[^'\\]*'|          [a-zA-Z_][.a-zA-Z_0-9]*          ''', fix_kv, code) -    res = re.sub(r',(\s*\])', lambda m: m.group(1), res) +    res = re.sub(r',(\s*[\]}])', lambda m: m.group(1), res)      return res | 
