"feat: Update README

This commit is contained in:
2025-05-26 12:17:18 +02:00
parent 117f7a857f
commit d3b8bf2820
7 changed files with 673 additions and 558 deletions

View File

@@ -590,14 +590,38 @@ def get_printers():
try:
printers = db_session.query(Printer).all()
printer_list = [printer.to_dict() for printer in printers]
# Optimierte Drucker-Liste mit schneller Status-Bestimmung
printer_list = []
for printer in printers:
# Bestimme Status basierend auf hardkodierten Druckern
printer_config = PRINTERS.get(printer.name)
if printer_config:
status = "available" # Drucker verfügbar
active = True
else:
status = "offline"
active = False
# Aktualisiere Status in der Datenbank
printer.status = status
printer.active = active
printer_data = printer.to_dict()
printer_data["status"] = status
printer_data["active"] = active
printer_list.append(printer_data)
# Speichere Updates
db_session.commit()
db_session.close()
return jsonify({
"printers": printer_list
})
except Exception as e:
printers_logger.error(f"Fehler beim Abrufen der Drucker: {str(e)}")
db_session.rollback()
db_session.close()
return jsonify({"error": "Interner Serverfehler"}), 500
@@ -715,23 +739,47 @@ def get_activity():
@app.route("/api/printers/status", methods=["GET"])
@login_required
def get_printers_status():
"""Gibt den Status aller Drucker zurück."""
"""Gibt den Status aller Drucker zurück - optimiert für schnelle Antwort."""
db_session = get_db_session()
try:
printers = db_session.query(Printer).all()
status_data = [
{
# Schnelle Status-Bestimmung basierend auf hardkodierten Druckern
status_data = []
for printer in printers:
# Bestimme Status basierend auf IP-Adresse aus der Konfiguration
printer_config = PRINTERS.get(printer.name)
if printer_config:
# Drucker ist in der Konfiguration -> als online betrachten
status = "online"
active = True
else:
# Drucker nicht in Konfiguration -> offline
status = "offline"
active = False
# Aktualisiere den Status in der Datenbank für Konsistenz
printer.status = status
printer.active = active
status_data.append({
"id": printer.id,
"name": printer.name,
"status": printer.status,
"active": printer.active
}
for printer in printers
]
"status": status,
"active": active,
"ip_address": printer.ip_address,
"location": printer.location
})
# Speichere die aktualisierten Status
db_session.commit()
db_session.close()
return jsonify(status_data)
except Exception as e:
db_session.rollback()
db_session.close()
printers_logger.error(f"Fehler beim Abrufen des Drucker-Status: {str(e)}")
return jsonify({"error": str(e)}), 500
@app.route("/api/jobs/current", methods=["GET"])