diff options
Diffstat (limited to 'youtube_dl/utils.py')
| -rw-r--r-- | youtube_dl/utils.py | 38 | 
1 files changed, 37 insertions, 1 deletions
| diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index 4593488ce..2e48f187e 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -1,6 +1,7 @@  #!/usr/bin/env python  # -*- coding: utf-8 -*- +import ctypes  import datetime  import email.utils  import errno @@ -766,6 +767,10 @@ def unified_strdate(date_str):              upload_date = datetime.datetime.strptime(date_str, expression).strftime('%Y%m%d')          except:              pass +    if upload_date is None: +        timetuple = email.utils.parsedate_tz(date_str) +        if timetuple: +            upload_date = datetime.datetime(*timetuple[:6]).strftime('%Y%m%d')      return upload_date  def determine_ext(url, default_ext=u'unknown_video'): @@ -1051,7 +1056,7 @@ def month_by_name(name):      """ Return the number of a month by (locale-independently) English name """      ENGLISH_NAMES = [ -        u'Januar', u'February', u'March', u'April', u'May', u'June', +        u'January', u'February', u'March', u'April', u'May', u'June',          u'July', u'August', u'September', u'October', u'November', u'December']      try:          return ENGLISH_NAMES.index(name) + 1 @@ -1062,3 +1067,34 @@ def month_by_name(name):  def fix_xml_all_ampersand(xml_str):      """Replace all the '&' by '&' in XML"""      return xml_str.replace(u'&', u'&') + + +def setproctitle(title): +    assert isinstance(title, type(u'')) +    try: +        libc = ctypes.cdll.LoadLibrary("libc.so.6") +    except OSError: +        return +    title = title +    buf = ctypes.create_string_buffer(len(title) + 1) +    buf.value = title.encode('utf-8') +    try: +        libc.prctl(15, ctypes.byref(buf), 0, 0, 0) +    except AttributeError: +        return  # Strange libc, just skip this + + +def remove_start(s, start): +    if s.startswith(start): +        return s[len(start):] +    return s + + +def url_basename(url): +    path = compat_urlparse.urlparse(url).path +    return path.strip(u'/').split(u'/')[-1] + + +class HEADRequest(compat_urllib_request.Request): +    def get_method(self): +        return "HEAD" | 
