Refactor code structure for improved readability and maintainability

This commit is contained in:
2026-05-10 11:33:32 +02:00
parent e24fad4adc
commit 23259fcce6
5 changed files with 26 additions and 4 deletions

BIN
PiCopy_Logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 450 KiB

View File

@@ -1,3 +1,7 @@
<div align="center">
<img src="PiCopy_Logo.png" alt="PiCopy Logo" width="160">
</div>
# PiCopy # PiCopy
**Automatische USB-Backup-Station für den Raspberry Pi mit Web-Interface** **Automatische USB-Backup-Station für den Raspberry Pi mit Web-Interface**

13
app.py
View File

@@ -16,7 +16,7 @@ import urllib.request as _urlreq
import urllib.error as _urlerr import urllib.error as _urlerr
from datetime import datetime from datetime import datetime
from pathlib import Path from pathlib import Path
from flask import Flask, jsonify, request from flask import Flask, jsonify, request, send_file
app = Flask(__name__) app = Flask(__name__)
@@ -1506,6 +1506,13 @@ def run_uploads(local_dir: Path, cfg: dict, upload_files=None):
def index(): def index():
return HTML.replace('__PICOPY_VERSION__', VERSION) return HTML.replace('__PICOPY_VERSION__', VERSION)
@app.route('/logo.png')
def r_logo():
logo = Path(__file__).with_name('PiCopy_Logo.png')
if logo.exists():
return send_file(logo, mimetype='image/png')
return '', 404
@app.route('/api/devices') @app.route('/api/devices')
def r_devices(): def r_devices():
return jsonify(usb_devices()) return jsonify(usb_devices())
@@ -2084,7 +2091,7 @@ body{background:var(--bg);color:var(--txt);font-family:-apple-system,BlinkMacSys
/* -- Topbar -- */ /* -- Topbar -- */
.topbar{background:var(--bg2);border-bottom:1px solid var(--brd);padding:.75rem 1.5rem;display:flex;align-items:center;gap:1rem;position:sticky;top:0;z-index:100;backdrop-filter:blur(8px)} .topbar{background:var(--bg2);border-bottom:1px solid var(--brd);padding:.75rem 1.5rem;display:flex;align-items:center;gap:1rem;position:sticky;top:0;z-index:100;backdrop-filter:blur(8px)}
.logo{display:flex;align-items:center;gap:.55rem;font-size:1rem;font-weight:700;letter-spacing:-.02em;color:var(--txt)} .logo{display:flex;align-items:center;gap:.55rem;font-size:1rem;font-weight:700;letter-spacing:-.02em;color:var(--txt)}
.logo-dot{width:8px;height:8px;border-radius:50%;background:var(--acc);box-shadow:0 0 8px var(--acc)} .logo-img{height:28px;width:auto;object-fit:contain}
.topbar-wifi{margin-left:auto;display:flex;align-items:center;gap:.6rem;font-size:.82rem;background:var(--surf);border:1px solid var(--brd);border-radius:9999px;padding:.3rem .75rem} .topbar-wifi{margin-left:auto;display:flex;align-items:center;gap:.6rem;font-size:.82rem;background:var(--surf);border:1px solid var(--brd);border-radius:9999px;padding:.3rem .75rem}
.topbar-wifi~.topbar-wifi,.wdot{width:7px;height:7px;border-radius:50%;transition:.3s;flex-shrink:0} .topbar-wifi~.topbar-wifi,.wdot{width:7px;height:7px;border-radius:50%;transition:.3s;flex-shrink:0}
.wdot.c{background:var(--grn);box-shadow:0 0 6px var(--grn)} .wdot.c{background:var(--grn);box-shadow:0 0 6px var(--grn)}
@@ -2273,7 +2280,7 @@ body{background:var(--bg);color:var(--txt);font-family:-apple-system,BlinkMacSys
<!-- Topbar --> <!-- Topbar -->
<header class="topbar"> <header class="topbar">
<div class="logo"> <div class="logo">
<div class="logo-dot"></div> <img src="/logo.png" alt="PiCopy" class="logo-img">
PiCopy PiCopy
</div> </div>
<div id="upd-badge" class="upd-badge" onclick="installUpdate()" title="Klicken zum Installieren"> <div id="upd-badge" class="upd-badge" onclick="installUpdate()" title="Klicken zum Installieren">

View File

@@ -64,6 +64,17 @@ else
fi fi
ok "version.txt installiert" ok "version.txt installiert"
# ── Logo kopieren oder herunterladen ─────────────────────────────────────────
if [ -f "./PiCopy_Logo.png" ]; then
info "Lokales Logo wird verwendet..."
cp PiCopy_Logo.png "$INSTALL_DIR/PiCopy_Logo.png"
else
info "Logo wird heruntergeladen..."
curl -sSfL "$REPO_RAW/PiCopy_Logo.png" -o "$INSTALL_DIR/PiCopy_Logo.png" \
|| warn "Logo konnte nicht heruntergeladen werden (nicht kritisch)."
fi
ok "Logo installiert"
# ── Python-Umgebung ─────────────────────────────────────────────────────────── # ── Python-Umgebung ───────────────────────────────────────────────────────────
info "Python venv wird erstellt..." info "Python venv wird erstellt..."
python3 -m venv "$INSTALL_DIR/venv" python3 -m venv "$INSTALL_DIR/venv"

View File

@@ -1 +1 @@
1.0.62 1.0.63