Faster implementation
This commit is contained in:
@@ -93,10 +93,12 @@ def add_recurse(options):
|
|||||||
if not options.symlinks:
|
if not options.symlinks:
|
||||||
files=clean_syms(files)
|
files=clean_syms(files)
|
||||||
files.sort()
|
files.sort()
|
||||||
|
db_files=get_folder_contents(db,os.path.abspath(path)+'/')
|
||||||
for file in files:
|
for file in files:
|
||||||
if IMGMATCH.match(file):
|
if IMGMATCH.match(file):
|
||||||
filename=os.path.abspath(os.path.join(path,file))
|
filename=os.path.abspath(os.path.join(path,file))
|
||||||
if not is_listed(db,filename):
|
#if not is_listed(db,filename):
|
||||||
|
if file not in db_files:
|
||||||
if options.add:
|
if options.add:
|
||||||
add_single(conn,filename,change=False,minsize=options.minsize)
|
add_single(conn,filename,change=False,minsize=options.minsize)
|
||||||
else:
|
else:
|
||||||
@@ -108,7 +110,7 @@ def add_recurse(options):
|
|||||||
#file content changed
|
#file content changed
|
||||||
add_single(conn,filename,change=True,minsize=options.minsize)
|
add_single(conn,filename,change=True,minsize=options.minsize)
|
||||||
# if file mentioned, and hash same, no need to change entry
|
# if file mentioned, and hash same, no need to change entry
|
||||||
|
conn.commit()
|
||||||
return
|
return
|
||||||
|
|
||||||
def add_single(conn,filename,change=False,hash=None,minsize=0):
|
def add_single(conn,filename,change=False,hash=None,minsize=0):
|
||||||
@@ -132,7 +134,6 @@ def add_single(conn,filename,change=False,hash=None,minsize=0):
|
|||||||
db.execute("INSERT INTO list(file,date,portrait,hash,width,height)\
|
db.execute("INSERT INTO list(file,date,portrait,hash,width,height)\
|
||||||
VALUES(?,?,?,?,?,?)",(filename,ftime,portrait,hash,dims[0],dims[1]))
|
VALUES(?,?,?,?,?,?)",(filename,ftime,portrait,hash,dims[0],dims[1]))
|
||||||
print "adding: %(f)s (%(x)sx%(y)s)" % {'f':filename, 'x':dims[0], 'y':dims[1]}
|
print "adding: %(f)s (%(x)sx%(y)s)" % {'f':filename, 'x':dims[0], 'y':dims[1]}
|
||||||
conn.commit()
|
|
||||||
return
|
return
|
||||||
|
|
||||||
def random_lists(sqlfile):
|
def random_lists(sqlfile):
|
||||||
@@ -162,6 +163,16 @@ def is_listed(db,filename):
|
|||||||
count=db.fetchall()
|
count=db.fetchall()
|
||||||
return count[0][0]>0
|
return count[0][0]>0
|
||||||
|
|
||||||
|
def get_folder_contents(db,path):
|
||||||
|
''' return the contents of the folder '''
|
||||||
|
files=[]
|
||||||
|
db.execute("SELECT file FROM list where file LIKE ?",(path+'%',))
|
||||||
|
for row in db:
|
||||||
|
base=row[0].replace(path,'',1)
|
||||||
|
if base.find('/')==-1:
|
||||||
|
files.append(base)
|
||||||
|
return files
|
||||||
|
|
||||||
def ftime_match(db,filename,ftime):
|
def ftime_match(db,filename,ftime):
|
||||||
db.execute("SELECT date FROM list where file == ?",(filename,))
|
db.execute("SELECT date FROM list where file == ?",(filename,))
|
||||||
count=db.fetchall()
|
count=db.fetchall()
|
||||||
|
|||||||
Reference in New Issue
Block a user