diff options
| author | 2017-10-04 22:02:58 -0400 | |
|---|---|---|
| committer | 2017-10-04 22:02:58 -0400 | |
| commit | b1117232d9a5ac2dc4110342daa014f79b186eb3 (patch) | |
| tree | 13ec09c76eaf491fe5449a19e0aec08d0a5116a0 /nwscap.py | |
| parent | 61dc07ef400be3613dc4fa395bca161455a402c1 (diff) | |
| download | nwscap-b1117232d9a5ac2dc4110342daa014f79b186eb3.tar.gz nwscap-b1117232d9a5ac2dc4110342daa014f79b186eb3.tar.bz2 nwscap-b1117232d9a5ac2dc4110342daa014f79b186eb3.zip | |
Update to accommodate HTTPS urls
Diffstat (limited to 'nwscap.py')
| -rwxr-xr-x | nwscap.py | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -2,12 +2,13 @@ """Parse active NOAA NWS CAP advisories and output an ATOM feed""" __author__ = 'Daniel Washburn' -__copyright__ = 'Copyright (c) 2013, 2014, All rights reserved.' +__copyright__ = 'Copyright (c) 2013-2017' __license__ = 'http://opensource.org/licenses/BSD-3-Clause' import cgi import getopt import sys +import urllib2 from lxml import etree from lxml.etree import SubElement @@ -18,7 +19,8 @@ CAP_NAMESPACE = {'cap': CAP_URI} CAP_SCHEMA_URL = 'http://docs.oasis-open.org/emergency/cap/v1.1/errata/approved/cap.xsd' CAP_XSLT_URL = 'capatomcustom.xsl' -CAP_SCHEMA = etree.XMLSchema(etree.parse(CAP_SCHEMA_URL)) +cap_schema_url = urllib2.urlopen(CAP_SCHEMA_URL) +CAP_SCHEMA = etree.XMLSchema(etree.parse(cap_schema_url)) CAP_XSLT = xslt_transform = etree.XSLT(etree.parse(CAP_XSLT_URL)) ATOM_PARSER = etree.XMLParser(ns_clean=True, remove_comments=True) @@ -71,7 +73,8 @@ else: usage() sys.exit() -in_feed = etree.parse(url, ATOM_PARSER) +feed=urllib2.urlopen(url) +in_feed = etree.parse(feed, ATOM_PARSER) out_feed = etree.XML('''<?xml version='1.0' encoding='UTF-8' standalone='yes'?> <feed xmlns='http://www.w3.org/2005/Atom'/>''') @@ -103,7 +106,8 @@ if no_alerts_title in entry_titles[0].text: alert_links = [] for link in alert_links: - cap=etree.parse(link, CAP_PARSER) + cap_link=urllib2.urlopen(link) + cap=etree.parse(cap_link, CAP_PARSER) cap_entry = SubElement(out_feed, 'entry') SubElement(cap_entry, 'id').text = "%s" % \ cap.xpath('/cap:alert/cap:identifier', |