diff farol/main.py @ 8:2ce3676c9b2e

Ease the import of new documents
author Benoît Allard <benoit.allard@greenbone.net>
date Thu, 25 Sep 2014 17:49:43 +0200
parents 8f41bb7f4681
children 5b84a2c4f30c
line wrap: on
line diff
--- a/farol/main.py	Thu Sep 25 17:03:35 2014 +0200
+++ b/farol/main.py	Thu Sep 25 17:49:43 2014 +0200
@@ -87,13 +87,28 @@
 def welcome():
     return render_template('welcome.j2')
 
+def parse_url(url):
+    set_current(parse(urlopen(url).read()))
+
 @app.route('/new', methods=['GET', 'POST'])
 def new():
     if request.method != 'POST':
         return render_template('new.j2', has_document=has_current(), now=utcnow())
-
-    if 'url' in request.form:
-        set_current(parse(urlopen(request.form['url']).read()))
+    url = None
+    if 'rhsa' in request.form:
+        year, index = request.form['id'].split(':')
+        parse_url("https://www.redhat.com/security/data/cvrf/%(year)s/cvrf-rhsa-%(year)s-%(index)s.xml" % {'year': year, 'index': index})
+    elif 'oracle' in request.form:
+        parse_url("http://www.oracle.com/ocom/groups/public/@otn/documents/webcontent/%s.xml" % request.form['id'])
+    elif 'cisco' in request.form:
+        kind, date, name = request.form['id'].split('-', 3)
+        kind = {'sa': 'Advisory', 'sr': 'Response'}[kind]
+        parse_url("http://tools.cisco.com/security/center/contentxml/CiscoSecurity%(kind)s/cisco-%(id)s/cvrf/cisco-%(id)s_cvrf.xml" % {'kind': kind, 'id': request.form['id']})
+    elif 'nasl' in request.form:
+        flash("I'm not able to parse NASL scripts yet", 'danger')
+        return redirect(url_for('new'))
+    elif 'url' in request.form:
+        parse_url(request.form['url'])
     elif 'local' in request.files:
         upload = request.files['local']
         if not upload.filename.endswith('.xml'):

http://farol.wald.intevation.org