From 9385a3749e42c1f4bbcd0c06dcd687040446e294 Mon Sep 17 00:00:00 2001 From: Ondrej Mikle Date: Sun, 15 Apr 2018 19:38:06 +0200 Subject: [PATCH] Import cards from JendaSAP list (nick UID list) --- create_authenticator_db.py | 22 ++++++++++------- import_jendasap_cards.py | 48 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 8 deletions(-) create mode 100755 import_jendasap_cards.py diff --git a/create_authenticator_db.py b/create_authenticator_db.py index 272e6ba..c689355 100755 --- a/create_authenticator_db.py +++ b/create_authenticator_db.py @@ -9,14 +9,10 @@ Give filename as first argument. import sys import sqlite3 -if __name__ == "__main__": - if len(sys.argv) < 2: - print >> sys.stderr, "You must specify filename as arg1 where the DB is to be created" - - filename = sys.argv[1] - conn = sqlite3.connect(filename) - cursor = conn.cursor() - +def createTables(cursor): + """Create DB tables in an empty database + @:param cursor cursor to sqlite DB + """ cursor.execute("""CREATE TABLE authorized_uids( id INTEGER PRIMARY KEY AUTOINCREMENT, uid_hex TEXT, @@ -33,5 +29,15 @@ if __name__ == "__main__": uid_hex TEXT, nick TEXT) """) + +if __name__ == "__main__": + if len(sys.argv) < 2: + print >> sys.stderr, "You must specify filename as arg1 where the DB is to be created" + + filename = sys.argv[1] + conn = sqlite3.connect(filename) + cursor = conn.cursor() + createTables(cursor) + conn.commit() conn.close() diff --git a/import_jendasap_cards.py b/import_jendasap_cards.py new file mode 100755 index 0000000..f777504 --- /dev/null +++ b/import_jendasap_cards.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python2 + +import sys +import os +import os.path +import sqlite3 + +from brmdoor_adduser import addUidAuth +from create_authenticator_db import createTables + +if __name__ == "__main__": + if len(sys.argv) < 3: + print "import_jendasap_cards.py " + print "This will generate and COMPLETELY OVERWRITE the UID table in destination.sqlite" + print "This is useful for initial import, but for individual cards use brmdoor_adduser.py" + sys.exit(1) + + destSqliteFname = sys.argv[2] + srcCardsFname = sys.argv[1] + nickUidList = [] + with file(srcCardsFname) as f: + lineNo = 0 + for line in f: + lineNo += 1 + line = line.rstrip() + if line == "": + continue + parts = line.rstrip().split(" ") + if len(parts) != 2: + print "Skipping line %d, expected two parts - nick, uid, got: %s" % (lineNo, repr(parts)) + continue + nickUidList.append(parts) + + dbExists = os.path.isfile(destSqliteFname) + conn = sqlite3.connect(destSqliteFname) + cursor = conn.cursor() + if dbExists: + cursor.execute("DELETE FROM authorized_uids") + else: + createTables(cursor) + + for (nick, uid) in nickUidList: + addUidAuth(cursor, uid, nick) + + conn.commit() + conn.close() + print "Converted %d nick-uid pairs into authorized_uids table" % (len(nickUidList),) +