Desktop-Anwendung zum gleichzeitigen Hochladen auf mehrere File-Hoster
Before: a non-transient / non-file-rejected / non-account-specific error (e.g. "VOE Upload: <any generic message>") would burn the full retries-per-account budget on the primary before the rotation logic even kicked in. On retries=5 that's "Retry 2/5 Primär", "Retry 3/5 Primär", … all on the same broken account before the fallback gets a shot. Now: - main.js pre-resolves the next fallback for every hoster at batch- start (stored in _accountOverrides via the existing session cache + primeOverrides path). Pre-job-swap still ignores it until the primary is actually marked failed, so jobs still begin on primary. - upload-manager.js: in the retry loop's generic error branch, _hasPendingOverride() checks whether a usable fallback is ready. If yes and the error is NOT transient (transient = network glitch = retry same acc), break out to rotation. Marks primary failed, rotates to acc2, retries there. - Result: for a 2-account hoster, worst case is 1 attempt on primary + retries-per-account on fallback, instead of N × 2. Transient network errors (ENOTFOUND / ECONNRESET / socket hang up) keep the old "retry same account" semantics because the network is the issue, not the account. - Single-account hosters: unchanged. No pending override = classic retry-on-same-account until exhausted. 3 new tests pin: generic + override → rotate on attempt 1; transient + override → stay on same acc; no override → classic retry. 87/87 green. |
||
|---|---|---|
| assets | ||
| lib | ||
| renderer | ||
| scripts | ||
| tasks | ||
| tests | ||
| .gitignore | ||
| app.py | ||
| electron-config.json | ||
| 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