4.3 KiB
4.3 KiB
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, SpeedPackageEntry: Gruppe von Downloads mit OutputDir, ExtractDirSessionState: Gesamter Queue-Zustand (persistiert)AppSettings: Alle EinstellungenUiSnapshot: Kompletter UI-State für Renderer
IPC Channels (src/shared/ipc.ts)
Hauptchannels für Renderer ↔ Main Kommunikation:
GET_SNAPSHOT,STATE_UPDATE: State-SyncADD_LINKS,ADD_CONTAINERS: Queue befüllenSTART,STOP,TOGGLE_PAUSE: Download-KontrolleUPDATE_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
- 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
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änetests/- Umfangreiche Test-Suiteinstaller/RealDebridDownloader.iss- Inno Setup Script