MOD: added a timestamp to the fingerprints folder to avoid collisions, fingerprints_2015-12-02_131904

This commit is contained in:
JohnE 2015-12-02 13:22:31 -08:00
parent 78c1727afa
commit c91a0f74dd
3 changed files with 24 additions and 12 deletions

18
dbfp.py
View File

@ -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)

View File

@ -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)

View File

@ -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