Einstellungen-Tab, plattformuebergreifendes Update/Branding, CI-Release-Pipeline

- Settings-Tab in der App (Discord/Update/Start-Tab live editierbar, kein config.json-Handbearbeiten noetig)
- updater.py: plattformabhaengige Asset-Auswahl + Installation (Windows .zip/robocopy, Linux .tar.gz/Shell-Skript)
- browser.py/chrome_shim.py: Sec-CH-UA + navigator.userAgentData jetzt je nach sys.platform (Windows/Linux/macOS)
- app_id.py: robustere Suche nach umbenanntem QtWebEngine-Hilfsprozess (rglob statt fixer Pfade)
- packaging/playtube.spec: icon/version nur unter Windows setzen (Linux-Build faehig)
- packaging/install-linux.sh: Installationsskript fuer native Linux-Version (Desktop-Eintrag, Icon, PATH)
- .github/workflows/release.yml: baut bei Tag-Push automatisch Windows-.exe UND Linux-Binary und veroeffentlicht beide als GitHub Release

Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
2026-09-11 19:34:45 +02:00
co-authored by Claude Sonnet 5
parent 578cda499a
commit 0e6b580018
11 changed files with 459 additions and 109 deletions
+8 -6
View File
@@ -25,10 +25,9 @@ a = Analysis(
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
exe = EXE(
pyz,
a.scripts,
[],
# icon/version-Ressourcen sind Windows-spezifisch (.ico + Versionsressource) - unter
# Linux/macOS gibt es diese Konzepte fuer ELF-Binaries nicht, deshalb nur dort setzen.
exe_kwargs = dict(
exclude_binaries=True,
name="Playtube",
debug=False,
@@ -36,9 +35,12 @@ exe = EXE(
strip=False,
upx=False,
console=False,
icon=str(ROOT / "assets" / "icon.ico"),
version=str(ROOT / "packaging" / "version_info.txt"),
)
if sys.platform == "win32":
exe_kwargs["icon"] = str(ROOT / "assets" / "icon.ico")
exe_kwargs["version"] = str(ROOT / "packaging" / "version_info.txt")
exe = EXE(pyz, a.scripts, [], **exe_kwargs)
coll = COLLECT(
exe,