Desktop-Anwendung zum gleichzeitigen Hochladen auf mehrere File-Hoster
The dynamic-key sort throttle (3.3.0) used an inline ad-hoc cache object with a Date.now() comparison. Pull it out into a clean generic-purpose makeThrottledCache helper that takes the TTL and an optional clock function so tests can drive time without sleeping. Same dual-environment loader (CommonJS for tests, window global for the renderer via index.html script tag) as queue-prune. API: get(sig, input) / set(sig, input, value) / clear() / peek(). sig + input identity must both match for a hit. Inputs are compared by reference (===), exactly what sortQueueJobs needs to invalidate on a fresh queueJobs array (e.g. backup import). Coverage: - empty cache → undefined - within TTL → cached value - past TTL → miss (boundary at refreshMs) - different signature → miss - different input identity → miss (even with same content) - overwrite refreshes timestamp - clear empties everything - peek reports age + signature for diagnostics - invalid TTL throws (negative, NaN, non-number) - TTL=0 means every call misses (immediate expiry) - default clock works (Date.now) - large arrays tracked by identity, not value Renderer rewires _dynamicSortCache to the new helper with a fallback no-op shim if window.ThrottledCache failed to load. 119/119 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