1
0
Fork 0
mirror of https://github.com/dbarzin/pandora-box.git synced 2025-07-18 21:09:41 +02:00

reformating

This commit is contained in:
dbarzin 2022-06-11 21:06:59 +02:00
parent 7134251bb3
commit 1a29d021cf
6 changed files with 192 additions and 181 deletions

View file

@ -6,164 +6,180 @@ import time
import sys
import pyudev
import psutil
import os
#-----------------------------------------------------------
# Variables
#-----------------------------------------------------------
# -----------------------------------------------------------
# Config variables
# -----------------------------------------------------------
NO_SCAN=True
USB_AUTO_MOUNT=True
PANDORA_ROOT_URL="http://127.0.0.1:6100"
NO_SCAN = True
USB_AUTO_MOUNT = True
PANDORA_ROOT_URL = "http://127.0.0.1:6100"
#-----------------------------------------------------------
# -----------------------------------------------------------
# Screen
#-----------------------------------------------------------
# -----------------------------------------------------------
def intitCurses():
global screen
screen = curses.initscr()
screen.keypad(1)
curses.curs_set(0)
curses.mousemask(curses.ALL_MOUSE_EVENTS | curses.REPORT_MOUSE_POSITION)
curses.flushinp()
curses.noecho()
screen.clear()
global screen
screen = curses.initscr()
screen.keypad(1)
curses.curs_set(0)
curses.mousemask(curses.ALL_MOUSE_EVENTS | curses.REPORT_MOUSE_POSITION)
curses.flushinp()
curses.noecho()
screen.clear()
def printStatus(strStatus):
screen.addstr(12,0,'Status : %-32s' % strStatus)
screen.refresh()
screen.addstr(12, 0, "Status : %-32s" % strStatus)
screen.refresh()
def printFSLabel(strLabel):
screen.addstr(13,0,'Device : %-32s' % strLabel)
screen.refresh()
screen.addstr(13, 0, "Device : %-32s" % strLabel)
screen.refresh()
def printAction(strAction):
screen.addstr(14,0,'Action : %-64s' % strAction)
screen.refresh()
screen.addstr(14, 0, "Action : %-64s" % strAction)
screen.refresh()
def initBar():
global progress_win
progress_win = curses.newwin(3, 62, 3, 16)
progress_win.border(0)
def updateBar(progress):
global progress_win
rangex = (60 / float(100)) * progress
pos = int(rangex)
display = '#'
display = "#"
if pos != 0:
progress_win.addstr(1, pos, "{}".format(display))
progress_win.refresh()
def printScreen():
screen.addstr(1,0," ██▓███ ▄▄▄ ███▄ █ ▓█████▄ ▒█████ ██▀███ ▄▄▄ ▄▄▄▄ ▒█████ ▒██ ██▒")
screen.addstr(2,0," ▓██░ ██▒▒████▄ ██ ▀█ █ ▒██▀ ██▌▒██▒ ██▒▓██ ▒ ██▒▒████▄ ▓█████▄ ▒██▒ ██▒▒▒ █ █ ▒░")
screen.addstr(3,0," ▓██░ ██▓▒▒██ ▀█▄ ▓██ ▀█ ██▒░██ █▌▒██░ ██▒▓██ ░▄█ ▒▒██ ▀█▄ ▒██▒ ▄██▒██░ ██▒░░ █ ░")
screen.addstr(4,0," ▒██▄█▓▒ ▒░██▄▄▄▄██ ▓██▒ ▐▌██▒░▓█▄ ▌▒██ ██░▒██▀▀█▄ ░██▄▄▄▄██ ▒██░█▀ ▒██ ██░ ░ █ █ ▒ ")
screen.addstr(5,0," ▒██▒ ░ ░ ▓█ ▓██▒▒██░ ▓██░░▒████▓ ░ ████▓▒░░██▓ ▒██▒ ▓█ ▓██▒ ░▓█ ▀█▓░ ████▓▒░▒██▒ ▒██▒")
screen.addstr(6,0," ▒▓▒░ ░ ░ ▒▒ ▓▒█░░ ▒░ ▒ ▒ ▒▒▓ ▒ ░ ▒░▒░▒░ ░ ▒▓ ░▒▓░ ▒▒ ▓▒█░ ░▒▓███▀▒░ ▒░▒░▒░ ▒▒ ░ ░▓ ░")
screen.addstr(7,0," ░▒ ░ ▒ ▒▒ ░░ ░░ ░ ▒░ ░ ▒ ▒ ░ ▒ ▒░ ░▒ ░ ▒░ ▒ ▒▒ ░ ▒░▒ ░ ░ ▒ ▒░ ░░ ░▒ ░")
screen.addstr(8,0," ░░ ░ ▒ ░ ░ ░ ░ ░ ░ ░ ░ ░ ▒ ░░ ░ ░ ▒ ░ ░ ░ ░ ░ ▒ ░ ░ ")
screen.addstr(9,0," ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ")
screen.addstr(10,0," ░ ░ ")
printStatus("WAITING")
printFSLabel('')
printAction('')
initBar()
updateBar(1)
screen.addstr(1, 0, " ██▓███ ▄▄▄ ███▄ █ ▓█████▄ ▒█████ ██▀███ ▄▄▄ ▄▄▄▄ ▒█████ ▒██ ██▒")
screen.addstr(2, 0, " ▓██░ ██▒▒████▄ ██ ▀█ █ ▒██▀ ██▌▒██▒ ██▒▓██ ▒ ██▒▒████▄ ▓█████▄ ▒██▒ ██▒▒▒ █ █ ▒░")
screen.addstr(3, 0, " ▓██░ ██▓▒▒██ ▀█▄ ▓██ ▀█ ██▒░██ █▌▒██░ ██▒▓██ ░▄█ ▒▒██ ▀█▄ ▒██▒ ▄██▒██░ ██▒░░ █ ░")
screen.addstr(4, 0, " ▒██▄█▓▒ ▒░██▄▄▄▄██ ▓██▒ ▐▌██▒░▓█▄ ▌▒██ ██░▒██▀▀█▄ ░██▄▄▄▄██ ▒██░█▀ ▒██ ██░ ░ █ █ ▒ ")
screen.addstr(5, 0, " ▒██▒ ░ ░ ▓█ ▓██▒▒██░ ▓██░░▒████▓ ░ ████▓▒░░██▓ ▒██▒ ▓█ ▓██▒ ░▓█ ▀█▓░ ████▓▒░▒██▒ ▒██▒")
screen.addstr(6, 0, " ▒▓▒░ ░ ░ ▒▒ ▓▒█░░ ▒░ ▒ ▒ ▒▒▓ ▒ ░ ▒░▒░▒░ ░ ▒▓ ░▒▓░ ▒▒ ▓▒█░ ░▒▓███▀▒░ ▒░▒░▒░ ▒▒ ░ ░▓ ░")
screen.addstr(7, 0, " ░▒ ░ ▒ ▒▒ ░░ ░░ ░ ▒░ ░ ▒ ▒ ░ ▒ ▒░ ░▒ ░ ▒░ ▒ ▒▒ ░ ▒░▒ ░ ░ ▒ ▒░ ░░ ░▒ ░")
screen.addstr(8, 0, " ░░ ░ ▒ ░ ░ ░ ░ ░ ░ ░ ░ ░ ▒ ░░ ░ ░ ▒ ░ ░ ░ ░ ░ ▒ ░ ░ ")
screen.addstr(9, 0, " ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ")
screen.addstr(10, 0, " ░ ░ ")
printStatus("WAITING")
printFSLabel("")
printAction("")
initBar()
updateBar(1)
def endCurses():
curses.endwin()
curses.flushinp()
curses.endwin()
curses.flushinp()
#-----------------------------------------------------------
# -----------------------------------------------------------
# device
#-----------------------------------------------------------
# -----------------------------------------------------------
# mount device
def mountDevice(device):
if USB_AUTO_MOUNT:
found=False
loop=0
while (not found) and (loop<10):
# need to sleep before devide is mounted
found = False
loop = 0
while (not found) and (loop < 10):
# need to sleep before devide is mounted
time.sleep(1)
for partition in psutil.disk_partitions():
if partition.device == device.device_node:
printAction("Mounted at {}".format(partition.mountpoint))
found=True
loop+=1
if partition.device == device.device_node:
printAction("Mounted at {}".format(partition.mountpoint))
found = True
loop += 1
else:
printAction("mount device to /media/box")
res=os.system("pmount "+device.device_node+" box")
#print("Return type: ", res)
printAction("mount device to /media/box")
res = os.system("pmount " + device.device_node + " box")
# print("Return type: ", res)
# unmount device
def umountDevice():
if not USB_AUTO_MOUNT:
printAction("unmount device /media/box")
res = os.system("pumount /media/box")
# print("Return type: ", res)
if not USB_AUTO_MOUNT:
printAction("unmount device /media/box")
res = os.system("pumount /media/box")
# print("Return type: ", res)
def deviceLoop():
context = pyudev.Context()
monitor = pyudev.Monitor.from_netlink(context)
monitor.filter_by('block')
for device in iter(monitor.poll, None):
if 'ID_FS_TYPE' in device:
if device.action == 'add':
if device.device_node[5:7] == 'sd' and device.get('DEVTYPE')=='partition':
#print("New device {}".format(device.device_node))
mountDevice(device)
# display device type
printStatus("KEY INSERTED")
printFSLabel(device.get('ID_FS_LABEL'))
context = pyudev.Context()
monitor = pyudev.Monitor.from_netlink(context)
monitor.filter_by("block")
for device in iter(monitor.poll, None):
if "ID_FS_TYPE" in device:
if device.action == "add":
if device.device_node[5:7] == "sd" and device.get("DEVTYPE") == "partition":
# print("New device {}".format(device.device_node))
mountDevice(device)
# display device type
printStatus("KEY INSERTED")
printFSLabel(device.get("ID_FS_LABEL"))
if device.action == 'remove':
if device.device_node[5:7] == 'sd' and device.get('DEVTYPE')=='partition':
printStatus("WAITING")
printAction('Device removed')
printFSLabel('')
umountDevice()
if device.action == "remove":
if device.device_node[5:7] == "sd" and device.get("DEVTYPE") == "partition":
printStatus("WAITING")
printAction("Device removed")
printFSLabel("")
umountDevice()
#-----------------------------------------------------------
# -----------------------------------------------------------
# pandora
#-----------------------------------------------------------
# -----------------------------------------------------------
# scan device at mountPoint
def scan(mountPoint):
pp = pypandora.PyPandora(root_url= PANDORA_ROOT_URL)
pp = pypandora.PyPandora(root_url=PANDORA_ROOT_URL)
for arg in sys.argv[1:]:
print(arg,end='',flush=True)
print(":",end='',flush=True)
for arg in sys.argv[1:]:
print(arg, end="", flush=True)
print(":", end="", flush=True)
res = pp.submit_from_disk(arg)
res = pp.submit_from_disk(arg)
while True:
print('.',end='',flush=True)
time.sleep(1)
while True:
print(".", end="", flush=True)
time.sleep(1)
res = pp.task_status(res['taskId'])
res = pp.task_status(res["taskId"])
if res['status']!='WAITING':
break
if res["status"] != "WAITING":
break
print(res['status'])
print(res["status"])
#--------------------------------------
intitCurses()
printScreen()
deviceLoop()
# --------------------------------------
while True:
key = screen.getch()
if key == curses.KEY_MOUSE:
break
if key == 27:
break
endCurses()
def pandoraBox():
try:
intitCurses()
printScreen()
deviceLoop()
finally:
endCurses()
# --------------------------------------
if __name__ == "__main__":
pandoraBox()

