X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;ds=sidebyside;f=youtube_dl%2Futils.py;h=6f53337d49496561cada56ed149866fa4f949c0e;hb=7ec1a206eaedcb35c16ba54289d3c7f92baa59ce;hp=922e17eccfac611a1d90bf83e913383c9afce30d;hpb=5dc846fad08126c372cd80bd473165182e0b541c;p=youtube-dl diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index 922e17ecc..6f53337d4 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -19,7 +19,7 @@ except ImportError: import StringIO std_headers = { - 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:5.0.1) Gecko/20100101 Firefox/5.0.1', + 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20100101 Firefox/10.0', 'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Encoding': 'gzip, deflate', @@ -83,7 +83,6 @@ class IDParser(HTMLParser.HTMLParser): HTMLParser.HTMLParser.__init__(self) def error(self, message): - print >> sys.stderr, self.getpos() if self.error_count > 10 or self.started: raise HTMLParser.HTMLParseError(message, self.getpos()) self.rawdata = '\n'.join(self.html.split('\n')[self.getpos()[0]:]) # skip one line @@ -194,10 +193,20 @@ def timeconvert(timestr): def sanitize_filename(s): """Sanitizes a string so it could be used as part of a filename.""" def replace_insane(char): - if char in u' .\\/|?*<>:"' or ord(char) < 32: - return '_' + if char == '?' or ord(char) < 32 or ord(char) == 127: + return '' + elif char == '"': + return '\'' + elif char == ':': + return ' -' + elif char in '\\/|*<>': + return '-' return char - return u''.join(map(replace_insane, s)).strip('_') + + result = u''.join(map(replace_insane, s)) + while '--' in result: + result = result.replace('--', '-') + return result.strip('-') def orderedSet(iterable): """ Remove all duplicates from the input iterable """