From 486379183b682ae5dba7c6127880cab53968d93f Mon Sep 17 00:00:00 2001 From: Sucukdeluxe Date: Tue, 3 Mar 2026 03:02:11 +0100 Subject: [PATCH] Remove .claude folder from repo and add to .gitignore Co-Authored-By: Claude Opus 4.6 --- .claude/memory-bank.md | 126 ------------------------ .claude/plans/agile-watching-lampson.md | 66 ------------- .claude/settings.json | 6 -- .claude/settings.local.json | 7 -- .claude/worktrees/nifty-vaughan | 1 - .gitignore | 2 + 6 files changed, 2 insertions(+), 206 deletions(-) delete mode 100644 .claude/memory-bank.md delete mode 100644 .claude/plans/agile-watching-lampson.md delete mode 100644 .claude/settings.json delete mode 100644 .claude/settings.local.json delete mode 160000 .claude/worktrees/nifty-vaughan diff --git a/.claude/memory-bank.md b/.claude/memory-bank.md deleted file mode 100644 index 8720488..0000000 --- a/.claude/memory-bank.md +++ /dev/null @@ -1,126 +0,0 @@ -# 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 \ No newline at end of file diff --git a/.claude/plans/agile-watching-lampson.md b/.claude/plans/agile-watching-lampson.md deleted file mode 100644 index e46a889..0000000 --- a/.claude/plans/agile-watching-lampson.md +++ /dev/null @@ -1,66 +0,0 @@ -# Native Menüleiste (JDownloader 2 Style) - -## Context -Die App hat aktuell keine native Menüleiste (nur ein Tray-Kontextmenü). Der User möchte eine Menüleiste oben links wie bei JDownloader 2 mit Datei-Menü, Shortcuts und Sicherungs-Funktion. - -## Features - -### "Datei"-Menü (oben links) -| Menüpunkt | Shortcut | Aktion | -|-----------|----------|--------| -| Text mit Links analysieren | Ctrl+L | Wechselt zum Linksammler-Tab | -| Linkcontainer laden | Ctrl+O | Öffnet DLC-Dateiauswahl (existiert bereits) | -| --- Separator --- | | | -| Sicherung → Backup erstellen | | Exportiert Queue als JSON (existiert: `exportQueue`) | -| Sicherung → Backup laden | | Importiert Queue-JSON (existiert: `importQueue`) | -| --- Separator --- | | | -| Neustart | Ctrl+Shift+R | `app.relaunch()` + `app.quit()` | -| Beenden | Ctrl+Q | `app.quit()` | - -## Implementation - -### Step 1: Neue IPC-Channels -**Datei:** `src/shared/ipc.ts` -- `NAVIGATE_TAB: "app:navigate-tab"` — Renderer wechselt Tab -- `RESTART: "app:restart"` — App neustarten -- `SAVE_BACKUP: "dialog:save-backup"` — Save-Dialog + Export -- `LOAD_BACKUP: "dialog:load-backup"` — Open-Dialog + Import - -### Step 2: Preload-API erweitern -**Datei:** `src/shared/preload-api.ts` + `src/preload/preload.ts` -- `onNavigateTab(callback)` — Event-Listener für Tab-Wechsel -- `saveBackup()` — Backup über nativen Save-Dialog speichern -- `loadBackup()` — Backup über nativen Open-Dialog laden - -### Step 3: Menüleiste erstellen -**Datei:** `src/main/main.ts` - -Neue Funktion `createApplicationMenu()` nach `createTray()`: -- Nutzt `Menu.buildFromTemplate()` + `Menu.setApplicationMenu()` -- "Datei"-Menü mit allen Punkten aus der Tabelle -- Accelerators für Shortcuts (Electron handelt die automatisch) -- Menü-Clicks senden IPC-Events an den Renderer oder rufen direkt Main-Process-Funktionen auf - -**Backup erstellen:** `dialog.showSaveDialog()` → `controller.exportQueue()` → `fs.writeFile()` -**Backup laden:** `dialog.showOpenDialog()` → `fs.readFile()` → `controller.importQueue()` -**Neustart:** `app.relaunch()` → `app.quit()` -**Beenden:** `app.quit()` -**Linksammler/DLC:** IPC-Event an Renderer senden - -### Step 4: Renderer reagiert auf Menü-Events -**Datei:** `src/renderer/App.tsx` -- `onNavigateTab` Listener registrieren im `useEffect` -- Bei `"collector"` → `setTab("collector")` -- DLC-Import: `pickContainers` + `addContainers` (bestehendes Pattern) - -## Dateien -- `src/shared/ipc.ts` — Neue Channels -- `src/shared/preload-api.ts` — Neue API-Methoden -- `src/preload/preload.ts` — IPC-Bridge -- `src/main/main.ts` — Menüleiste + IPC-Handler + Backup-Logik -- `src/renderer/App.tsx` — Tab-Navigation Listener - -## Verification -1. `npm run build` -2. `npx vitest run` (schnelle Tests) -3. Manuell: App starten, Datei-Menü prüfen, Shortcuts testen diff --git a/.claude/settings.json b/.claude/settings.json deleted file mode 100644 index b82dbf1..0000000 --- a/.claude/settings.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "enabledPlugins": { - "frontend-design@claude-plugins-official": true, - "code-review@claude-plugins-official": true - } -} diff --git a/.claude/settings.local.json b/.claude/settings.local.json deleted file mode 100644 index e56d14e..0000000 --- a/.claude/settings.local.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "permissions": { - "allow": [ - "WebFetch(domain:github.com)" - ] - } -} diff --git a/.claude/worktrees/nifty-vaughan b/.claude/worktrees/nifty-vaughan deleted file mode 160000 index f1e132b..0000000 --- a/.claude/worktrees/nifty-vaughan +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f1e132b2ed4717667fd7318ecab22e5ef52da0cc diff --git a/.gitignore b/.gitignore index b4d3336..94948a6 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,8 @@ rd_download_manifest.json _update_staging/ apply_update.cmd +.claude/ + node_modules/ .vite/ coverage/