Example #1
0
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))
Example #2
0
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))
Example #3
0
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)