From 2c1a131c3095aabfd8e91bb106ea1abd7d2dd195 Mon Sep 17 00:00:00 2001 From: JohnE Date: Mon, 30 Nov 2015 10:35:38 -0800 Subject: [PATCH] WIP: fingerprint index --- dbfp.py | 10 +++++++++- libs/fingerprint_index.py | 17 ++++++++++++++--- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/dbfp.py b/dbfp.py index 29fcfeb..db6d36b 100644 --- a/dbfp.py +++ b/dbfp.py @@ -93,6 +93,11 @@ def __createFingerprint(dir_name): db.writeFingerprint(fh) fh.close() +# +def __getFileName(): + '''standardize on a file name, use timestamp? ''' + pass + # def mkdir(fdir): retval = False @@ -110,8 +115,9 @@ def parseArgs(): print '***** ***** ***** *****\n' parser = argparse.ArgumentParser(description="Fingerprint a sqlite database based on its schema") parser.add_argument('-f', '--file', required=False, help="path to file to be fingerprinted") - parser.add_argument('-fd', '--fpdir', required=False, help="path to dirctory of fingerprint files") + parser.add_argument('-fd', '--fpdir', required=False, help="path to directory of fingerprint files") parser.add_argument('-fp', '--fingerprint', required=False, help="fingerprint file to use in comparison") + parser.add_argument('-dd', '--data_dir', required=False, help="path to a directory with sqlite files") parser.add_argument('-an', '--app_name', required=False) parser.add_argument('-av', '--app_version', required=False) parser.add_argument('-n', '--notes', required=False) @@ -124,6 +130,8 @@ def parseArgs(): compareFingerprint(args.file, args.fingerprint) elif (args.file and args.fpdir): compareFingerprintDir(args.file, args.fpdir) + elif (args.data_dir): + pass elif (args.pull): fingerprintDir() elif (args.file): diff --git a/libs/fingerprint_index.py b/libs/fingerprint_index.py index a5dab6e..3a2db0c 100644 --- a/libs/fingerprint_index.py +++ b/libs/fingerprint_index.py @@ -67,14 +67,25 @@ class FingerprintIndex: files = os.listdir(fpdir) for file in Files: try: - db.scanDBFile(fpdir) + fq_file = fpdir + os.path.sep + file + dbht = db.importJsonIndex(fq_file) + md5_all = __createMD5Index(dbht) + finCount = finCount+1 except: failCount = failCount+1 except: + logging.info("Completed populating the index. Completed: {} Failed: {} ".format(str(finCount), str(failCount))) - logging.info("Completed populating the index. Completed: {} Failed: {} ".format(str(finCount), str(failCount))) - pass + # + def __insertRecord(self, md5_all, md5_list, filename): + try: + self.db_conn.execute( + ''' + INSERT INTO md5_index VALUES(?, ?, ?) + ''', md5_all, md5_list, filename) + except: + pass # def __checkIntegrity(self):