Root Cause (User-Report): bei Part 1/6 Multi-Part-Download mit 869 MB schon geladen, blieb der Bar auf einer fixen Position weit links — sah aus als ob ein paar % erreicht waeren obwohl viel mehr lief. Drei Probleme die das aus 5.0.1-5.0.11 noch ueberlebt haben: 1. downloadVODPart Path A (1-Sek-Heartbeat) emittierte progress=-1 wenn HLS kein known total hat. UI flippte zwischen 'determinate bei letztem streamlink-%' und 'indeterminate-Animation' — User sah einen 35%-Bar der zwischen Streamlink-%-Updates kurz aufpoppt. 2. Part-based-Split (download_mode='parts', langes VOD in N Stunden- Parts) hat downloadVODPart's onProgress UNGEWRAPPT an die UI gegeben. Bar zeigte 'X% von Part i' statt 'gewichtete overall %'. Bei Part-Wechsel sprang er von 100% zurueck auf 0%. Bei Part 1 mit 50% Stream-Progress zeigte der Bar 50% obwohl overall erst bei 8.3% (1 von 6 Parts halb fertig). 3. Full-VOD-Download (kein --hls-duration) hatte kein expected total fuer den bytes-Estimate -> blieb in indeterminate-Mode. Fixes: - downloadVODPart bekommt optionalen Parameter. Path A schaetzt jetzt progress aus downloadedBytes / (duration * ~625 KB/s, Twitch ~5 Mbit/s Schaetzung), gecappt bei 95%. Wenn streamlink-stdout-% rauskommt, override mit dem (genauer). Nur noch progress=-1 wenn weder bytes noch streamlink-% verfuegbar. - Part-based-Split (downloadVodWithStrategy) wrappt onProgress jetzt mit einem Aggregator: pro Part den max-bekannten %-Wert merken, overallProgress = avg(allParts). Bei Part-Done aus dem Loop partProgresses[i] = 100 setzen. Bar steigt monoton von 0% auf 100% ueber alle Parts. - Full-VOD-Download passt totalDuration als expectedTotalSec an downloadVODPart, sodass auch hier der bytes-Estimate greift. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
69 lines
2.4 KiB
JSON
69 lines
2.4 KiB
JSON
{
|
|
"name": "twitch-vod-manager",
|
|
"version": "5.0.12",
|
|
"description": "Twitch VOD Manager - Download Twitch VODs easily",
|
|
"main": "dist/main.js",
|
|
"author": "xRangerDE",
|
|
"license": "MIT",
|
|
"scripts": {
|
|
"build": "tsc",
|
|
"start": "npm run build && electron .",
|
|
"test:unit": "vitest run --passWithNoTests",
|
|
"test:unit:watch": "vitest",
|
|
"test:e2e:update-logic": "node scripts/smoke-test-update-version-logic.js",
|
|
"test:e2e": "node scripts/smoke-test.js",
|
|
"test:e2e:guide": "node scripts/smoke-test-template-guide.js",
|
|
"test:e2e:full": "node scripts/smoke-test-full.js",
|
|
"test:e2e:release": "npm run build && npm run test:unit && npm run test:e2e:update-logic && npm run test:e2e && npm run test:e2e:guide && npm run test:e2e:full",
|
|
"test:e2e:stress": "npm run test:e2e:release && npm run test:e2e:release && npm run test:e2e:release",
|
|
"pack": "npm run build && electron-builder --dir",
|
|
"dist": "npm run build && electron-builder",
|
|
"dist:win": "npm run test:e2e:release && electron-builder --win",
|
|
"release:gitea": "node scripts/release_gitea.mjs",
|
|
"test:merge-split": "node scripts/smoke-test-merge-split-logic.js"
|
|
},
|
|
"dependencies": {
|
|
"axios": "^1.16.1",
|
|
"better-sqlite3": "^12.10.0",
|
|
"electron-updater": "^6.8.3"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/js": "^10.0.1",
|
|
"@types/better-sqlite3": "^7.6.13",
|
|
"@types/node": "^20.10.0",
|
|
"electron": "^28.0.0",
|
|
"electron-builder": "^24.9.0",
|
|
"eslint": "^10.4.0",
|
|
"eslint-plugin-security": "^4.0.0",
|
|
"playwright": "^1.60.0",
|
|
"typescript": "^5.3.0",
|
|
"typescript-eslint": "^8.59.4",
|
|
"vitest": "^4.1.6"
|
|
},
|
|
"build": {
|
|
"appId": "de.24-music.twitch-vod-manager",
|
|
"productName": "Twitch VOD Manager",
|
|
"directories": {
|
|
"output": "release"
|
|
},
|
|
"win": {
|
|
"target": "nsis",
|
|
"signAndEditExecutable": false,
|
|
"artifactName": "Twitch-VOD-Manager-Setup-${version}.${ext}"
|
|
},
|
|
"nsis": {
|
|
"oneClick": false,
|
|
"allowToChangeInstallationDirectory": true,
|
|
"deleteAppDataOnUninstall": false,
|
|
"createDesktopShortcut": true,
|
|
"createStartMenuShortcut": true,
|
|
"shortcutName": "Twitch VOD Manager v${version}",
|
|
"include": "build/installer.nsh"
|
|
},
|
|
"publish": {
|
|
"provider": "generic",
|
|
"url": "https://git.24-music.de/Administrator/Twitch-VOD-Manager/releases/download/v${version}/"
|
|
}
|
|
}
|
|
}
|