Task cleanup
This commit is contained in:
26
web/tasks.py
26
web/tasks.py
@@ -7,39 +7,39 @@ from rq import get_current_job
|
|||||||
BLOCKSIZE = 65535
|
BLOCKSIZE = 65535
|
||||||
|
|
||||||
|
|
||||||
|
def set_meta(job, message):
|
||||||
|
job.meta["status"] = message
|
||||||
|
job.save_meta()
|
||||||
|
|
||||||
|
|
||||||
def check_hash(algorithm, filename, hashval):
|
def check_hash(algorithm, filename, hashval):
|
||||||
job = get_current_job()
|
job = get_current_job()
|
||||||
if job:
|
if job:
|
||||||
job.meta["status"] = "Processing: 0%"
|
|
||||||
job.save_meta()
|
|
||||||
|
|
||||||
if filename == "" or hashval == "":
|
if filename == "" or hashval == "":
|
||||||
return "ERROR: Invalid Arguents"
|
set_meta(job, "FAILED: Invalid Job")
|
||||||
|
return
|
||||||
|
|
||||||
if algorithm == "sha256":
|
if algorithm == "sha256":
|
||||||
hashfunc = hashlib.sha256()
|
hashfunc = hashlib.sha256()
|
||||||
else:
|
else:
|
||||||
return "ERROR: Unknown Algorithm"
|
set_meta(job, "FAILED: Unknown Algorithm")
|
||||||
|
return
|
||||||
|
|
||||||
filesize = os.path.getsize(filename)
|
filesize = os.path.getsize(filename)
|
||||||
filepos = 0
|
filepos = 0
|
||||||
with open(filename, "rb") as f:
|
with open(filename, "rb") as f:
|
||||||
file_buffer = f.read(BLOCKSIZE)
|
file_buffer = f.read(BLOCKSIZE)
|
||||||
filepos += len(file_buffer)
|
filepos += len(file_buffer)
|
||||||
job.meta["status"] = "Processing: {}%".format(filepos / filesize * 100)
|
set_meta(job, "Processing: {}%".format(filepos / filesize * 100))
|
||||||
job.save_meta()
|
|
||||||
while len(file_buffer) > 0:
|
while len(file_buffer) > 0:
|
||||||
hashfunc.update(file_buffer)
|
hashfunc.update(file_buffer)
|
||||||
file_buffer = f.read(BLOCKSIZE)
|
file_buffer = f.read(BLOCKSIZE)
|
||||||
|
|
||||||
job.meta["status"] = "Processing: {}%".format(filesize / filesize * 100)
|
set_meta(job, "Processing: {}%".format(filesize / filesize * 100))
|
||||||
job.save_meta()
|
|
||||||
|
|
||||||
# time.sleep(5)
|
# time.sleep(5)
|
||||||
|
|
||||||
if hashfunc.hexdigest() == hashval:
|
if hashfunc.hexdigest() == hashval:
|
||||||
job.meta["status"] = "OK: Hash Value Matches"
|
set_meta(job, "OK: Hash Value Matches")
|
||||||
else:
|
else:
|
||||||
job.meta["status"] = "FAILED: Invalid Hash"
|
set_meta(job, "FAILED: Invalid Hash")
|
||||||
|
|
||||||
job.save_meta()
|
|
||||||
|
|||||||
Reference in New Issue
Block a user