Desktop-Anwendung zum gleichzeitigen Hochladen auf mehrere File-Hoster
Closes the last measurement gap. The main process was already fully instrumented (every ipcMain handler timed at >=50ms, a 100ms main-thread long-task monitor with channel attribution, config load/serialize timing). Account switches were already covered too: switchAccount is a trivial synchronous Map-set and the rotation work is async, so a switch cannot block the main thread, and any block that did occur would surface in the long-task monitor. The real gap was the renderer side: the renderer-perf line was gated on active uploads (idle clicks were never logged) and only reported an aggregate longtask count — no per-interaction latency and no element attribution. So a switch/sort/tab that janked in the renderer (not main) was invisible. renderer/app.js (additive, self-silencing, wrapped in try/catch): - An Event Timing observer (PerformanceObserver type:'event', durationThreshold:50, buffered) logs `renderer-interaction <type> dur=Xms proc=Yms target=<el>` for every user interaction whose latency exceeds 50ms — always on, idle or under load — and names the element (id / first class / data-action / aria-label / title). This is the direct click->reaction latency the user feels. - The longtask observer now also logs `renderer-longtask dur=Xms` immediately for any single renderer long task >=100ms, regardless of upload state. 405 tests pass; clean Electron boot. Every action — main or renderer, idle or under load — now names itself in the log if it is slow. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| assets | ||
| docs | ||
| gateway | ||
| 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