From cf2d2869d85bd64f3cd26ef12166feb07bd16a09 Mon Sep 17 00:00:00 2001 From: Tobias Leuschner Date: Wed, 13 May 2026 11:02:30 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20Aktualisierung=20der=20Speicherinformat?= =?UTF-8?q?ionen-Funktion=20zur=20besseren=20Handhabung=20von=20Laufwerken?= =?UTF-8?q?;=20Versionsnummer=20auf=201.0.69=20erh=C3=B6ht?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.py | 20 +++++++++++++------- version.txt | 2 +- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/app.py b/app.py index b2496b1..0f3fecf 100644 --- a/app.py +++ b/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) diff --git a/version.txt b/version.txt index 01c08cf..3116087 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.0.68 +1.0.69