aboutsummaryrefslogtreecommitdiff
path: root/potpourri/validation-status-sql.py
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2014-08-19 21:11:35 +0000
committerRob Austein <sra@hactrn.net>2014-08-19 21:11:35 +0000
commite00b9b50c59999b3c30f72ae135f19e8acf2e954 (patch)
tree3763c8162c3dc7dea9b351639cca423017792f58 /potpourri/validation-status-sql.py
parente8051655467d50d2f875e6e6442a10541a9c753d (diff)
Pull from trunk.
svn path=/branches/tk705/; revision=5926
Diffstat (limited to 'potpourri/validation-status-sql.py')
-rwxr-xr-xpotpourri/validation-status-sql.py24
1 files changed, 12 insertions, 12 deletions
diff --git a/potpourri/validation-status-sql.py b/potpourri/validation-status-sql.py
index d37cb4ba..62e3089e 100755
--- a/potpourri/validation-status-sql.py
+++ b/potpourri/validation-status-sql.py
@@ -60,23 +60,20 @@ if creating:
db.executescript('''
CREATE TABLE sessions (
id INTEGER PRIMARY KEY NOT NULL,
- session DATETIME NOT NULL,
- UNIQUE (session));
+ session DATETIME UNIQUE NOT NULL,
+ filename TEXT UNIQUE);
CREATE TABLE uris (
id INTEGER PRIMARY KEY NOT NULL,
- uri TEXT NOT NULL,
- UNIQUE (uri));
+ uri TEXT UNIQUE NOT NULL);
CREATE TABLE codes (
id INTEGER PRIMARY KEY NOT NULL,
- code TEXT NOT NULL,
- UNIQUE (code));
+ code TEXT UNIQUE NOT NULL);
CREATE TABLE generations (
id INTEGER PRIMARY KEY NOT NULL,
- generation TEXT,
- UNIQUE (generation));
+ generation TEXT UNIQUE);
CREATE TABLE events (
id INTEGER PRIMARY KEY NOT NULL,
@@ -108,9 +105,10 @@ def string_id(table, value):
return db.execute("INSERT INTO %s (%s) VALUES (?)" % (table, field), (value,)).lastrowid
-def parse_xml(xml):
+def parse_xml(xml, fn = None):
try:
- session_id = db.execute("INSERT INTO sessions (session) VALUES (datetime(?))", (xml.get("date"),)).lastrowid
+ session_id = db.execute("INSERT INTO sessions (session, filename) VALUES (datetime(?), ?)",
+ (xml.get("date"), fn)).lastrowid
except sqlite3.IntegrityError:
return
@@ -125,9 +123,11 @@ def parse_xml(xml):
def parse_tarball(fn):
+ if db.execute("SELECT filename FROM sessions WHERE filename = ?", (fn,)).fetchone():
+ return
print "Processing", fn
- parse_xml(lxml.etree.ElementTree(
- file = subprocess.Popen(("tar", "Oxf", fn, args.path_within_tarball), stdout = subprocess.PIPE).stdout).getroot())
+ pipe = subprocess.Popen(("tar", "Oxf", fn, args.path_within_tarball), stdout = subprocess.PIPE).stdout
+ parse_xml(lxml.etree.ElementTree(file = pipe).getroot(), fn)
if args.mailbox: