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 ff124d9e8..ed5ee222f 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -225,7 +225,7 @@ if sys.version_info >= (2,7):      def find_xpath_attr(node, xpath, key, val):          """ Find the xpath xpath[@key=val] """          assert re.match(r'^[a-zA-Z]+$', key) -        assert re.match(r'^[a-zA-Z0-9@\s]*$', val) +        assert re.match(r'^[a-zA-Z0-9@\s:._]*$', val)          expr = xpath + u"[@%s='%s']" % (key, val)          return node.find(expr)  else: @@ -1093,9 +1093,12 @@ def month_by_name(name):          return None -def fix_xml_all_ampersand(xml_str): +def fix_xml_ampersands(xml_str):      """Replace all the '&' by '&' in XML""" -    return xml_str.replace(u'&', u'&') +    return re.sub( +        r'&(?!amp;|lt;|gt;|apos;|quot;|#x[0-9a-fA-F]{,4};|#[0-9]{,4};)', +        u'&', +        xml_str)  def setproctitle(title): @@ -1129,8 +1132,8 @@ class HEADRequest(compat_urllib_request.Request):          return "HEAD" -def int_or_none(v): -    return v if v is None else int(v) +def int_or_none(v, scale=1): +    return v if v is None else (int(v) // scale)  def parse_duration(s): | 
