Desktop downloader
Go to file
Sucukdeluxe d4dd266f6b Release v1.4.17 with security fixes, stability hardening and retry improvements
- Fix ZIP path traversal vulnerability (reject entries escaping target dir)
- Add single instance lock (prevent data corruption from multiple instances)
- Add unhandled exception/rejection handlers (prevent silent crashes)
- Fix mainWindow reference cleanup on close
- Add second-instance handler to focus existing window
- Fix claimTargetPath infinite loop (add 10k iteration bound)
- Add duplicate startItem guard (prevent concurrent downloads of same item)
- Clone session in getSnapshot to prevent live-reference mutation bugs
- Clear stateEmitTimer on clearAll to prevent dangling timer emissions
- Add extraction timeout safety (4h deadline with logging)
- Add dedicated unrestrict retry system with longer backoff for Mega-Debrid errors
- Add log rotation (10MB max, keeps one .old backup)
- Fix writeExtractResumeState missing mkdir (prevents crash on deleted dirs)
- Fix saveSessionAsync EXDEV cross-device rename with copy fallback

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 05:04:21 +01:00
.github/workflows Migrate app to Node Electron with modern React UI 2026-02-27 03:25:56 +01:00
assets Update app icon and bump version to 1.0.7 2026-02-26 23:45:56 +01:00
installer Harden updater and add icon-based installer release pipeline 2026-02-26 23:36:30 +01:00
scripts Remove legacy Python artifacts from repository 2026-02-27 16:32:01 +01:00
src Release v1.4.17 with security fixes, stability hardening and retry improvements 2026-02-28 05:04:21 +01:00
tests Release v1.4.14 with extraction performance optimization and bug fixes 2026-02-27 21:28:03 +01:00
.gitignore Migrate app to Node Electron with modern React UI 2026-02-27 03:25:56 +01:00
package-lock.json Release v1.4.16 with crash prevention and hang protection 2026-02-27 21:43:40 +01:00
package.json Release v1.4.17 with security fixes, stability hardening and retry improvements 2026-02-28 05:04:21 +01:00
README.md Remove legacy Python artifacts from repository 2026-02-27 16:32:01 +01:00
tsconfig.json Migrate app to Node Electron with modern React UI 2026-02-27 03:25:56 +01:00
vite.config.ts Fix packaged renderer asset paths and bump to 1.1.13 2026-02-27 04:09:08 +01:00
vitest.config.ts Migrate app to Node Electron with modern React UI 2026-02-27 03:25:56 +01:00

Real-Debrid Download Manager (Node/Electron)

Desktop-App auf Node.js + Electron + React + TypeScript mit JDownloader-Style Workflow, optimiert fuer Real-Debrid.

Highlights

  • Modernes, dunkles UI mit Header-Steuerung (Start, Pause, Stop, Speed, ETA)
  • Tabs: Linksammler, Downloads, Settings
  • Paketbasierte Queue mit Datei-Status, Progress, Speed, Retries
  • Paket-Abbruch waehrend laufender Downloads inklusive sicherem Archiv-Cleanup
  • .dlc Import (Dateidialog und Drag-and-Drop)
  • Session-Persistenz (robustes JSON-State-Management)
  • Auto-Resume beim Start (optional)
  • Reconnect-Basislogik (429/503, Wartefenster, resumable priorisiert)
  • Integritaetscheck (SFV/CRC32/MD5/SHA1) nach Download
  • Auto-Retry bei Integritaetsfehlern
  • Cleanup-Trigger fuer fertige Tasks:
    • Nie
    • Sofort
    • Beim App-Start
    • Sobald Paket fertig ist

Voraussetzungen

  • Node.js 20+ (empfohlen 22+)
  • Windows 10/11 (fuer Release-Build)
  • Optional: 7-Zip/UnRAR fuer RAR/7Z Entpacken

Installation

npm install

Entwicklung

npm run dev

Build

npm run build

Danach liegen die Artefakte in:

  • build/main
  • build/renderer

Start (Production lokal)

npm run start

Tests

npm test
npm run self-check
  • npm test: Unit-Tests fuer Parser/Cleanup/Integrity
  • npm run self-check: End-to-End-Checks mit lokalem Mock-Server (Queue, Pause/Resume, Reconnect, Paket-Cancel)

Projektstruktur

  • src/main: Electron Main Process + Download/Queue Logik
  • src/preload: sichere IPC Bridge
  • src/renderer: React UI
  • src/shared: gemeinsame Typen und IPC-Channel
  • tests: Unit- und Self-Check Tests

Hinweise

  • Runtime-Dateien liegen im Electron userData Verzeichnis:

    • rd_downloader_config.json
    • rd_session_state.json
    • rd_downloader.log
  • Das Repository enthält jetzt nur noch die aktive Node/Electron-Codebasis.