added support for recycle bin

This commit is contained in:
2021-04-02 15:11:47 +11:00
parent ab0513215f
commit e3f2870197

View File

@@ -142,9 +142,10 @@ class Settings(Base):
id = Column(Integer, Sequence('settings_id_seq'), primary_key=True )
import_path = Column(String)
storage_path = Column(String)
recycle_bin_path = Column(String)
def __repr__(self):
return f"<id: {self.id}, import_path: {self.import_path}>"
return f"<id: {self.id}, import_path: {self.import_path}, recycle_bin_path: {self.recycle_bin_path}>"
class PersonRefimgLink(Base):
__tablename__ = "person_refimg_link"
@@ -869,6 +870,19 @@ def CheckForDups(job):
FinishJob(job, f"Finished Looking for Duplicates")
return
def RemoveFileFromFS( del_me ):
try:
settings = session.query(Settings).first()
m=re.search( r'^static/(.+)', del_me.in_dir[0].path_prefix)
dst_dir=settings.recycle_bin_path + m[1] + '/'
os.makedirs( dst_dir,mode=0o777, exist_ok=True )
src=del_me.in_dir[0].path_prefix+'/'+del_me.name
dst=dst_dir + '/' + del_me.name
os.replace( src, dst )
except Exception as e:
print( f"Failed to remove file from filesystem - which={src}, err: {e}")
return
def RemoveDups(job):
# clear FE message we are deleting dups for this now...
fe_msg_id =[jex.value for jex in job.extra if jex.name == "fe_msg_id"][0]
@@ -899,7 +913,7 @@ def RemoveDups(job):
AddLogForJob(job, f"Keep duplicate file: {found.in_dir[0].path_prefix}/{found.name}" )
for del_me in del_me_lst:
AddLogForJob(job, f"Remove duplicate (per file dup) file: {del_me.in_dir[0].path_prefix}/{del_me.name}" )
os.remove( del_me.in_dir[0].path_prefix+'/'+del_me.name )
RemoveFileFromFS( del_me )
RemoveFileFromDB(del_me.id)
if 'kdid-' in jex.name:
@@ -924,7 +938,7 @@ def RemoveDups(job):
else:
AddLogForJob(job, f"Keep duplicate file: {found.in_dir[0].path_prefix}/{found.name}" )
AddLogForJob(job, f"Remove duplicate (per path dup) file: {del_me.in_dir[0].path_prefix}/{del_me.name}" )
os.remove( del_me.in_dir[0].path_prefix+'/'+del_me.name )
RemoveFileFromFS( del_me )
RemoveFileFromDB(del_me.id)
dup_cnt += 1