MOD: added a timestamp to the fingerprints folder to avoid collisions, fingerprints_2015-12-02_131904
This commit is contained in:
parent
78c1727afa
commit
c91a0f74dd
18
dbfp.py
18
dbfp.py
|
@ -8,6 +8,7 @@ from subprocess import Popen, PIPE, check_call
|
||||||
# our libs
|
# our libs
|
||||||
from libs import fingerprint
|
from libs import fingerprint
|
||||||
from libs import android
|
from libs import android
|
||||||
|
from libs.toolbox import ToolBox
|
||||||
from libs.fingerprint_index import FingerprintIndex
|
from libs.fingerprint_index import FingerprintIndex
|
||||||
|
|
||||||
BASE_DIR = "data"
|
BASE_DIR = "data"
|
||||||
|
@ -68,7 +69,7 @@ def androidPull():
|
||||||
for dir_name in dir_names:
|
for dir_name in dir_names:
|
||||||
fq_dir = BASE_DIR + os.path.sep + dir_name
|
fq_dir = BASE_DIR + os.path.sep + dir_name
|
||||||
ap.pullApp(BASE_DIR, 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):
|
def androidData(data_dir):
|
||||||
|
@ -78,19 +79,20 @@ def androidData(data_dir):
|
||||||
except:
|
except:
|
||||||
return
|
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))
|
logging.error("ERROR creating directory: {}".format(FP_BASE_DIR))
|
||||||
return
|
return
|
||||||
|
|
||||||
for ddir in dirs:
|
for ddir in dirs:
|
||||||
fq_dir = data_dir + os.path.sep + ddir
|
in_dir = data_dir + os.path.sep + ddir
|
||||||
__createFingerprint(fq_dir, ddir)
|
__createFingerprint(in_dir, out_dir, ddir)
|
||||||
|
|
||||||
# in_dir: fully qualified directory path to find sqlite files
|
# 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:
|
try:
|
||||||
db_dir = fq_dir + os.path.sep + "databases"
|
db_dir = in_dir + os.path.sep + "databases"
|
||||||
logging.info("fq_dir=={}".format(db_dir))
|
logging.info("in_dir=={}".format(db_dir))
|
||||||
files = os.listdir(db_dir)
|
files = os.listdir(db_dir)
|
||||||
except:
|
except:
|
||||||
# not finding a databases folder is normal, not all apps use sqlite
|
# 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)
|
retVal = db.scanDBFile(ddir)
|
||||||
if (retVal > 0):
|
if (retVal > 0):
|
||||||
fname = dir_name + "__" + filein + "__dbfp" + ".json"
|
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.setAppName(dir_name)
|
||||||
db.writeFingerprintFile(fq_name)
|
db.writeFingerprintFile(fq_name)
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ import sqlite3
|
||||||
import hashlib
|
import hashlib
|
||||||
import time
|
import time
|
||||||
import logging
|
import logging
|
||||||
from libs import toolbox
|
from libs.toolbox import ToolBox
|
||||||
from libs.exceptions import FingerprintWrite
|
from libs.exceptions import FingerprintWrite
|
||||||
|
|
||||||
delimeter = "|"
|
delimeter = "|"
|
||||||
|
@ -66,7 +66,7 @@ class FingerprintDB:
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# extract file name from path+filename
|
# extract file name from path+filename
|
||||||
self.dbName = toolbox.ToolBox.parseFilenameIncExt(filein)
|
self.dbName = ToolBox.parseFilenameIncExt(filein)
|
||||||
except:
|
except:
|
||||||
self.dbName = filein
|
self.dbName = filein
|
||||||
try:
|
try:
|
||||||
|
@ -87,7 +87,7 @@ class FingerprintDB:
|
||||||
return
|
return
|
||||||
|
|
||||||
try:
|
try:
|
||||||
filename = toolbox.ToolBox.getTimestampFilename(self.filein)
|
filename = ToolBox.getTimestampFilename(self.filein)
|
||||||
fh = open(filename, "w")
|
fh = open(filename, "w")
|
||||||
try:
|
try:
|
||||||
self.__writeFingerprint(fh)
|
self.__writeFingerprint(fh)
|
||||||
|
|
|
@ -44,7 +44,17 @@ class ToolBox:
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def getTimestampFilename(fqfilename):
|
def getTimestampFilename(fqfilename):
|
||||||
""" return output file name """
|
""" return output file name """
|
||||||
timestr = time.strftime('%Y-%m-%d_%H%M%S', time.localtime(time.time()))
|
timestr = getTimestampStr()
|
||||||
filename = ToolBox.parseFilename(fqfilename)
|
filename = ToolBox.parseFilename(fqfilename)
|
||||||
fileout = filename + "_" + timestr + '.json'
|
fileout = filename + "_" + timestr + '.json'
|
||||||
return fileout
|
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
|
||||||
|
|
Loading…
Reference in New Issue