61 lines
5.3 KiB
Markdown
61 lines
5.3 KiB
Markdown
# EuerChat - euer.tv IRC & Livestream Client (Windows 64-bit)
|
|
|
|
<p align="center"><img src="assets/logo-original.png" alt="euer radio" width="560"></p>
|
|
|
|
Ein moderner, performanter und schlanker Desktop-Client für Windows 64-bit, gebaut mit **Rust + Tauri v2** und einem ansprechenden **Dark-Mode Web-Frontend**.
|
|
|
|
---
|
|
|
|
## Highlights & Features
|
|
|
|
* **Eine einzige EXE (`EuerChat.exe`):**
|
|
* Startet standardmäßig sauber und übersichtlich für alle Chat-Gäste und Hörer.
|
|
* Die Moderationswerkzeuge sind ausgeblendet, bis das Lua/Modi-Addon in den Optionen aktiviert wird.
|
|
* **Integrierter Livestream & Radio-Player (Stumm beim Start):**
|
|
* Direkter HLS-Videostream (`https://hls21.euer.tv/hls/1080p.m3u8` & `hls23.euer.tv`).
|
|
* **Startet garantiert stumm (`muted`)** mit komfortabler Stummschalt-/Ton-Taste und Lautstärkeregler.
|
|
* Live-Titelanzeige & Hörerzähler (`https://api.euer.tv/v2/getjsondata.php?status`).
|
|
* Automatisches Abrufen des aktuellen Album-Covers (`https://api.euer.tv/v2/getjsondata.php`).
|
|
* Ein-/ausblendbares Videofenster für Live-Übertragungen neben dem Chat.
|
|
* **Moderations-Werkzeuge (optional):**
|
|
* Erst bei manueller Aktivierung des Lua/Modi-Addons in den Optionen erscheint oben links der Button zum Moderator-Wechsel.
|
|
* Automatisches Einloggen bei NickServ (`PRIVMSG NickServ :IDENTIFY <passwort>`).
|
|
* Ein-Klick-Wechsel: Wechselt zum Moderatoren-Nick und betritt automatisch `#intern` (mit dem in den Optionen hinterlegten Passwort). Beim Zurückwechseln wird in allen offenen Räumen `!deop` gesendet und `#intern` verlassen.
|
|
* **IRC-Verbindung zu euer.tv:**
|
|
* **Direkt verbinden:** nur den eigenen Namen eingeben, ein Passwort ist optional (nur mit registriertem Account). Verbunden wird fest mit **`irc.euer.tv`**, Port **`6697`** (SSL/TLS, Zertifikate werden geprüft), Raum **`#erde`**.
|
|
* **ZNC-Bouncer** für eigene Server (`user/network` + Passwort); selbstsignierte Zertifikate: `"acceptInvalidCerts": true` in der `config.json` setzen (unsicher).
|
|
* Räume unten lassen sich per Maus verschieben, die Oberfläche lässt sich skalieren (75-200 %).
|
|
* **Design & Anpassbarkeit:**
|
|
* Schriftarten, Schriftgrößen (11px bis 22px), Zeilenabstände, Zeitstempel frei wählbar.
|
|
* Animierte GIFs (`CATJAM`, `pepeDS` uvm.) & Smileys aus dem Webchat.
|
|
* **Kein störendes Konsolenfenster:**
|
|
* Nativ als reine Windows-GUI-Anwendung kompiliert (`#![windows_subsystem = "windows"]`).
|
|
* **Saubere Server-Trennung:**
|
|
* Sendet beim Schließen regulär `QUIT :Client beendet`.
|
|
* **Integrierter Updater:**
|
|
* Sucht beim Start (abschaltbar unter Optionen → Updates) im neuesten Gitea-Release nach einer neueren Version, zeigt die Release-Notizen und installiert auf Wunsch still und startet EuerChat neu.
|
|
* Es werden nur HTTPS-Adressen des Gitea-Hosts akzeptiert, und der Installer läuft nur, wenn seine SHA-256-Prüfsumme zur Datei `<Installer>.sha256` im Release passt.
|
|
|
|
---
|
|
|
|
## Schnellstart
|
|
|
|
1. **Installieren:** `EuerChat_<Version>_x64-setup.exe` ausführen und die Installationsart wählen. Beim ersten Start einfach den Namen eingeben und verbinden.
|
|
* **Standard** (empfohlen): für alle Benutzer, standardmäßig nach `C:\Program Files\EuerChat`, mit Startmenü- und Desktop-Verknüpfung. Erfordert Administratorrechte (UAC-Abfrage), Deinstallation über die Windows-Einstellungen. Die Konfiguration liegt in `%APPDATA%\EuerChat\config.json`.
|
|
* **Portable:** nur Kopieren in einen frei wählbaren Ordner (Vorschlag: neben dem Installer), z. B. auf einen USB-Stick. Keine Administratorrechte, keine Registry-Einträge. Die Konfiguration liegt im Unterordner `data` (Marker-Datei `portable.flag`). Entfernen: Ordner löschen.
|
|
* Die Konfiguration kann Passwörter enthalten. Sie ist nicht Teil des Installers und gehört nicht ins Repository (steht in `.gitignore`).
|
|
* Der Installer lässt sich auch still nutzen: `/S /MODE=standard|portable /D=<Ordner>` (`/D=` immer zuletzt). Der Updater verwendet genau diese Parameter und aktualisiert Standard- und Portable-Installationen an Ort und Stelle (Standard mit UAC-Abfrage, Portable ohne). Einstellungen bleiben erhalten.
|
|
* Alternativ ohne Installer: `EuerChat.exe` direkt starten. Eine alte `config.json` neben der EXE wird noch gelesen und beim nächsten Speichern nach `%APPDATA%` übernommen.
|
|
2. **Installer bauen:**
|
|
```powershell
|
|
.\build.bat
|
|
```
|
|
Benötigt Rust, Node.js und NSIS 3 (`winget install NSIS.NSIS`; der von Tauri geladene NSIS-Cache wird ebenfalls gefunden). Das Skript baut die App ohne Tauri-Bundler und dann den eigenen Installer `installer\EuerChat.nsi`. Ergebnis: `dist\EuerChat_<Version>_x64-setup.exe`, dazu die lose `EuerChat.exe` im Hauptordner.
|
|
3. **Tests:** `cd src-tauri; cargo test`
|
|
4. **Release veröffentlichen:**
|
|
1. Version in `src-tauri\tauri.conf.json` und `src-tauri\Cargo.toml` erhöhen, optional Release-Notizen in `RELEASE_NOTES.md` schreiben.
|
|
2. `.\build.bat` ausführen.
|
|
3. `.\publish-release.ps1` ausführen. Es legt den Release `v<Version>` auf Gitea an und lädt `EuerChat_<Version>_x64-setup.exe` samt `.sha256` hoch.
|
|
Der Token kommt aus der Umgebungsvariable `GITEA_TOKEN` oder aus `%LOCALAPPDATA%\EuerChat\developer\gitea-token.dpapi`.
|
|
* Gitea-Adresse und Repository stehen oben in `src-tauri\src\updater.rs` (`GITEA_BASE_URL`, `GITEA_REPO`) und in `publish-release.ps1`. Das Repository muss öffentlich sein, damit der Updater ohne Token auskommt.
|