changed all new_file to file, also make JobForceScan work

This commit is contained in:
2021-01-20 20:02:31 +11:00
parent 0bc87e346e
commit 76e37a2dc0

View File

@@ -80,14 +80,14 @@ class Entry(Base):
type_id = Column(Integer, ForeignKey("file_type.id")) type_id = Column(Integer, ForeignKey("file_type.id"))
type=relationship("FileType") type=relationship("FileType")
dir_details = relationship( "Dir") dir_details = relationship( "Dir")
file_details = relationship( "New_File" ) file_details = relationship( "File" )
in_dir = relationship ("Dir", secondary="entry_dir_link" ) in_dir = relationship ("Dir", secondary="entry_dir_link" )
def __repr__(self): def __repr__(self):
return "<id: {}, name: {}, type={}, dir_details={}, file_details={}, in_dir={}>".format(self.id, self.name, self.type, self.dir_details, self.file_details, self.in_dir) return "<id: {}, name: {}, type={}, dir_details={}, file_details={}, in_dir={}>".format(self.id, self.name, self.type, self.dir_details, self.file_details, self.in_dir)
class New_File(Base): class File(Base):
__tablename__ = "new_file" __tablename__ = "file"
eid = Column(Integer, ForeignKey("entry.id"), primary_key=True ) eid = Column(Integer, ForeignKey("entry.id"), primary_key=True )
size_mb = Column(Integer, unique=False, nullable=False) size_mb = Column(Integer, unique=False, nullable=False)
hash = Column(Integer, unique=True, nullable=True) hash = Column(Integer, unique=True, nullable=True)
@@ -303,13 +303,13 @@ def JobScanNow(job):
return return
def JobForceScan(job): def JobForceScan(job):
return
JobProgressState( job, "In Progress" ) JobProgressState( job, "In Progress" )
session.query(EntryDirLink).delete()
session.query(Dir).delete()
session.query(File).delete() session.query(File).delete()
settings = session.query(Settings).first() session.query(Entry).delete()
if settings == None: session.commit()
raise Exception("Cannot create file data with no settings / import path is missing") ProcessImportDirs(job)
settings.last_import_date = 0
FinishJob(job, "Completed (forced remove and recreation of all file data)") FinishJob(job, "Completed (forced remove and recreation of all file data)")
MessageToFE( job.id, "success", "Completed (forced remove and recreation of all file data)" ) MessageToFE( job.id, "success", "Completed (forced remove and recreation of all file data)" )
session.commit() session.commit()
@@ -350,7 +350,7 @@ def AddDir(job, dirname, path_prefix, in_dir):
def AddFile(job, fname, type_str, fsize, in_dir ): def AddFile(job, fname, type_str, fsize, in_dir ):
ftype = session.query(FileType).filter(FileType.name==type_str).first() ftype = session.query(FileType).filter(FileType.name==type_str).first()
e=Entry( name=fname, type=ftype ) e=Entry( name=fname, type=ftype )
f=New_File( size_mb=fsize ) f=File( size_mb=fsize )
e.file_details.append(f) e.file_details.append(f)
e.in_dir.append(in_dir) e.in_dir.append(in_dir)
AddLogForJob(job, "Found new file: {}".format(fname) ) AddLogForJob(job, "Found new file: {}".format(fname) )
@@ -436,7 +436,6 @@ def FilesInDir( path ):
def ProcessFilesInDir(job, e): def ProcessFilesInDir(job, e):
time.sleep(0.3)
print("files in dir - process: {}".format(e.name)) print("files in dir - process: {}".format(e.name))
if e.type.name != 'Directory': if e.type.name != 'Directory':
e.file_details[0].hash = md5( job, os.path.join( e.in_dir[0].path_prefix, e.name ) ) e.file_details[0].hash = md5( job, os.path.join( e.in_dir[0].path_prefix, e.name ) )
@@ -452,20 +451,18 @@ def ProcessFilesInDir(job, e):
def JobGetFileDetails(job): def JobGetFileDetails(job):
JobProgressState( job, "In Progress" ) JobProgressState( job, "In Progress" )
print("JobGetFileDetails:")
for jex in job.extra: for jex in job.extra:
if jex.name =="path": if jex.name =="path":
path=jex.value path=jex.value
path=FixPath('static/{}'.format( os.path.basename(path[0:-1]))) path=FixPath('static/{}'.format( os.path.basename(path[0:-1])))
print(" for path={}".format( path ) ) print("DEBUG: JobGetFileDetails for path={}".format( path ) )
dir=session.query(Dir).filter(Dir.path_prefix==path).first() dir=session.query(Dir).filter(Dir.path_prefix==path).first()
job.current_file_num = 0 job.current_file_num = 0
job.num_files = dir.num_files job.num_files = dir.num_files
print("cfm set to 0 for job: {}, num_files: {}".format(job.id, job.num_files));
session.commit() session.commit()
for e in FilesInDir( path ): for e in FilesInDir( path ):
ProcessFilesInDir(job, e ) ProcessFilesInDir(job, e )
FinishJob(job, "File Details processed") FinishJob(job, "DEBUG: File Details processed")
session.commit() session.commit()
return return