1
0
Fork 0
mirror of https://github.com/dbarzin/pandora-box.git synced 2025-07-22 14:59:41 +02:00

work in progress

This commit is contained in:
Didier 2022-06-13 20:10:33 +00:00
parent 1052b54dc7
commit 145ebb41a0

View file

@ -18,9 +18,9 @@ import time
# ----------------------------------------------------------- # -----------------------------------------------------------
NO_SCAN = True NO_SCAN = True
USB_AUTO_MOUNT = True USB_AUTO_MOUNT = False
PANDORA_ROOT_URL = "http://127.0.0.1:6100" PANDORA_ROOT_URL = "http://127.0.0.1:6100"
FAKE_SCAN = True FAKE_SCAN = False
# ---------------------------------------------------------- # ----------------------------------------------------------
@ -223,12 +223,19 @@ def mount_device(device):
else: else:
return "" return ""
else: else:
res = os.system("pmount " + device.device_node + " box") res = os.system("pmount " + device.device_node + " /media/box")
if res == 1: found = False
return "/media/box" loop = 0
else: while (not found) and (loop < 10):
return "" time.sleep(1)
try:
statvfs=os.statvfs(mount_point)
except Exception as e :
loop +=1
continue
break;
log("Device mounted at /media/box") log("Device mounted at /media/box")
return "/media/box"
"""Unmount USB device""" """Unmount USB device"""
@ -261,7 +268,8 @@ def device_loop():
try: try:
statvfs=os.statvfs(mount_point) statvfs=os.statvfs(mount_point)
except Exception as e : except Exception as e :
logging.error("Unexpected error: ", e) log("Unexpected error1: %s" % e)
logging.exception("An exception was thrown!")
continue continue
print_size(human_readable_size(statvfs.f_frsize * statvfs.f_blocks)) print_size(human_readable_size(statvfs.f_frsize * statvfs.f_blocks))
print_used(human_readable_size(statvfs.f_frsize * (statvfs.f_blocks - statvfs.f_bfree))) print_used(human_readable_size(statvfs.f_frsize * (statvfs.f_blocks - statvfs.f_bfree)))
@ -294,7 +302,8 @@ def device_loop():
umount_device() umount_device()
update_bar(0) update_bar(0)
except Exception as e: except Exception as e:
log("Unexpected error: %s" % e ) log("Unexpected error2: %s" % e )
logging.exception("An exception was thrown!")
finally: finally:
log("Done.") log("Done.")
@ -325,47 +334,46 @@ def log_device_info(dev):
"""Scan a mount point with Pandora""" """Scan a mount point with Pandora"""
def scan(mount_point, used): def scan(mount_point, used):
global infected_filed global infected_filed
infected_files = array() infected_files = []
scanned = 0 scanned = 0
file_count = 0 file_count = 0
scan_start_time = time.time() scan_start_time = time.time()
if FAKE_SCAN: if not FAKE_SCAN:
for root, dirs, files in os.walk(mount_point): pandora = pypandora.PyPandora(root_url=PANDORA_ROOT_URL)
for file in files: for root, dirs, files in os.walk(mount_point):
try : for file in files:
full_path = os.path.join(root,file) try :
file_size = os.path.getsize(full_path) full_path = os.path.join(root,file)
log("Check %-s [%s]" % (file, human_readable_size(file_size))) file_size = os.path.getsize(full_path)
file_scan_start_time = time.time() log("Check %s [%s]" % (file, human_readable_size(file_size)))
file_scan_start_time = time.time()
if FAKE_SCAN :
time.sleep(0.1) time.sleep(0.1)
file_scan_end_time = time.time() status = "SKIPPED"
log("Check %s (%ds) -> %-s" % (file,(file_scan_end_time - file_scan_start_time),"SKIPPED")) else:
scanned += os.path.getsize(full_path) if file_size > (1024*1024*1024):
file_count += 1 status = "TOO BIG"
update_bar(scanned * 100 // used) else:
except Exception as e : res = pandora.submit_from_disk(full_path)
log("Unexpected error: %s" % e) time.sleep(0.1)
return False while True:
update_bar(100) res = pandora.task_status(res["taskId"])
log("Scan done in %ds" % (time.time() - scan_start_time)) status = res["status"]
log("%d files scanned" % file_count) if status != "WAITING":
else: break
pp = pypandora.PyPandora(root_url=PANDORA_ROOT_URL) time.sleep(0.5)
for arg in sys.argv[1:]: file_scan_end_time = time.time()
log("Scan %-80s" % arg) log("Check %s (%ds) -> %-s" % (file,(file_scan_end_time - file_scan_start_time),status))
scanned += os.path.getsize(full_path)
res = pp.submit_from_disk(arg) file_count += 1
update_bar(scanned * 100 // used)
while True: except Exception as e :
time.sleep(1) log("Unexpected error3: %s" % e)
logging.exception("An exception was thrown!")
res = pp.task_status(res["taskId"]) return False
update_bar(100)
if res["status"] != "WAITING": log("Scan done in %ds" % (time.time() - scan_start_time))
break log("%d files scanned" % file_count)
break;
log("Scan %s -> %s" % (arg,res["status"]))
return True return True
@ -381,7 +389,8 @@ def main(stdscr):
while True: while True:
device_loop() device_loop()
except Exception as e : except Exception as e :
logging.error("Unexpected error: ", e) log("Unexpected error4: %s" % e)
logging.exception("An exception was thrown!")
# logging.error(traceback.format_exc()) # logging.error(traceback.format_exc())
finally: finally:
end_curses() end_curses()