Desktop-Anwendung zum gleichzeitigen Hochladen auf mehrere File-Hoster
Three changes, investigated and adversarially reviewed via multi-agent workflow. 1. Queue maximize bug: the virtual-scrolled upload queue derived its visible-row window from #queueContainer.clientHeight but only recomputed it on 'scroll'. Maximizing the window enlarges the container without a scroll event, so rows below the old viewport stayed blank until you scrolled. Fix: a ResizeObserver on #queueContainer reusing the existing rAF-coalesced _onQueueScroll. Strictly stronger than a window 'resize' listener — it also covers the hidden->visible view-switch case (container 0 -> real height). No feedback loop (container box is flex-sized, not content-sized); early-returns for <200-row queues. 2. Einstellungen tab restructured from 4 dense stacked collapsible panels into horizontal sub-tabs: Allgemein / Automatik / Logs & Diagnose / Fernsteuerung / Backup. All sub-pages render into the DOM at once (only the active one is shown), so every element id stays present and saveSettings keeps working. The cluttered "Allgemein" block is split across Allgemein + Automatik + Logs. Per-hoster settings already moved to Accounts in v3.3.69. 3. saveSettings hardened to be null-safe (elTxt/elChk/elInt helpers): when a settings element is absent from the DOM it now keeps the current config value instead of collapsing to a default. Behavior is identical when elements are present; this is insurance against a future dropped id silently overwriting a real setting (e.g. webhook URL, folder-monitor hoster pre-selection). Verified: 43 sub-tab ids unique, all 26 saveSettings ids present, lint clean, boot clean, 284 tests green, 0 confirmed defects from a 3-lens adversarial review. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| assets | ||
| lib | ||
| renderer | ||
| scripts | ||
| tasks | ||
| tests | ||
| .gitignore | ||
| app.py | ||
| eslint.config.mjs | ||
| hosters.py | ||
| main.js | ||
| package-lock.json | ||
| package.json | ||
| preload-drop-target.js | ||
| preload.js | ||
| README.md | ||
| requirements.txt | ||
Multi-Hoster-Upload
Desktop-Anwendung zum gleichzeitigen Hochladen von Dateien auf mehrere File-Hosting-Dienste.
Unterstuetzte Hoster
- doodstream.com - API-Key basiert
- voe.sx - API-Key basiert
- vidmoly.me - Login basiert (Username/Passwort)
- byse.sx - API-Key basiert
Installation
Setup (empfohlen)
Lade die Multi-Hoster-Upload Setup X.X.X.exe aus den Releases herunter und installiere.
Portable
Lade die Multi-Hoster-Upload X.X.X.exe herunter. Keine Installation noetig.
Entwicklung
npm install
npm start
Build
npm run release:win
Erzeugt Setup + Portable EXE im release/ Ordner.
Release
GITEA_TOKEN=dein_token npm run release:gitea -- 1.0.1 "Release notes"
Features
- Drag & Drop oder Dateiauswahl
- Gleichzeitiger Upload zu mehreren Hostern
- Echtzeit-Fortschrittsanzeige
- Ergebnis-Tabelle mit Sortierung und Kopier-Funktion
- Upload-Verlauf (letzte 100 Eintraege)
- Health-Check fuer Hoster-Verbindungen
- Auto-Updater (prueft git.24-music.de)
- Log-Datei kompatibel mit File & Image Uploader Format