Commit Graph
464 Commits
Author SHA1 Message Date
Sucukdeluxe 359fb93be3 Release v1.6.80 v1.6.80 2026-03-06 12:04:56 +01:00
Sucukdeluxe 67854feeb4 Release v1.6.79 v1.6.79 2026-03-06 11:45:02 +01:00
SucukdeluxeandClaude Opus 4.6 153318274d ♻️ refactor(bestdebrid): switch from browser login to cookie file import
Replace BrowserWindow-based login flow with Netscape cookie file import
for BestDebrid authentication. Cloudflare Turnstile captcha cannot be
solved in Electron's embedded browser, so users export cookies from
their real browser and import them here.

- Rewrite bestdebrid-web.ts: remove BrowserWindow/CDP code, add
  parseNetscapeCookieFile() and importCookiesFromFile()
- Add file picker dialog for .txt cookie files in main IPC handler
- Update IPC channel from OPEN_BESTDEBRID_LOGIN to IMPORT_BESTDEBRID_COOKIES
- Update preload bridge and renderer UI with cookie import button
- Fix pLabel scope in downloadToFile (pass as parameter from processItem)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 11:44:23 +01:00
Sucukdeluxe d776ad589d Release v1.6.78 v1.6.78 2026-03-06 11:36:08 +01:00
SucukdeluxeandClaude Opus 4.6 d6ba5aeae6 🐛 fix(bestdebrid): keep CDP debugger attached until window close
Detaching the debugger before loadURL removed the registered
anti-fingerprint scripts, causing blank pages. Now keep the
debugger attached through page load and detach on window close.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 11:35:45 +01:00
Sucukdeluxe c2bb276c3d Release v1.6.77 v1.6.77 2026-03-06 11:32:51 +01:00
SucukdeluxeandClaude Opus 4.6 df02a04cfd 🐛 fix(bestdebrid): inject CDP anti-fingerprint patches for Cloudflare Turnstile
Use Chrome DevTools Protocol to inject scripts before page load that:
- Set navigator.webdriver to false
- Add fake navigator.plugins
- Set navigator.languages to realistic values
- Add window.chrome runtime stub

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 11:32:28 +01:00
Sucukdeluxe 77240ae18d Release v1.6.76 v1.6.76 2026-03-06 11:29:44 +01:00
SucukdeluxeandClaude Opus 4.6 90c73c4091 🐛 fix(bestdebrid): set user agent on session and webContents level
Cloudflare Turnstile blocks Electron's default user agent. Set a
Chrome user agent on both the session and webContents level so the
login captcha passes correctly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 11:29:15 +01:00
Sucukdeluxe 40c539189a Release v1.6.75 v1.6.75 2026-03-06 11:27:18 +01:00
SucukdeluxeandClaude Opus 4.6 438a9f209e feat(bestdebrid): add BestDebrid web-login provider
- New BestDebrid web-login option (BrowserWindow + session.fetch)
- Uses bestdebrid.com/api/v1/generateLink with browser session cookies
- Login via BestDebrid website in embedded browser window
- Toggle "BestDebrid per Web-Login statt API-Token verwenden"
- Provider label shows "BestDebrid (Web)" or "BestDebrid (API)"
- Session persistence respects "Token merken" setting

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 11:26:48 +01:00
Sucukdeluxe 54e502b9af Release v1.6.74 v1.6.74 2026-03-06 11:09:44 +01:00
SucukdeluxeandClaude Opus 4.6 5873ffa60d 🐛 fix(1fichier): disable CDN downloads to preserve CDN credits
Pass cdn: 0 to 1Fichier get_token API to force direct server
downloads instead of CDN, avoiding unnecessary CDN credit usage.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 11:09:13 +01:00
Sucukdeluxe 3965d3e494 Release v1.6.73 v1.6.73 2026-03-06 11:02:07 +01:00
SucukdeluxeandClaude Opus 4.6 3950207a0f 🐛 fix: show provider source label (API/Web) in download status text
The running download status (e.g. "Download läuft", "Warte auf
Festplatte") now shows the full provider label including the source
mode, e.g. "Mega-Debrid (API)" instead of just "Mega-Debrid".

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 11:01:35 +01:00
Sucukdeluxe d9b02065a2 Release v1.6.72 v1.6.72 2026-03-06 10:58:37 +01:00
SucukdeluxeandClaude Opus 4.6 aa4f69795f feat: show (API)/(Web) source labels for all providers
Real-Debrid, AllDebrid, and Mega-Debrid now show their active
mode in logs and UI (e.g. "Real-Debrid (API)" or "Real-Debrid (Web)").

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 10:58:09 +01:00
SucukdeluxeandClaude Opus 4.6 eb5d960e81 🐛 fix(megadebrid): deduplicate parallel connectUser API calls
Multiple parallel downloads calling connectUser simultaneously caused
token invalidation races. Only one connectUser request now runs at a
time; all parallel callers share the same result.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 10:57:10 +01:00
Sucukdeluxe 6d5fb27c99 Release v1.6.71 v1.6.71 2026-03-06 10:52:11 +01:00
SucukdeluxeandClaude Opus 4.6 faece1cf26 feat(megadebrid): add API mode with toggle and provider labels
- Add Mega-Debrid API support (connectUser + getLink endpoints)
- API mode preferred by default, with automatic web fallback on failure
- User toggle "Mega-Debrid bevorzugt über API" in settings UI
- Provider labels now show source: "Mega-Debrid (API)" or "Mega-Debrid (Web)"
- sourceLabel propagated through all provider result paths
- API session token cached for 20 minutes with auto-invalidation
- Remove megaWebUnrestrict requirement for Mega-Debrid provider config

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 10:51:31 +01:00
Sucukdeluxe 6341650916 Release v1.6.70 v1.6.70 2026-03-06 05:45:00 +01:00
SucukdeluxeandClaude Opus 4.6 2b322968d9 Add Real-Debrid web-login as alternative to manual API token
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 05:42:34 +01:00
Sucukdeluxe e4a60a033b Release v1.6.69 v1.6.69 2026-03-06 04:17:22 +01:00
Sucukdeluxe 18e4b6cd58 Release v1.6.66 v1.6.66 2026-03-05 17:32:42 +01:00
SucukdeluxeandClaude Opus 4.6 c380abaee2 Fix deferred post-extraction cleanup skipped after hybrid extraction
When hybrid extraction handled all archives, extractedCount stayed 0
causing all cleanup steps (archive deletion, resume state, link/sample
removal, empty dir pruning, auto-rename, nested extraction) to be
bypassed. Extended conditions to also trigger on alreadyMarkedExtracted.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 17:32:11 +01:00
Sucukdeluxe 44f202d116 Release v1.6.65 v1.6.65 2026-03-05 16:59:48 +01:00
SucukdeluxeandClaude Opus 4.6 008f16a05d Add 1Fichier as direct file hoster provider with API key auth
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 16:59:15 +01:00
Sucukdeluxe 927013d9a6 Release v1.6.64 v1.6.64 2026-03-05 16:39:59 +01:00
SucukdeluxeandClaude Opus 4.6 9f62c7c29c Fix hybrid extraction label flicker between Ausstehend and Warten auf Parts
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 16:39:31 +01:00
Sucukdeluxe 6897776460 Release v1.6.63 v1.6.63 2026-03-05 16:35:38 +01:00
SucukdeluxeandClaude Opus 4.6 3089a45b13 Fix footer hoster count to show number of unique hosters in download list
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 16:35:05 +01:00
Sucukdeluxe e37545c9c9 Release v1.6.62 v1.6.62 2026-03-05 16:32:14 +01:00
SucukdeluxeandClaude Opus 4.6 17e7862307 Fix footer showing configured accounts instead of active download hosters
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 16:31:44 +01:00
Sucukdeluxe d1eadff425 Release v1.6.61 v1.6.61 2026-03-05 16:28:12 +01:00
Sucukdeluxe 650988c7ac Cleanup: remove leftover empty package folders after extract 2026-03-05 16:27:29 +01:00
Sucukdeluxe 49e62c1f83 Release v1.6.60 v1.6.60 2026-03-05 14:52:38 +01:00
Sucukdeluxe 4c67455c67 Release script: use cmd wrapper for npm on Windows 2026-03-05 14:52:02 +01:00
Sucukdeluxe 5a5e3d2960 Extractor: cache package passwords and document v1.6.60 2026-03-05 14:49:26 +01:00
Sucukdeluxe 11da8b6e9a Release v1.6.59 v1.6.59 2026-03-05 14:31:35 +01:00
Sucukdeluxe 265e6a72be Release v1.6.58 v1.6.58 2026-03-05 14:22:19 +01:00
Sucukdeluxe 7816dc9488 Fix extraction progress oscillation 2026-03-05 14:20:01 +01:00
Sucukdeluxe 678d642683 Add changelog notes for v1.6.57 2026-03-05 14:17:22 +01:00
Sucukdeluxe 0f4174d153 Release v1.6.57 v1.6.57 2026-03-05 14:12:52 +01:00
Sucukdeluxe babcd8edb7 Fix extraction completion and password prioritization 2026-03-05 14:11:30 +01:00
SucukdeluxeandClaude Opus 4.6 6e00bbab53 Fix JVM daemon restart loop causing 25-30s gaps between extractions
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.6.56
2026-03-05 13:50:32 +01:00
Sucukdeluxe 72642351d0 Release v1.6.55 v1.6.55 2026-03-05 06:25:20 +01:00
SucukdeluxeandClaude Opus 4.6 51a01ea03f Use bulk IInArchive.extract() for ~8x faster extraction, fix archive item resolution
- Replace extractSlow() per-item extraction with IInArchive.extract() bulk API
  in 7-Zip-JBinding. Solid RAR archives no longer re-decode from the beginning
  for each item, bringing extraction speed close to native WinRAR/7z.exe (~375 MB/s
  instead of ~43 MB/s).

- Add BulkExtractCallback implementing both IArchiveExtractCallback and
  ICryptoGetTextPassword for proper password handling during bulk extraction.

- Fix resolveArchiveItemsFromList with multi-level fallback matching:
  1. Pattern match (multipart RAR, split ZIP/7z, generic splits)
  2. Exact filename match (case-insensitive)
  3. Stem-based fuzzy match (handles debrid service filename modifications)
  4. Single-item archive fallback

- Simplify caching from Set+Array workaround back to simple Map<string, T>
  (the original "caching failure" was caused by resolveArchiveItemsFromList
  returning empty arrays, not by Map/Set/Object data structure bugs).

- Add comprehensive tests for archive item resolution (14 test cases)
  and JVM extraction progress callbacks (2 test cases).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 06:24:12 +01:00
Sucukdeluxe d9a78ea837 Release v1.6.54 v1.6.54 2026-03-05 05:59:50 +01:00
SucukdeluxeandClaude Opus 4.6 5b221d5bd5 Add persistent JVM daemon for extraction, fix caching with Set+Array
- JVM extractor now supports --daemon mode: starts once, processes
  multiple archives via stdin JSON protocol, eliminating ~5s JVM boot
  per archive
- TypeScript side: daemon manager starts JVM once, sends requests via
  stdin, falls back to spawning new process if daemon is busy
- Fix extraction progress caching: replaced Object.create(null) + in
  operator with Set<string> + linear Array scan — both Map.has() and
  the in operator mysteriously failed to find keys that were just set
- Daemon auto-shutdown on app quit via shutdownDaemon() in before-quit

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 05:59:13 +01:00
Sucukdeluxe c36549ca69 Release v1.6.53 v1.6.53 2026-03-05 05:48:41 +01:00