release: Multi-Hoster-Upload 2.1.8

This commit is contained in:
Sucukdeluxe
2026-08-11 16:32:44 +02:00
parent 03136e9fef
commit 32d4fc41d8
5 changed files with 12 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).
The latest public release is version 2.1.7. Use the release page for the executables and the full English changelog.
The latest public release is version 2.1.8. Use the release page for the executables and the full English changelog.
## Features
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "multi-hoster-uploader",
"version": "2.1.7",
"version": "2.1.8",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "multi-hoster-uploader",
"version": "2.1.7",
"version": "2.1.8",
"dependencies": {
"chokidar": "^3.6.0",
"undici": "^7.29.0",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "multi-hoster-uploader",
"version": "2.1.7",
"version": "2.1.8",
"description": "Upload files to doodstream, voe, vidmoly, byse simultaneously",
"main": "main.js",
"scripts": {
+6 -6
View File
@@ -4341,12 +4341,12 @@ function renderSettings() {
</select>
<span class="hint">Pro Session = neue Datei bei jedem App-Start; nach komplettem Schließen + erneutem Öffnen beginnt eine neue Session.</span>
</div>
<div class="settings-row">
<label>Verbose Logging</label>
<label class="checkbox-row" style="margin:0">
<input type="checkbox" class="settings-autosave" id="logVerboseInput" ${globalSettings.logVerbose ? 'checked' : ''}>
<span>DEBUG-Einträge in debug.log schreiben (Performance , Diagnostik )</span>
</label>
<div class="settings-option verbose-logging-option">
<div class="settings-option-copy">
<label for="logVerboseInput">Verbose Logging</label>
<span class="settings-option-description">DEBUG-Einträge in debug.log schreiben (Performance , Diagnostik )</span>
</div>
<input type="checkbox" class="settings-autosave" id="logVerboseInput" ${globalSettings.logVerbose ? 'checked' : ''}>
</div>
<div class="settings-section-label">Diagnose</div>
<div class="settings-row" id="logPathsBlock">
+2
View File
@@ -874,6 +874,8 @@ setTimeout(async () => {
await wc.executeJavaScript('document.querySelector("[data-settings-page=logs]")?.click()');
const logPathAlignment = await wc.executeJavaScript('(() => { const row = document.querySelector(".log-file-path-row")?.getBoundingClientRect(); const input = document.getElementById("logFilePathInput")?.getBoundingClientRect(); const choose = document.getElementById("chooseLogFilePathBtn")?.getBoundingClientRect(); const open = document.getElementById("openLogFolderBtn")?.getBoundingClientRect(); if (!row || !input || !choose || !open) return "missing"; const center = rect => rect.top + rect.height / 2; return [Math.abs(center(input) - center(choose)) <= 1, Math.abs(center(choose) - center(open)) <= 1, open.left > choose.right, open.right <= row.right + 1].join("|"); })()');
check('FileUploader Log actions stay in one row with Open on the right', logPathAlignment === 'true|true|true|true');
const verboseLoggingLayout = await wc.executeJavaScript('(() => { const option = document.querySelector(".verbose-logging-option"); const copy = option?.querySelector(".settings-option-copy"); const input = document.getElementById("logVerboseInput"); const label = option?.querySelector("label[for=logVerboseInput]"); if (!option || !copy || !input || !label) return "missing"; const optionRect = option.getBoundingClientRect(); const copyRect = copy.getBoundingClientRect(); const inputRect = input.getBoundingClientRect(); const center = rect => rect.top + rect.height / 2; return [input.parentElement === option, inputRect.left > copyRect.right, Math.abs(center(inputRect) - center(optionRect)) <= 1, inputRect.right <= optionRect.right - 10].join("|"); })()');
check('Verbose logging follows the shared settings option layout with its checkbox on the right', verboseLoggingLayout === 'true|true|true|true');
const settingsSidebarInformation = await wc.executeJavaScript('(() => { const feedback = document.getElementById("saveFeedback"); const sidebar = document.querySelector(".settings-sidebar"); const status = document.querySelector(".settings-sidebar-status"); return Boolean(feedback && sidebar?.contains(feedback) && status && !document.querySelector(".settings-header #saveFeedback")); })()');
check('Settings sidebar owns the persistent save information', settingsSidebarInformation === true);