View file

@ -7,59 +7,57 @@ import os
context = pyudev.Context()
monitor = pyudev.Monitor.from_netlink(context)
monitor.filter_by('block')
monitor.filter_by("block")
autoMount = False
autoMount=False
def printDeviceInfo(dev):
print('')
print('<BLOCK INFORMATION>')
print('Device name: %s' % dev.get('DEVNAME'))
print('Device type: %s' % dev.get('DEVTYPE'))
print('Bus system: %s' % dev.get('ID_BUS'))
print('Partition label: %s' % dev.get('ID_FS_LABEL'))
print('FS: %s' % dev.get('ID_FS_SYSTEM_ID'))
print('FS type: %s' % dev.get('ID_FS_TYPE'))
print('Device usage: %s' % dev.get('ID_FS_USAGE'))
print('Device model: %s' % dev.get('ID_MODEL'))
print('Partition type: %s' % dev.get('ID_PART_TABLE_TYPE'))
print('USB driver: %s' % dev.get('ID_USB_DRIVER'))
print('Path id: %s' % dev.get('ID_PATH'))
#print('Capacity: %s' % stdOut[0].strip())
print('</BLOCK INFORMATION>')
print("")
print("<BLOCK INFORMATION>")
print("Device name: %s" % dev.get("DEVNAME"))
print("Device type: %s" % dev.get("DEVTYPE"))
print("Bus system: %s" % dev.get("ID_BUS"))
print("Partition label: %s" % dev.get("ID_FS_LABEL"))
print("FS: %s" % dev.get("ID_FS_SYSTEM_ID"))
print("FS type: %s" % dev.get("ID_FS_TYPE"))
print("Device usage: %s" % dev.get("ID_FS_USAGE"))
print("Device model: %s" % dev.get("ID_MODEL"))
print("Partition type: %s" % dev.get("ID_PART_TABLE_TYPE"))
print("USB driver: %s" % dev.get("ID_USB_DRIVER"))
print("Path id: %s" % dev.get("ID_PATH"))
# print('Capacity: %s' % stdOut[0].strip())
print("</BLOCK INFORMATION>")
# enumerate at device connection
for device in iter(monitor.poll, None):
if 'ID_FS_TYPE' in device:
if device.action == 'add':
if device.device_node[5:7] == 'sd' and device.get('DEVTYPE')=='partition':
printDeviceInfo(device)
print("New device {}".format(device.device_node))
# loop until device is mounted
if autoMount:
found=False
loop=0
while (not found) and (loop<10):
# need to sleep before devide is mounted
time.sleep(1)
for partition in psutil.disk_partitions():
if partition.device == device.device_node:
print("Mounted at {}".format(partition.mountpoint))
found=True
loop+=1
else:
print("mount device to /media/box")
res=os.system("pmount "+device.device_node+" box")
print("Return type: ", res)
if device.action == 'remove':
if device.device_node[5:7] == 'sd' and device.get('DEVTYPE')=='partition':
print('Device removed')
if not autoMount:
print("unmount device /media/box")
res = os.system("pumount /media/box")
print("Return type: ", res)
if "ID_FS_TYPE" in device:
if device.action == "add":
if device.device_node[5:7] == "sd" and device.get("DEVTYPE") == "partition":
printDeviceInfo(device)
print("New device {}".format(device.device_node))
# loop until device is mounted
if autoMount:
found = False
loop = 0
while (not found) and (loop < 10):
# need to sleep before devide is mounted
time.sleep(1)
for partition in psutil.disk_partitions():
if partition.device == device.device_node:
print("Mounted at {}".format(partition.mountpoint))
found = True
loop += 1
else:
print("mount device to /media/box")
res = os.system("pmount " + device.device_node + " box")
print("Return type: ", res)
if device.action == "remove":
if device.device_node[5:7] == "sd" and device.get("DEVTYPE") == "partition":
print("Device removed")
if not autoMount:
print("unmount device /media/box")
res = os.system("pumount /media/box")
print("Return type: ", res)

