diff options
author | Rob Austein <sra@hactrn.net> | 2014-08-19 21:11:35 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2014-08-19 21:11:35 +0000 |
commit | e00b9b50c59999b3c30f72ae135f19e8acf2e954 (patch) | |
tree | 3763c8162c3dc7dea9b351639cca423017792f58 /potpourri/validation-status-sql.py | |
parent | e8051655467d50d2f875e6e6442a10541a9c753d (diff) |
Pull from trunk.
svn path=/branches/tk705/; revision=5926
Diffstat (limited to 'potpourri/validation-status-sql.py')
-rwxr-xr-x | potpourri/validation-status-sql.py | 24 |
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: |