real-debrid-downloader/.claude/memory-bank.md
Sucukdeluxe e35fc1f31a
Some checks are pending
Build and Release / build (push) Waiting to run
v1.5.28: Visuelle Fortschrittsanzeigen (JDownloader 2 Style)
2026-03-02 22:17:59 +01:00

126 lines
4.3 KiB
Markdown

# Memory Bank - Multi Debrid Downloader
## Projekt-Überblick
**Name:** Multi Debrid Downloader (MDD)
**Typ:** Electron Desktop App für Windows 10/11
**Repository:**
- Codeberg: https://codeberg.org/Sucukdeluxe/real-debrid-downloader.git
- GitHub: https://github.com/Sucukdeluxe/real-debrid-downloader.git
## Technologie-Stack
- **Runtime:** Electron 31.x
- **Frontend:** React 18.x + TypeScript 5.x
- **Build:** Vite (Renderer) + tsup (Main/Preload)
- **Tests:** Vitest (262+ Tests)
- **Installer:** NSIS via electron-builder
## Unterstützte Debrid-Provider
| Provider | Auth | Priorität |
|----------|------|-----------|
| Real-Debrid | API Token | Primär |
| Mega-Debrid | Login + Passwort | Fallback 1 |
| BestDebrid | API Token | Fallback 2 |
| AllDebrid | API Key | Fallback 3 |
## Kernfeatures
- **Queue-Management:** Package-basierte Organisation mit Drag & Drop
- **Auto-Extract:** RAR, ZIP, 7z mit Passwortliste
- **Auto-Rename:** Scene-Release Muster (4sf/4sj) → saubere Namen
- **Integritätsprüfung:** CRC32, MD5, SHA1 via SFV-Dateien
- **Provider-Fallback:** Automatischer Wechsel bei Fehlern/Fair-Use
- **Session-Persistenz:** Queue überlebt App-Neustart
- **Clipboard-Watcher:** Automatische Link-Erkennung
- **System-Tray:** Minimize to Tray
- **Speed-Limit:** Global oder per Download + Bandwidth-Schedules
- **MKV-Sammelordner:** Automatisches Verschieben nach Paketabschluss
- **Update-System:** Automatische Updates via Codeberg Releases
## Projektstruktur
```
src/
├── main/ # Electron Main Process
│ ├── main.ts # Entry Point, IPC Handler, Window Management
│ ├── app-controller.ts # Koordiniert DownloadManager + Settings
│ ├── download-manager.ts # Core: Queue, Downloads, Retry-Logic
│ ├── debrid.ts # Debrid-Service Abstraktion
│ ├── realdebrid.ts # Real-Debrid API Client
│ ├── extractor.ts # Archiv-Entpackung
│ ├── integrity.ts # CRC32/Hash-Validierung
│ ├── storage.ts # Session/Settings Persistenz
│ ├── update.ts # Update-Check & Installation
│ └── ...
├── renderer/ # React UI
│ ├── App.tsx # Hauptkomponente mit allen Tabs
│ └── styles.css # Styling
├── preload/ # Preload Script (IPC Bridge)
│ └── preload.ts
└── shared/ # Geteilte Types
├── types.ts # Alle TypeScript Interfaces
├── ipc.ts # IPC Channel Konstanten
└── preload-api.ts # window.rd API Definition
```
## Wichtige Types (src/shared/types.ts)
- `DownloadItem`: Einzelner Download mit Status, Progress, Speed
- `PackageEntry`: Gruppe von Downloads mit OutputDir, ExtractDir
- `SessionState`: Gesamter Queue-Zustand (persistiert)
- `AppSettings`: Alle Einstellungen
- `UiSnapshot`: Kompletter UI-State für Renderer
## IPC Channels (src/shared/ipc.ts)
Hauptchannels für Renderer ↔ Main Kommunikation:
- `GET_SNAPSHOT`, `STATE_UPDATE`: State-Sync
- `ADD_LINKS`, `ADD_CONTAINERS`: Queue befüllen
- `START`, `STOP`, `TOGGLE_PAUSE`: Download-Kontrolle
- `UPDATE_SETTINGS`: Einstellungen ändern
## Aktuelle Version
**Version:** 1.5.27
**Letztes Release:** 1.4.68 (2026-03-01)
### Letzte Änderungen (CHANGELOG)
- Session-Backup für Queue-Zustand
- Start-Konflikt-Behandlung verbessert
- Mega-Web Unrestrict abort-fähig
- DLC-Import gehärtet
- Auto-Renamer erweitert
## Offene Pläne
1. **Native Menüleiste** (`.claude/plans/agile-watching-lampson.md`)
- JDownloader 2 Style Menü
- Electron Menu API nutzen
- Bestehende React Menu-Bar ersetzen
## Coding-Conventions
- TypeScript strict mode
- Async/Await über Promises
- Deutsche UI-Texte
- Ausführliche Error-Logs via `logger`
- Retry-Logic mit exponential backoff
- AbortController für abbrechbare Operationen
## Build & Release
```bash
npm run build # TypeScript + Vite Build
npm run dist # electron-builder (NSIS + Portable)
npm test # Vitest Tests
npm run self-check # Vollständiger Check (Typecheck + Tests)
```
## Wichtige Dateien
- `CHANGELOG.md` - Detaillierte Versionshistorie
- `.claude/plans/` - Feature-Pläne
- `tests/` - Umfangreiche Test-Suite
- `installer/RealDebridDownloader.iss` - Inno Setup Script