feat: Aktualisierung der Speicherinformationen-Funktion zur besseren Handhabung von Laufwerken; Versionsnummer auf 1.0.69 erhöht
This commit is contained in:
20
app.py
20
app.py
@@ -1534,36 +1534,42 @@ def r_storage_info():
|
||||
devs = usb_devices()
|
||||
result = []
|
||||
|
||||
def _du_entry(mount_path):
|
||||
def _du_for_dev(dev):
|
||||
mp, owned = ensure_mount(dev)
|
||||
if not mp:
|
||||
return dict(mounted=False, total=None, used=None, free=None, pct=None)
|
||||
try:
|
||||
du = shutil.disk_usage(mount_path)
|
||||
du = shutil.disk_usage(mp)
|
||||
return dict(mounted=True, total=du.total, used=du.used, free=du.free,
|
||||
pct=round(du.used / du.total * 100) if du.total else 0)
|
||||
except Exception:
|
||||
return dict(mounted=False, total=None, used=None, free=None, pct=None)
|
||||
finally:
|
||||
if owned:
|
||||
subprocess.run(['umount', mp], capture_output=True)
|
||||
|
||||
for sp in _resolve_source_ports(cfg):
|
||||
dev = next((d for d in devs if d['usb_port'] == sp['port']), None)
|
||||
entry = dict(type='source', label=sp.get('label') or f"Port {sp['port']}",
|
||||
port=sp['port'], mounted=False,
|
||||
total=None, used=None, free=None, pct=None)
|
||||
if dev and dev.get('mount'):
|
||||
entry.update(_du_entry(dev['mount']))
|
||||
if dev:
|
||||
entry.update(_du_for_dev(dev))
|
||||
result.append(entry)
|
||||
|
||||
if cfg.get('dest_type') == 'internal':
|
||||
entry = dict(type='dest',
|
||||
label=cfg.get('internal_dest_label') or 'Interner Speicher',
|
||||
port='__internal__')
|
||||
entry.update(_du_entry(str(INTERNAL_DEST_DIR)))
|
||||
entry.update(_du_for_dev({'internal': True}))
|
||||
result.append(entry)
|
||||
elif cfg.get('dest_port'):
|
||||
dev = next((d for d in devs if d['usb_port'] == cfg['dest_port']), None)
|
||||
entry = dict(type='dest', label=cfg.get('dest_label') or f"Port {cfg['dest_port']}",
|
||||
port=cfg['dest_port'], mounted=False,
|
||||
total=None, used=None, free=None, pct=None)
|
||||
if dev and dev.get('mount'):
|
||||
entry.update(_du_entry(dev['mount']))
|
||||
if dev:
|
||||
entry.update(_du_for_dev(dev))
|
||||
result.append(entry)
|
||||
|
||||
return jsonify(result)
|
||||
|
||||
Reference in New Issue
Block a user