View file

@ -13,15 +13,12 @@ screen.clear()
while True:
key = screen.getch()
screen.clear()
screen.addstr(0, 0, 'key: {}'.format(key))
screen.addstr(0, 0, "key: {}".format(key))
if key == curses.KEY_MOUSE:
_, x, y, _, button = curses.getmouse()
screen.addstr(1, 0, 'x, y, button = {}, {}, {}'.format(x, y, button))
screen.addstr(1, 0, "x, y, button = {}, {}, {}".format(x, y, button))
elif key == 27:
break
curses.endwin()
curses.flushinp()

View file

@ -5,20 +5,23 @@ import time
curses.initscr()
def initBar():
global progress_win
progress_win = curses.newwin(3, 62, 3, 10)
progress_win.border(0)
def updateBar(progress):
global progress_win
rangex = (60 / float(100)) * progress
pos = int(rangex)
display = '#'
display = "#"
if pos != 0:
progress_win.addstr(1, pos, "{}".format(display))
progress_win.refresh()
initBar()
loading = 0
while loading < 100:
@ -30,4 +33,3 @@ time.sleep(1)
curses.endwin()
curses.flushinp()

View file

@ -4,23 +4,21 @@ import pypandora
import time
import sys
pp = pypandora.PyPandora(root_url= 'http://127.0.0.1:6100')
pp = pypandora.PyPandora(root_url="http://127.0.0.1:6100")
for arg in sys.argv[1:]:
print(arg,end='',flush=True)
print(":",end='',flush=True)
print(arg, end="", flush=True)
print(":", end="", flush=True)
res = pp.submit_from_disk(arg)
while True:
print('.',end='',flush=True)
print(".", end="", flush=True)
time.sleep(1)
res = pp.task_status(res['taskId'])
res = pp.task_status(res["taskId"])
if res['status']!='WAITING':
if res["status"] != "WAITING":
break
print(res['status'])
print(res["status"])

