feat: rewrite application as modular fcco-Converter V2 with new GUI, metadata handling, and updater logic

This commit is contained in:
joel
2026-07-19 23:43:11 +02:00
parent 6dece1410c
commit d130dd267b
17 changed files with 2329 additions and 519 deletions
+78
View File
@@ -0,0 +1,78 @@
#!/usr/bin/env python3
"""
fcco-Converter V2 Build-Skript
Erstellt plattformabhängige Standalone-Executables mit PyInstaller.
Aufruf: python build.py
"""
import platform
import subprocess
import sys
from pathlib import Path
def build():
system = platform.system()
project_dir = Path(__file__).parent
# Basis-Argumente für PyInstaller
args = [
sys.executable,
"-m", "PyInstaller",
"--onefile",
"--windowed",
"--name", "fcco-Converter",
"--clean",
]
# Icon hinzufügen (wenn vorhanden)
icon_path = project_dir / "icon.ico"
if icon_path.exists():
if system == "Windows":
args.extend(["--icon", str(icon_path)])
elif system == "Darwin":
# macOS braucht .icns .ico funktioniert trotzdem als Fallback
args.extend(["--icon", str(icon_path)])
# Versteckte Imports (die PyInstaller evtl. nicht automatisch findet)
hidden_imports = [
"customtkinter",
"mutagen",
"mutagen.easyid3",
"mutagen.id3",
"static_ffmpeg",
]
for imp in hidden_imports:
args.extend(["--hidden-import", imp])
# CustomTkinter-Daten einbinden
try:
import customtkinter
ctk_path = Path(customtkinter.__file__).parent
if system == "Windows":
args.extend(["--add-data", f"{ctk_path};customtkinter"])
else:
args.extend(["--add-data", f"{ctk_path}:customtkinter"])
except ImportError:
print("WARNUNG: customtkinter nicht installiert. Bitte 'pip install -r requirements.txt' ausführen.")
# Hauptdatei
args.append(str(project_dir / "main.py"))
print(f"Build für {system}...")
print(f"Befehl: {' '.join(args)}")
print()
result = subprocess.run(args, cwd=str(project_dir))
if result.returncode == 0:
print()
print(f"Build erfolgreich! Ausgabe in: {project_dir / 'dist'}")
else:
print()
print(f"Build fehlgeschlagen (Code {result.returncode}).")
sys.exit(1)
if __name__ == "__main__":
build()