Kompletter Rewrite

This commit is contained in:
Akamaru
2025-12-21 14:35:08 +01:00
parent 79b8aa2a34
commit 5fa6bfeb62
27 changed files with 3946 additions and 1197 deletions

184
README.md
View File

@@ -1,108 +1,132 @@
# Serien-Checker
Ein Programm zum Überprüfen von Ausstrahlungsterminen deutscher TV-Serien. Die Daten werden von fernsehserien.de abgerufen.
Ein Desktop-Programm zum Tracken von TV-Serien-Episoden von fernsehserien.de.
## Features
- Verfolgen Sie mehrere Serien gleichzeitig
- Anzeige deutscher Ausstrahlungstermine (TV und Streaming)
- Staffel-spezifische Filterung
- Datumspräferenz (TV, Streaming oder früheste Ausstrahlung)
- Übersichtliche Episodenliste mit Datum, Staffel, Folge und Titel
## Screenshots
### Hauptfenster
![Hauptfenster1](https://git.ponywave.de/Akamaru/Serien-Checker/raw/branch/master/screenshots/1.png)
![Hauptfenster2](https://git.ponywave.de/Akamaru/Serien-Checker/raw/branch/master/screenshots/2.png)
### Serien verwalten
![Neue Serie](https://git.ponywave.de/Akamaru/Serien-Checker/raw/branch/master/screenshots/3.png)
### Neue Serie hinzufügen
![Debug Log](https://git.ponywave.de/Akamaru/Serien-Checker/raw/branch/master/screenshots/4.png)
- **Episoden-Tracking**: Verfolgen Sie Staffeln und Episoden Ihrer Lieblingsserien
- **Ausstrahlungsdaten**: Anzeige verschiedener Datums-Typen (DE TV, DE Streaming, Sync, Original)
- **Zukünftige Episoden**: Automatische Markierung kommender Folgen
- **Delta-Updates**: Intelligente Aktualisierung nur neuer/geänderter Daten
- **Portable Modus**: Wahlweise portable Installation ohne Registry-Einträge
- **Offline-Fähig**: Lokale SQLite-Datenbank
- **Automatisches Scraping**: Vollständig funktionsfähiger Web-Scraper für fernsehserien.de
- **Threading**: Asynchrone Updates ohne UI-Blockierung
## Installation
### Option 1: Ausführbare Datei (Windows)
### Methode 1: uv (empfohlen)
1. Laden Sie die neueste Version von der [Releases](https://git.ponywave.de/Akamaru/Serien-Checker/releases) Seite herunter
2. Entpacken Sie die ZIP-Datei
3. Starten Sie `Serien-Checker.exe`
```bash
# Programm starten (installiert Dependencies automatisch)
uv run main.py
```
### Option 2: Aus dem Quellcode
### Methode 2: Traditionell mit pip
1. Stellen Sie sicher, dass Python 3.8 oder höher installiert ist
2. Klonen Sie das Repository:
```bash
git clone https://git.ponywave.de/Akamaru/Serien-Checker.git
cd Serien-Checker
```
3. Installieren Sie die Abhängigkeiten:
```bash
pip install -r requirements.txt
```
4. Starten Sie das Programm:
```bash
python serien_checker.py
```
```bash
# Dependencies installieren
pip install -r requirements.txt
### Executable erstellen
# Programm starten
python main.py
```
Um Ihre eigene ausführbare Datei zu erstellen:
### Methode 3: Windows EXE erstellen
1. Führen Sie `build.bat` aus, oder
2. Manuell:
```bash
pip install -r requirements.txt
pip install pyinstaller
python build.py
```
```bash
# PyInstaller installieren
pip install pyinstaller
Die ausführbare Datei finden Sie dann im `dist` Ordner.
# Build ausführen
build.bat
# oder
pyinstaller build.spec
# EXE findet sich in: dist/Serien-Checker.exe
```
## Verwendung
### Serien hinzufügen
### Serie hinzufügen
1. Klicken Sie auf "Serien verwalten"
2. Klicken Sie auf "Neue Serie"
3. Geben Sie die URL oder den Slug von fernsehserien.de ein
- Beispiel URL: `https://www.fernsehserien.de/9-1-1-notruf-l-a`
- Beispiel Slug: `9-1-1-notruf-l-a`
4. Wählen Sie die gewünschten Einstellungen:
- Staffel-Modus (Neuste, Alle, Bestimmte)
- Datumspräferenz (Erstausstrahlung, TV, Streaming)
1. Öffnen Sie **Einstellungen → Optionen**
2. Im Tab "Serien" die fernsehserien.de URL eingeben
3. Bevorzugten Datumstyp wählen
4. "Serie hinzufügen" klicken
### Serien verwalten
### Serie aktualisieren
- Wählen Sie eine Serie aus der Liste
- Ändern Sie die Einstellungen nach Bedarf
- Klicken Sie auf "Einstellungen speichern"
- Löschen Sie unerwünschte Serien mit dem "Löschen" Button
- Rechtsklick auf Serie → "Aktualisieren"
- Oder: Menü → Serien → Aktualisieren
### Episoden anzeigen
### Staffeln/Episoden anzeigen
- Wählen Sie eine Serie aus der Liste im Hauptfenster
- Die Episoden werden automatisch geladen
- Die Liste wird alle 30 Minuten automatisch aktualisiert
- Klicken Sie auf "Aktualisieren" für sofortige Aktualisierung
- Serie in linker Spalte auswählen
- Staffel in rechter Spalte auswählen
- Episoden erscheinen in der Mitte
- Zukünftige Episoden sind grün markiert
## Konfiguration
## Projektstruktur
Die Einstellungen werden automatisch in `series_config.json` gespeichert. Diese Datei wird beim ersten Start erstellt und enthält:
- Liste der Serien
- Staffel-Einstellungen pro Serie
- Datumspräferenzen pro Serie
```
serien_checker/
├── main.py # Entry Point
├── serien_checker/
│ ├── database/ # SQLite Datenbank-Layer
│ ├── scraper/ # Web-Scraping (browser-tools)
│ ├── ui/ # PyQt5 Benutzeroberfläche
│ └── utils/ # Hilfsfunktionen
├── icon.ico # Programm-Icon
├── requirements.txt # Python-Dependencies
└── build.spec # PyInstaller-Konfiguration
```
## Fehlerbehebung
## Technische Details
### Keine Episoden werden angezeigt
- Prüfen Sie Ihre Internetverbindung
- Prüfen Sie, ob die Serie auf fernsehserien.de verfügbar ist
- Prüfen Sie die Staffel-Einstellungen
- **Python**: 3.11+
- **GUI**: PyQt5
- **Datenbank**: SQLite (nativ)
- **Scraping**: browser-tools Skill (geplant)
- **Packaging**: PyInstaller
### Keine deutschen Titel
- Einige Episoden haben noch keine deutschen Titel
- Diese werden als "Noch kein Titel" angezeigt
- Die Titel werden automatisch aktualisiert, sobald sie verfügbar sind
## Datenspeicherung
### Standard-Modus
- Windows: `%USERPROFILE%\.serien_checker\serien_checker.db`
- Linux: `~/.serien_checker/serien_checker.db`
### Portable-Modus
- Datenbank im Programmverzeichnis: `serien_checker.db`
## Unterstützte Serien-Strukturen
1. Normale Staffeln
2. Normale Staffeln + Specials
3. Normale Staffeln + Extras + Best-Of
4. Nur Extras (keine klassischen Staffeln)
5. Jahresbasierte Sortierung
6. Mehrteilige Episoden (A/B-Parts)
## Entwicklung
### Browser-Tools Integration
Der HTML-Parser nutzt das `browser-tools` Skill für robustes DOM-basiertes Scraping.
Die Integration ist vorbereitet in `serien_checker/scraper/browser_scraper.py`.
### Logging
Logs werden gespeichert:
- Standard: `~/.serien_checker/logs/`
- Portable: `./logs/`
## Lizenz
Dieses Projekt ist für private Nutzung bestimmt.
## Hinweise
- **Datenquelle**: fernsehserien.de
- Bitte respektieren Sie die Nutzungsbedingungen der Website
- Scraping sollte mit angemessenen Delays erfolgen