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()
|
devs = usb_devices()
|
||||||
result = []
|
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:
|
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,
|
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)
|
pct=round(du.used / du.total * 100) if du.total else 0)
|
||||||
except Exception:
|
except Exception:
|
||||||
return dict(mounted=False, total=None, used=None, free=None, pct=None)
|
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):
|
for sp in _resolve_source_ports(cfg):
|
||||||
dev = next((d for d in devs if d['usb_port'] == sp['port']), None)
|
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']}",
|
entry = dict(type='source', label=sp.get('label') or f"Port {sp['port']}",
|
||||||
port=sp['port'], mounted=False,
|
port=sp['port'], mounted=False,
|
||||||
total=None, used=None, free=None, pct=None)
|
total=None, used=None, free=None, pct=None)
|
||||||
if dev and dev.get('mount'):
|
if dev:
|
||||||
entry.update(_du_entry(dev['mount']))
|
entry.update(_du_for_dev(dev))
|
||||||
result.append(entry)
|
result.append(entry)
|
||||||
|
|
||||||
if cfg.get('dest_type') == 'internal':
|
if cfg.get('dest_type') == 'internal':
|
||||||
entry = dict(type='dest',
|
entry = dict(type='dest',
|
||||||
label=cfg.get('internal_dest_label') or 'Interner Speicher',
|
label=cfg.get('internal_dest_label') or 'Interner Speicher',
|
||||||
port='__internal__')
|
port='__internal__')
|
||||||
entry.update(_du_entry(str(INTERNAL_DEST_DIR)))
|
entry.update(_du_for_dev({'internal': True}))
|
||||||
result.append(entry)
|
result.append(entry)
|
||||||
elif cfg.get('dest_port'):
|
elif cfg.get('dest_port'):
|
||||||
dev = next((d for d in devs if d['usb_port'] == cfg['dest_port']), None)
|
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']}",
|
entry = dict(type='dest', label=cfg.get('dest_label') or f"Port {cfg['dest_port']}",
|
||||||
port=cfg['dest_port'], mounted=False,
|
port=cfg['dest_port'], mounted=False,
|
||||||
total=None, used=None, free=None, pct=None)
|
total=None, used=None, free=None, pct=None)
|
||||||
if dev and dev.get('mount'):
|
if dev:
|
||||||
entry.update(_du_entry(dev['mount']))
|
entry.update(_du_for_dev(dev))
|
||||||
result.append(entry)
|
result.append(entry)
|
||||||
|
|
||||||
return jsonify(result)
|
return jsonify(result)
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
1.0.68
|
1.0.69
|
||||||
|
|||||||
Reference in New Issue
Block a user