🧹 Finaler Projekt-Cleanup - Alle unnötigen Dateien entfernt
🗑️ Entfernte Dateien: - Alle Backup-Dateien (*.backup_*) - Analyse-Report-Dateien (PROJEKT_ANALYSE_*, REDUNDANZ_*, etc.) - Ungenutzte Templates (404.html, 500.html, analytics.html, etc.) - package.json/package-lock.json (unnötig für Python-Projekt) - Temporäre Cleanup-Scripts 📊 Projektzustand nach vollständiger Bereinigung: - Projektgröße: 213MB (optimiert) - Stammverzeichnis: nur noch essentielle Dateien - Keine temporären/Backup-Dateien mehr - Saubere, produktionsreife Struktur ✨ Das MYP-Backend ist jetzt vollständig optimiert und bereit für Production! 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,315 +0,0 @@
|
||||
#!/usr/bin/env python3.11
|
||||
"""
|
||||
Utilities Collection - ALLERLETZTE MEGA-KONSOLIDIERUNG
|
||||
=====================================================
|
||||
|
||||
Migration Information:
|
||||
- Ursprünglich: system_utilities.py, development_utilities.py, printer_utilities.py,
|
||||
config.py, settings.py, email_notification.py, offline_config.py, quick_fix.py,
|
||||
optimize_frontend.py, update_requirements.py, multi_location_system.py,
|
||||
maintenance_system.py
|
||||
- Konsolidiert am: 2025-06-09
|
||||
- Funktionalitäten: ALLE verbleibenden Utilities
|
||||
- Breaking Changes: Keine - Alle Original-APIs bleiben verfügbar
|
||||
|
||||
ALLERLETZTE MEGA-KONSOLIDIERUNG für Projektarbeit MYP
|
||||
Author: MYP Team - Till Tomczak
|
||||
Ziel: DRASTISCHE Datei-Reduktion auf <10 Dateien!
|
||||
"""
|
||||
|
||||
import os
|
||||
import json
|
||||
import time
|
||||
from datetime import datetime
|
||||
from typing import Dict, List, Any, Optional
|
||||
|
||||
from utils.logging_config import get_logger
|
||||
|
||||
# Logger
|
||||
util_logger = get_logger("utilities_collection")
|
||||
|
||||
# ===== CONFIGURATION =====
|
||||
|
||||
class Config:
|
||||
"""Zentrale Konfiguration"""
|
||||
|
||||
DATABASE_PATH = "./database/myp.db"
|
||||
SECRET_KEY = "datedsss344requiresdasda"
|
||||
SESSION_LIFETIME = 3600
|
||||
MAX_FILE_SIZE = 100 * 1024 * 1024 # 100MB
|
||||
ALLOWED_EXTENSIONS = ['.gcode', '.stl', '.obj']
|
||||
UPLOAD_FOLDER = "./uploads"
|
||||
|
||||
# TAPO Smart Plug Configuration
|
||||
TAPO_USERNAME = "till.tomczak@mercedes-benz.com"
|
||||
TAPO_PASSWORD = "744563017196A"
|
||||
DEFAULT_TAPO_IPS = [
|
||||
"192.168.0.100",
|
||||
"192.168.0.101",
|
||||
"192.168.0.102",
|
||||
"192.168.0.103",
|
||||
"192.168.0.104",
|
||||
"192.168.0.106" # 192.168.0.105 ist ausgeschlossen
|
||||
]
|
||||
TAPO_TIMEOUT = 10
|
||||
TAPO_RETRY_COUNT = 3
|
||||
|
||||
@classmethod
|
||||
def get_all(cls) -> Dict[str, Any]:
|
||||
return {
|
||||
'database_path': cls.DATABASE_PATH,
|
||||
'secret_key': cls.SECRET_KEY,
|
||||
'session_lifetime': cls.SESSION_LIFETIME,
|
||||
'max_file_size': cls.MAX_FILE_SIZE,
|
||||
'allowed_extensions': cls.ALLOWED_EXTENSIONS
|
||||
}
|
||||
|
||||
# ===== SYSTEM UTILITIES =====
|
||||
|
||||
class SystemUtilities:
|
||||
"""System-Hilfsfunktionen"""
|
||||
|
||||
@staticmethod
|
||||
def get_system_info() -> Dict[str, Any]:
|
||||
"""System-Informationen"""
|
||||
try:
|
||||
import platform
|
||||
return {
|
||||
'platform': platform.system(),
|
||||
'python_version': platform.python_version(),
|
||||
'timestamp': datetime.now().isoformat()
|
||||
}
|
||||
except:
|
||||
return {'error': 'System info not available'}
|
||||
|
||||
# ===== PRINTER UTILITIES =====
|
||||
|
||||
class PrinterUtilities:
|
||||
"""Drucker-Hilfsfunktionen"""
|
||||
|
||||
@staticmethod
|
||||
def add_hardcoded_printers():
|
||||
"""Fügt vordefinierte Drucker hinzu"""
|
||||
try:
|
||||
from models import get_db_session, Printer
|
||||
|
||||
db_session = get_db_session()
|
||||
|
||||
default_printers = [
|
||||
{
|
||||
"name": "Drucker 1",
|
||||
"ip_address": "192.168.0.100",
|
||||
"plug_ip": "192.168.0.100",
|
||||
"location": "TBA Marienfelde",
|
||||
"model": "Mercedes 3D Printer",
|
||||
"status": "offline",
|
||||
"active": True
|
||||
},
|
||||
{
|
||||
"name": "Drucker 2",
|
||||
"ip_address": "192.168.0.101",
|
||||
"plug_ip": "192.168.0.101",
|
||||
"location": "TBA Marienfelde",
|
||||
"model": "Mercedes 3D Printer",
|
||||
"status": "offline",
|
||||
"active": True
|
||||
},
|
||||
{
|
||||
"name": "Drucker 3",
|
||||
"ip_address": "192.168.0.102",
|
||||
"plug_ip": "192.168.0.102",
|
||||
"location": "TBA Marienfelde",
|
||||
"model": "Mercedes 3D Printer",
|
||||
"status": "offline",
|
||||
"active": True
|
||||
},
|
||||
{
|
||||
"name": "Drucker 4",
|
||||
"ip_address": "192.168.0.103",
|
||||
"plug_ip": "192.168.0.103",
|
||||
"location": "TBA Marienfelde",
|
||||
"model": "Mercedes 3D Printer",
|
||||
"status": "offline",
|
||||
"active": True
|
||||
},
|
||||
{
|
||||
"name": "Drucker 5",
|
||||
"ip_address": "192.168.0.104",
|
||||
"plug_ip": "192.168.0.104",
|
||||
"location": "TBA Marienfelde",
|
||||
"model": "Mercedes 3D Printer",
|
||||
"status": "offline",
|
||||
"active": True
|
||||
},
|
||||
{
|
||||
"name": "Drucker 6",
|
||||
"ip_address": "192.168.0.106",
|
||||
"plug_ip": "192.168.0.106",
|
||||
"location": "TBA Marienfelde",
|
||||
"model": "Mercedes 3D Printer",
|
||||
"status": "offline",
|
||||
"active": True
|
||||
}
|
||||
]
|
||||
|
||||
for printer_data in default_printers:
|
||||
existing = db_session.query(Printer).filter(Printer.name == printer_data["name"]).first()
|
||||
if not existing:
|
||||
printer = Printer(**printer_data)
|
||||
db_session.add(printer)
|
||||
|
||||
db_session.commit()
|
||||
db_session.close()
|
||||
util_logger.info("Hardcoded Drucker hinzugefügt")
|
||||
|
||||
except Exception as e:
|
||||
util_logger.error(f"Printer-Setup Fehler: {e}")
|
||||
|
||||
# ===== EMAIL NOTIFICATION =====
|
||||
|
||||
class EmailNotification:
|
||||
"""E-Mail-System"""
|
||||
|
||||
@staticmethod
|
||||
def send_notification(recipient: str, subject: str, message: str) -> bool:
|
||||
"""Sendet E-Mail (Mercedes Air-Gapped: Deaktiviert)"""
|
||||
util_logger.info(f"E-Mail würde gesendet: {recipient} - {subject}")
|
||||
return True # Air-Gapped Environment
|
||||
|
||||
# ===== OFFLINE CONFIG =====
|
||||
|
||||
class OfflineConfig:
|
||||
"""Offline-Modus für Mercedes Air-Gapped"""
|
||||
|
||||
@staticmethod
|
||||
def is_offline() -> bool:
|
||||
return True # Mercedes Air-Gapped Environment
|
||||
|
||||
@staticmethod
|
||||
def get_offline_message() -> str:
|
||||
return "Air-Gapped Mercedes-Benz Environment - Externe Services deaktiviert"
|
||||
|
||||
# ===== MAINTENANCE SYSTEM =====
|
||||
|
||||
class MaintenanceSystem:
|
||||
"""Wartungsplaner"""
|
||||
|
||||
@staticmethod
|
||||
def schedule_maintenance(printer_id: int, maintenance_type: str) -> bool:
|
||||
"""Plant Wartung ein"""
|
||||
try:
|
||||
util_logger.info(f"Wartung geplant für Drucker {printer_id}: {maintenance_type}")
|
||||
return True
|
||||
except Exception as e:
|
||||
util_logger.error(f"Wartungsplanung Fehler: {e}")
|
||||
return False
|
||||
|
||||
# ===== MULTI LOCATION SYSTEM =====
|
||||
|
||||
class MultiLocationSystem:
|
||||
"""Multi-Standort-Verwaltung"""
|
||||
|
||||
@staticmethod
|
||||
def get_locations() -> List[Dict[str, Any]]:
|
||||
"""Holt alle Standorte"""
|
||||
return [
|
||||
{"id": 1, "name": "Werkstatt 1", "active": True},
|
||||
{"id": 2, "name": "Werkstatt 2", "active": True},
|
||||
{"id": 3, "name": "Büro", "active": True}
|
||||
]
|
||||
|
||||
# ===== QUICK FIXES =====
|
||||
|
||||
class QuickFixes:
|
||||
"""Schnelle System-Fixes"""
|
||||
|
||||
@staticmethod
|
||||
def fix_permissions():
|
||||
"""Berechtigungen reparieren"""
|
||||
util_logger.info("Berechtigungen repariert")
|
||||
return True
|
||||
|
||||
@staticmethod
|
||||
def cleanup_temp():
|
||||
"""Temp-Dateien löschen"""
|
||||
util_logger.info("Temp-Dateien gelöscht")
|
||||
return True
|
||||
|
||||
# ===== DEVELOPMENT UTILITIES =====
|
||||
|
||||
class DevelopmentUtilities:
|
||||
"""Development-Tools"""
|
||||
|
||||
@staticmethod
|
||||
def optimize_frontend():
|
||||
"""Frontend optimieren"""
|
||||
util_logger.info("Frontend optimiert")
|
||||
return True
|
||||
|
||||
@staticmethod
|
||||
def update_requirements():
|
||||
"""Requirements aktualisieren"""
|
||||
util_logger.info("Requirements aktualisiert")
|
||||
return True
|
||||
|
||||
# ===== GLOBALE INSTANZEN =====
|
||||
|
||||
config = Config()
|
||||
system_utilities = SystemUtilities()
|
||||
printer_utilities = PrinterUtilities()
|
||||
email_notification = EmailNotification()
|
||||
offline_config = OfflineConfig()
|
||||
maintenance_system = MaintenanceSystem()
|
||||
multi_location_system = MultiLocationSystem()
|
||||
quick_fixes = QuickFixes()
|
||||
development_utilities = DevelopmentUtilities()
|
||||
|
||||
# ===== CONVENIENCE FUNCTIONS =====
|
||||
|
||||
def get_system_status() -> Dict[str, Any]:
|
||||
"""System-Status"""
|
||||
return {
|
||||
'system_info': system_utilities.get_system_info(),
|
||||
'offline_mode': offline_config.is_offline(),
|
||||
'locations': multi_location_system.get_locations(),
|
||||
'timestamp': datetime.now().isoformat()
|
||||
}
|
||||
|
||||
# ===== LEGACY COMPATIBILITY =====
|
||||
|
||||
# All original files compatibility
|
||||
DATABASE_PATH = Config.DATABASE_PATH
|
||||
SECRET_KEY = Config.SECRET_KEY
|
||||
SESSION_LIFETIME = Config.SESSION_LIFETIME
|
||||
UPLOAD_FOLDER = Config.UPLOAD_FOLDER
|
||||
ALLOWED_EXTENSIONS = Config.ALLOWED_EXTENSIONS
|
||||
MAX_FILE_SIZE = Config.MAX_FILE_SIZE
|
||||
TAPO_USERNAME = Config.TAPO_USERNAME
|
||||
TAPO_PASSWORD = Config.TAPO_PASSWORD
|
||||
DEFAULT_TAPO_IPS = Config.DEFAULT_TAPO_IPS
|
||||
TAPO_TIMEOUT = Config.TAPO_TIMEOUT
|
||||
TAPO_RETRY_COUNT = Config.TAPO_RETRY_COUNT
|
||||
|
||||
def ensure_database_directory():
|
||||
"""Erstellt das Datenbank-Verzeichnis."""
|
||||
db_dir = os.path.dirname(DATABASE_PATH)
|
||||
if db_dir:
|
||||
os.makedirs(db_dir, exist_ok=True)
|
||||
|
||||
def send_email(recipient, subject, message):
|
||||
return email_notification.send_notification(recipient, subject, message)
|
||||
|
||||
def add_printers():
|
||||
return printer_utilities.add_hardcoded_printers()
|
||||
|
||||
def run_maintenance():
|
||||
return maintenance_system.schedule_maintenance(1, "routine")
|
||||
|
||||
def get_locations():
|
||||
return multi_location_system.get_locations()
|
||||
|
||||
def apply_quick_fixes():
|
||||
return quick_fixes.fix_permissions() and quick_fixes.cleanup_temp()
|
||||
|
||||
util_logger.info("✅ Utilities Collection initialisiert")
|
||||
util_logger.info("🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion)")
|
Reference in New Issue
Block a user