X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Futils.py;h=3cf29e63a36a9210fefbd2c64e46839fb9434017;hb=685052fc7b8e7c70fc524098e45f0c1052c5eaec;hp=02b8f7c45b6519f86430051ba627ae0eb127a635;hpb=f55a1f0a8815c89b01a7a353cfa0bd5118f75829;p=youtube-dl diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index 02b8f7c45..3cf29e63a 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -22,6 +22,7 @@ import struct import subprocess import sys import traceback +import xml.etree.ElementTree import zlib try: @@ -777,6 +778,7 @@ def unified_strdate(date_str): '%Y/%m/%d %H:%M:%S', '%Y-%m-%d %H:%M:%S', '%d.%m.%Y %H:%M', + '%d.%m.%Y %H.%M', '%Y-%m-%dT%H:%M:%SZ', '%Y-%m-%dT%H:%M:%S.%fZ', '%Y-%m-%dT%H:%M:%S.%f0Z', @@ -1263,3 +1265,17 @@ def read_batch_urls(batch_fd): with contextlib.closing(batch_fd) as fd: return [url for url in map(fixup, fd) if url] + + +def urlencode_postdata(*args, **kargs): + return compat_urllib_parse.urlencode(*args, **kargs).encode('ascii') + + +def parse_xml(s): + class TreeBuilder(xml.etree.ElementTree.TreeBuilder): + def doctype(self, name, pubid, system): + pass # Ignore doctypes + + parser = xml.etree.ElementTree.XMLParser(target=TreeBuilder()) + kwargs = {'parser': parser} if sys.version_info >= (2, 7) else {} + return xml.etree.ElementTree.XML(s.encode('utf-8'), **kwargs)