View file

@ -10,17 +10,17 @@ curses.flushinp()
curses.noecho()
screen.clear()
screen.addstr(1,0," ██▓███ ▄▄▄ ███▄ █ ▓█████▄ ▒█████ ██▀███ ▄▄▄ ▄▄▄▄ ▒█████ ▒██ ██▒")
screen.addstr(2,0," ▓██░ ██▒▒████▄ ██ ▀█ █ ▒██▀ ██▌▒██▒ ██▒▓██ ▒ ██▒▒████▄ ▓█████▄ ▒██▒ ██▒▒▒ █ █ ▒░")
screen.addstr(3,0," ▓██░ ██▓▒▒██ ▀█▄ ▓██ ▀█ ██▒░██ █▌▒██░ ██▒▓██ ░▄█ ▒▒██ ▀█▄ ▒██▒ ▄██▒██░ ██▒░░ █ ░")
screen.addstr(4,0," ▒██▄█▓▒ ▒░██▄▄▄▄██ ▓██▒ ▐▌██▒░▓█▄ ▌▒██ ██░▒██▀▀█▄ ░██▄▄▄▄██ ▒██░█▀ ▒██ ██░ ░ █ █ ▒ ")
screen.addstr(5,0," ▒██▒ ░ ░ ▓█ ▓██▒▒██░ ▓██░░▒████▓ ░ ████▓▒░░██▓ ▒██▒ ▓█ ▓██▒ ░▓█ ▀█▓░ ████▓▒░▒██▒ ▒██▒")
screen.addstr(6,0," ▒▓▒░ ░ ░ ▒▒ ▓▒█░░ ▒░ ▒ ▒ ▒▒▓ ▒ ░ ▒░▒░▒░ ░ ▒▓ ░▒▓░ ▒▒ ▓▒█░ ░▒▓███▀▒░ ▒░▒░▒░ ▒▒ ░ ░▓ ░")
screen.addstr(7,0," ░▒ ░ ▒ ▒▒ ░░ ░░ ░ ▒░ ░ ▒ ▒ ░ ▒ ▒░ ░▒ ░ ▒░ ▒ ▒▒ ░ ▒░▒ ░ ░ ▒ ▒░ ░░ ░▒ ░")
screen.addstr(8,0," ░░ ░ ▒ ░ ░ ░ ░ ░ ░ ░ ░ ░ ▒ ░░ ░ ░ ▒ ░ ░ ░ ░ ░ ▒ ░ ░ ")
screen.addstr(9,0," ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ")
screen.addstr(10,0," ░ ░ ")
screen.addstr(11,0,"READY.");
screen.addstr(1, 0, " ██▓███ ▄▄▄ ███▄ █ ▓█████▄ ▒█████ ██▀███ ▄▄▄ ▄▄▄▄ ▒█████ ▒██ ██▒")
screen.addstr(2, 0, " ▓██░ ██▒▒████▄ ██ ▀█ █ ▒██▀ ██▌▒██▒ ██▒▓██ ▒ ██▒▒████▄ ▓█████▄ ▒██▒ ██▒▒▒ █ █ ▒░")
screen.addstr(3, 0, " ▓██░ ██▓▒▒██ ▀█▄ ▓██ ▀█ ██▒░██ █▌▒██░ ██▒▓██ ░▄█ ▒▒██ ▀█▄ ▒██▒ ▄██▒██░ ██▒░░ █ ░")
screen.addstr(4, 0, " ▒██▄█▓▒ ▒░██▄▄▄▄██ ▓██▒ ▐▌██▒░▓█▄ ▌▒██ ██░▒██▀▀█▄ ░██▄▄▄▄██ ▒██░█▀ ▒██ ██░ ░ █ █ ▒ ")
screen.addstr(5, 0, " ▒██▒ ░ ░ ▓█ ▓██▒▒██░ ▓██░░▒████▓ ░ ████▓▒░░██▓ ▒██▒ ▓█ ▓██▒ ░▓█ ▀█▓░ ████▓▒░▒██▒ ▒██▒")
screen.addstr(6, 0, " ▒▓▒░ ░ ░ ▒▒ ▓▒█░░ ▒░ ▒ ▒ ▒▒▓ ▒ ░ ▒░▒░▒░ ░ ▒▓ ░▒▓░ ▒▒ ▓▒█░ ░▒▓███▀▒░ ▒░▒░▒░ ▒▒ ░ ░▓ ░")
screen.addstr(7, 0, " ░▒ ░ ▒ ▒▒ ░░ ░░ ░ ▒░ ░ ▒ ▒ ░ ▒ ▒░ ░▒ ░ ▒░ ▒ ▒▒ ░ ▒░▒ ░ ░ ▒ ▒░ ░░ ░▒ ░")
screen.addstr(8, 0, " ░░ ░ ▒ ░ ░ ░ ░ ░ ░ ░ ░ ░ ▒ ░░ ░ ░ ▒ ░ ░ ░ ░ ░ ▒ ░ ░ ")
screen.addstr(9, 0, " ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ")
screen.addstr(10, 0, " ░ ░ ")
screen.addstr(11, 0, "READY.")
while True:
key = screen.getch()