Use the canonical product name in public surfaces

Align the README, support bundles, webhook payloads, and updater identity with Multi Hoster Uploader while preserving repository and artifact slugs for compatibility.
This commit is contained in:
Sucukdeluxe
2026-08-13 21:18:46 +02:00
parent c80b86594d
commit 107dcfb9ae
5 changed files with 9 additions and 9 deletions
+3 -3
View File
@@ -1,8 +1,8 @@
# Multi-Hoster-Upload # Multi Hoster Uploader
Multi-Hoster-Upload is a Windows desktop application for sending file batches to several supported video hosts from one queue. Add files or folders, choose one or more destinations, manage multiple accounts, and follow every upload from preparation to its final link. Multi Hoster Uploader is a Windows desktop application for sending file batches to several supported video hosts from one queue. Add files or folders, choose one or more destinations, manage multiple accounts, and follow every upload from preparation to its final link.
![Multi-Hoster-Upload product overview](assets/product-overview.png) ![Multi Hoster Uploader product overview](assets/product-overview.png)
## Download ## Download
+1 -1
View File
@@ -201,7 +201,7 @@ function collectFile(filePath, label, maxBytes, options) {
function buildSupportBundleText({ header, sanitizedConfig, files, secrets }) { function buildSupportBundleText({ header, sanitizedConfig, files, secrets }) {
const parts = []; const parts = [];
parts.push('=== Multi-Hoster-Upload Support Bundle ===\n'); parts.push('=== Multi Hoster Uploader Support Bundle ===\n');
if (header && typeof header === 'object') { if (header && typeof header === 'object') {
for (const [k, v] of Object.entries(header)) parts.push(`${k}: ${v}\n`); for (const [k, v] of Object.entries(header)) parts.push(`${k}: ${v}\n`);
} }
+1 -1
View File
@@ -98,7 +98,7 @@ async function fetchGithubReleaseNotes(remoteVersion, fallback = '', fetchImpl =
headers: { headers: {
Accept: 'application/vnd.github+json', Accept: 'application/vnd.github+json',
'X-GitHub-Api-Version': '2022-11-28', 'X-GitHub-Api-Version': '2022-11-28',
'User-Agent': 'Multi-Hoster-Upload' 'User-Agent': 'Multi-Hoster-Uploader'
} }
}); });
if (!response.ok) return String(fallback || ''); if (!response.ok) return String(fallback || '');
+2 -2
View File
@@ -78,7 +78,7 @@ function buildWebhookRequest(url, summary, meta) {
.join(' · '); .join(' · ');
if (hosterEntries.length > MAX_HOSTER_LINES) hosterLines += ` · …+${hosterEntries.length - MAX_HOSTER_LINES}`; if (hosterEntries.length > MAX_HOSTER_LINES) hosterLines += ` · …+${hosterEntries.length - MAX_HOSTER_LINES}`;
const lines = [ const lines = [
`**Multi-Hoster-Upload — ${headline}**${m.machineName ? ` (${m.machineName})` : ''}`, `**Multi Hoster Uploader${headline}**${m.machineName ? ` (${m.machineName})` : ''}`,
language === 'de' language === 'de'
? `${succeeded} ok · ❌ ${failed} Fehler${skipped > 0 ? ` · ⏭ ${skipped} übersprungen` : ''} · 📦 ${total} gesamt · ⏱ ${duration}` ? `${succeeded} ok · ❌ ${failed} Fehler${skipped > 0 ? ` · ⏭ ${skipped} übersprungen` : ''} · 📦 ${total} gesamt · ⏱ ${duration}`
: `${succeeded} succeeded · ❌ ${failed} failed${skipped > 0 ? ` · ⏭ ${skipped} skipped` : ''} · 📦 ${total} total · ⏱ ${duration}` : `${succeeded} succeeded · ❌ ${failed} failed${skipped > 0 ? ` · ⏭ ${skipped} skipped` : ''} · 📦 ${total} total · ⏱ ${duration}`
@@ -92,7 +92,7 @@ function buildWebhookRequest(url, summary, meta) {
} else { } else {
body = JSON.stringify({ body = JSON.stringify({
event: 'batch-done', event: 'batch-done',
app: 'multi-hoster-upload', app: 'multi-hoster-uploader',
version: m.appVersion || null, version: m.appVersion || null,
machine: m.machineName || null, machine: m.machineName || null,
total, total,
+2 -2
View File
@@ -239,7 +239,7 @@ test('buildSupportBundleText produces structured output with header + config + f
sanitizedConfig: { hosters: { 'voe.sx': [{ apiKey: '<redacted>' }] } }, sanitizedConfig: { hosters: { 'voe.sx': [{ apiKey: '<redacted>' }] } },
files: [{ label: 'debug.log', path: tmp }] files: [{ label: 'debug.log', path: tmp }]
}); });
assert.match(text, /^=== Multi-Hoster-Upload Support Bundle ===/); assert.match(text, /^=== Multi Hoster Uploader Support Bundle ===/);
assert.match(text, /Version: 3\.3\.41/); assert.match(text, /Version: 3\.3\.41/);
assert.match(text, /Platform: win32/); assert.match(text, /Platform: win32/);
assert.match(text, /=== Config \(sanitized/); assert.match(text, /=== Config \(sanitized/);
@@ -253,7 +253,7 @@ test('buildSupportBundleText produces structured output with header + config + f
test('buildSupportBundleText handles empty file list and missing header', () => { test('buildSupportBundleText handles empty file list and missing header', () => {
const text = buildSupportBundleText({ sanitizedConfig: {}, files: [] }); const text = buildSupportBundleText({ sanitizedConfig: {}, files: [] });
assert.match(text, /=== Multi-Hoster-Upload Support Bundle ===/); assert.match(text, /=== Multi Hoster Uploader Support Bundle ===/);
assert.match(text, /=== Config/); assert.match(text, /=== Config/);
}); });