release: Multi-Hoster-Upload 2.1.11

This commit is contained in:
Sucukdeluxe
2026-08-11 20:10:44 +02:00
parent 191fe92d44
commit 2c124c848c
5 changed files with 13 additions and 10 deletions
+1 -1
View File
@@ -8,7 +8,7 @@ Multi-Hoster-Upload is a Windows desktop application for sending file batches to
Download the current Setup or Portable build from the [latest GitHub release](https://github.com/Sucukdeluxe/Multi-Hoster-Upload/releases/latest). Download the current Setup or Portable build from the [latest GitHub release](https://github.com/Sucukdeluxe/Multi-Hoster-Upload/releases/latest).
The latest public release is version 2.1.10. Use the release page for the executables and the full English changelog. The latest public release is version 2.1.11. Use the release page for the executables and the full English changelog.
## Features ## Features
+2 -2
View File
@@ -1,12 +1,12 @@
{ {
"name": "multi-hoster-uploader", "name": "multi-hoster-uploader",
"version": "2.1.10", "version": "2.1.11",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "multi-hoster-uploader", "name": "multi-hoster-uploader",
"version": "2.1.10", "version": "2.1.11",
"dependencies": { "dependencies": {
"chokidar": "^3.6.0", "chokidar": "^3.6.0",
"undici": "^7.29.0", "undici": "^7.29.0",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "multi-hoster-uploader", "name": "multi-hoster-uploader",
"version": "2.1.10", "version": "2.1.11",
"description": "Upload files to doodstream, voe, vidmoly, byse simultaneously", "description": "Upload files to doodstream, voe, vidmoly, byse simultaneously",
"main": "main.js", "main": "main.js",
"scripts": { "scripts": {
+6 -6
View File
@@ -1874,12 +1874,12 @@ select.hs-input { max-width: none; width: auto; min-width: 140px; }
} }
.upload-speed-sparkline { .upload-speed-sparkline {
width: 184px; width: 208px;
height: 30px; height: 30px;
display: grid; display: grid;
grid-template-columns: minmax(0, 1fr) 62px; grid-template-columns: minmax(0, 1fr) max-content;
align-items: center; align-items: center;
gap: 7px; gap: 4px;
padding: 3px 8px; padding: 3px 8px;
border: 1px solid var(--border); border: 1px solid var(--border);
border-radius: 7px; border-radius: 7px;
@@ -3728,7 +3728,7 @@ input[type="checkbox"] {
} }
.upload-speed-sparkline { .upload-speed-sparkline {
width: 150px; width: 168px;
} }
.stats-grid { .stats-grid {
@@ -3847,8 +3847,8 @@ input[type="checkbox"] {
} }
.upload-speed-sparkline { .upload-speed-sparkline {
width: 126px; width: 142px;
grid-template-columns: minmax(0, 1fr) 56px; grid-template-columns: minmax(0, 1fr) max-content;
gap: 4px; gap: 4px;
padding-inline: 6px; padding-inline: 6px;
} }
+3
View File
@@ -410,6 +410,9 @@ setTimeout(async () => {
const speedSparklineState = await wc.executeJavaScript('(() => { const widget = document.getElementById("uploadSpeedSparkline"); const canvas = document.getElementById("uploadSpeedCanvas"); const rect = canvas?.getBoundingClientRect(); return [Boolean(widget), widget?.classList.contains("is-hidden"), rect?.width > 0, rect?.height > 0, document.getElementById("uploadSpeedValue")?.textContent].join("|"); })()'); const speedSparklineState = await wc.executeJavaScript('(() => { const widget = document.getElementById("uploadSpeedSparkline"); const canvas = document.getElementById("uploadSpeedCanvas"); const rect = canvas?.getBoundingClientRect(); return [Boolean(widget), widget?.classList.contains("is-hidden"), rect?.width > 0, rect?.height > 0, document.getElementById("uploadSpeedValue")?.textContent].join("|"); })()');
check('Upload header exposes the visible speed sparkline', speedSparklineState === 'true|false|true|true|0 B/s'); check('Upload header exposes the visible speed sparkline', speedSparklineState === 'true|false|true|true|0 B/s');
const speedSparklineGeometry = await wc.executeJavaScript('(() => { const widget = document.getElementById("uploadSpeedSparkline")?.getBoundingClientRect(); const canvas = document.getElementById("uploadSpeedCanvas")?.getBoundingClientRect(); const value = document.getElementById("uploadSpeedValue")?.getBoundingClientRect(); return { widgetWidth: widget?.width || 0, canvasWidth: canvas?.width || 0, gap: value && canvas ? value.left - canvas.right : 0, contained: Boolean(widget && canvas && value && canvas.left >= widget.left && value.right <= widget.right) }; })()');
check('Upload header extends the speed line toward the value instead of leaving a fixed empty column', speedSparklineGeometry.canvasWidth >= 108 && speedSparklineGeometry.gap >= 3 && speedSparklineGeometry.gap <= 5 && speedSparklineGeometry.contained);
const toolbarLabels = await wc.executeJavaScript('[...document.querySelectorAll("#queueCommandBar .toolbar-btn")].map(el => el.getAttribute("aria-label")).join("|")'); const toolbarLabels = await wc.executeJavaScript('[...document.querySelectorAll("#queueCommandBar .toolbar-btn")].map(el => el.getAttribute("aria-label")).join("|")');
check('Upload toolbar actions have German accessible names', toolbarLabels === 'Alle Uploads starten|Ausgewählte Uploads starten|Ausgewählte Datei erneut hochladen|Ausgewählten Upload abbrechen|Aktive Uploads beenden und stoppen|Alle Uploads abbrechen|Ganz nach oben|Nach oben|Nach unten|Ganz nach unten'); check('Upload toolbar actions have German accessible names', toolbarLabels === 'Alle Uploads starten|Ausgewählte Uploads starten|Ausgewählte Datei erneut hochladen|Ausgewählten Upload abbrechen|Aktive Uploads beenden und stoppen|Alle Uploads abbrechen|Ganz nach oben|Nach oben|Nach unten|Ganz nach unten');