def getNewVersion(urlOfXML): '''Checking new version via parsing XML string to extract version number. >>> getNewVersion('http://xxx/sample.xml') # New version available. (True, {'version': '1.3.0', 'date': '2010-10-01', 'url': 'http://xxx/release-notes-1.3.0.html' }) >>> getNewVersion('http://xxx/sample.xml') # Error while checking. (False, 'HTTP Error 404: Not Found') ''' try: socket.setdefaulttimeout(5) dom = parseXMLString(urllib2.urlopen(urlOfXML).read()) version = dom.documentElement.getElementsByTagName('version')[0].childNodes[0].data date = dom.documentElement.getElementsByTagName('date')[0].childNodes[0].data urlOfReleaseNotes = dom.documentElement.getElementsByTagName('releasenotes')[0].childNodes[0].data d = {'version': str(version), 'date': str(date), 'url': str(urlOfReleaseNotes), } return (True, d) except Exception, e: return (False, str(e))
def getNewVersion(urlOfXML): '''Checking new version via parsing XML string to extract version number. >>> getNewVersion('http://xxx/sample.xml') # New version available. (True, {'version': '1.3.0', 'date': '2010-10-01', 'url': 'http://xxx/release-notes-1.3.0.html' }) >>> getNewVersion('http://xxx/sample.xml') # Error while checking. (False, 'HTTP Error 404: Not Found') ''' try: socket.setdefaulttimeout(5) dom = parseXMLString(urllib2.urlopen(urlOfXML).read()) version = dom.documentElement.getElementsByTagName('version')[0].childNodes[0].data date = dom.documentElement.getElementsByTagName('date')[0].childNodes[0].data urlOfReleaseNotes = dom.documentElement.getElementsByTagName('releasenotes')[0].childNodes[0].data d = {'version': str(version), 'date': str(date), 'url': str(urlOfReleaseNotes)} return (True, d) except Exception, e: return (False, str(e))
def main(): # The content is a list of dictionaries. args = parse_args() logging_kwargs = {} if args.log_level is not None: logging_kwargs["level"] = getattr(logging, args.log_level.upper()) if args.log_format is not None: logging_kwargs["format"] = args.log_format if args.log_file is not None: logging_kwargs["filename"] = args.log_filename logging.basicConfig(**logging_kwargs) if args.tutorial: base_url = tutorial_content_url destination = os.path.join(args.destination, "images", "Color_1") else: base_url = content_url destination = args.destination if not os.path.isdir(destination): os.makedirs(destination) # # The apache server serves the directory listing like this: # <html><body><ul><li><a href="Parent directory">...</a></li> # <li><a href="filename">...</a></li>...</ul></body></html> # content = requests.get(base_url + "?F=0").content.decode("ascii") html_start = content.find("<html>") doc = parseXMLString(content[html_start:]) body = doc.getElementsByTagName("body")[0] ul = body.getElementsByTagName("ul")[0] for entry in ul.getElementsByTagName("a")[1:]: name = entry.getAttribute("href") filename = os.path.join(destination, name) url = base_url + name logging.info("Writing %s" % filename) with open(filename, 'wb') as fd: for chunk in requests.get(url).iter_content(chunk_size=4096): fd.write(chunk)