diff --git a/dbfp.py b/dbfp.py index 2298fb6..853d2b4 100644 --- a/dbfp.py +++ b/dbfp.py @@ -8,6 +8,7 @@ from subprocess import Popen, PIPE, check_call # our libs from libs import fingerprint from libs import android +from libs.toolbox import ToolBox from libs.fingerprint_index import FingerprintIndex BASE_DIR = "data" @@ -68,7 +69,7 @@ def androidPull(): for dir_name in dir_names: fq_dir = BASE_DIR + os.path.sep + dir_name ap.pullApp(BASE_DIR, dir_name) - __createFingerprint(fq_dir, dir_name) + __createFingerprint(fq_dir, FP_BASE_DIR, dir_name) # def androidData(data_dir): @@ -78,19 +79,20 @@ def androidData(data_dir): except: return - if (not mkdir(FP_BASE_DIR)): + out_dir = FP_BASE_DIR + "_" + ToolBox.getTimestampStr() + if (not mkdir(out_dir)): logging.error("ERROR creating directory: {}".format(FP_BASE_DIR)) return for ddir in dirs: - fq_dir = data_dir + os.path.sep + ddir - __createFingerprint(fq_dir, ddir) + in_dir = data_dir + os.path.sep + ddir + __createFingerprint(in_dir, out_dir, ddir) # in_dir: fully qualified directory path to find sqlite files -def __createFingerprint(fq_dir, dir_name): +def __createFingerprint(in_dir, out_dir, dir_name): try: - db_dir = fq_dir + os.path.sep + "databases" - logging.info("fq_dir=={}".format(db_dir)) + db_dir = in_dir + os.path.sep + "databases" + logging.info("in_dir=={}".format(db_dir)) files = os.listdir(db_dir) except: # not finding a databases folder is normal, not all apps use sqlite @@ -102,7 +104,7 @@ def __createFingerprint(fq_dir, dir_name): retVal = db.scanDBFile(ddir) if (retVal > 0): fname = dir_name + "__" + filein + "__dbfp" + ".json" - fq_name = FP_BASE_DIR + os.path.sep + fname + fq_name = out_dir + os.path.sep + fname db.setAppName(dir_name) db.writeFingerprintFile(fq_name) diff --git a/libs/fingerprint.py b/libs/fingerprint.py index f35d70b..095e412 100644 --- a/libs/fingerprint.py +++ b/libs/fingerprint.py @@ -7,7 +7,7 @@ import sqlite3 import hashlib import time import logging -from libs import toolbox +from libs.toolbox import ToolBox from libs.exceptions import FingerprintWrite delimeter = "|" @@ -66,7 +66,7 @@ class FingerprintDB: try: # extract file name from path+filename - self.dbName = toolbox.ToolBox.parseFilenameIncExt(filein) + self.dbName = ToolBox.parseFilenameIncExt(filein) except: self.dbName = filein try: @@ -87,7 +87,7 @@ class FingerprintDB: return try: - filename = toolbox.ToolBox.getTimestampFilename(self.filein) + filename = ToolBox.getTimestampFilename(self.filein) fh = open(filename, "w") try: self.__writeFingerprint(fh) diff --git a/libs/toolbox.py b/libs/toolbox.py index ba619af..f82d4e2 100644 --- a/libs/toolbox.py +++ b/libs/toolbox.py @@ -44,7 +44,17 @@ class ToolBox: @staticmethod def getTimestampFilename(fqfilename): """ return output file name """ - timestr = time.strftime('%Y-%m-%d_%H%M%S', time.localtime(time.time())) + timestr = getTimestampStr() filename = ToolBox.parseFilename(fqfilename) fileout = filename + "_" + timestr + '.json' return fileout + + # + @staticmethod + def getTimestampStr(): + timestr = '000' + try: + timestr = time.strftime('%Y-%m-%d_%H%M%S', time.localtime(time.time())) + except: + pass + return timestr