Germanize queue/download wording and clip errors (v3.8.4)
Align visible queue and clip messages to German terminology, remove remaining mixed English labels, and reuse resilient streamlink command resolution for clip downloads to keep behavior consistent across environments.
This commit is contained in:
parent
e91a397a5c
commit
00249bcbed
4
typescript-version/package-lock.json
generated
4
typescript-version/package-lock.json
generated
@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "twitch-vod-manager",
|
||||
"version": "3.8.3",
|
||||
"version": "3.8.4",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "twitch-vod-manager",
|
||||
"version": "3.8.3",
|
||||
"version": "3.8.4",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"axios": "^1.6.0",
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "twitch-vod-manager",
|
||||
"version": "3.8.3",
|
||||
"version": "3.8.4",
|
||||
"description": "Twitch VOD Manager - Download Twitch VODs easily",
|
||||
"main": "dist/main.js",
|
||||
"author": "xRangerDE",
|
||||
|
||||
@ -58,13 +58,13 @@
|
||||
<span id="clipDurationDisplay" style="color: #00c853;">00:01:00</span>
|
||||
</div>
|
||||
|
||||
<!-- Part Nummer -->
|
||||
<!-- Teil Nummer -->
|
||||
<div style="margin-bottom: 15px;">
|
||||
<label style="display: block; margin-bottom: 8px;">Start Part-Nummer (optional, fur Fortsetzung):</label>
|
||||
<input type="text" id="clipStartPart" placeholder="z.B. 42"
|
||||
style="width: 100px; background: #333; border: 1px solid #444; border-radius: 4px; padding: 8px 12px; color: white;"
|
||||
oninput="updateFilenameExamples()">
|
||||
<div style="color: #888; font-size: 12px; margin-top: 5px;">Leer lassen = Part 1</div>
|
||||
<div style="color: #888; font-size: 12px; margin-top: 5px;">Leer lassen = Teil 1</div>
|
||||
</div>
|
||||
|
||||
<!-- Dateinamen Format -->
|
||||
@ -335,7 +335,7 @@
|
||||
|
||||
<div class="settings-card">
|
||||
<h3>Updates</h3>
|
||||
<p id="versionInfo" style="margin-bottom: 10px; color: var(--text-secondary);">Version: v3.8.3</p>
|
||||
<p id="versionInfo" style="margin-bottom: 10px; color: var(--text-secondary);">Version: v3.8.4</p>
|
||||
<button class="btn-secondary" onclick="checkUpdate()">Nach Updates suchen</button>
|
||||
</div>
|
||||
</div>
|
||||
@ -346,7 +346,7 @@
|
||||
<div class="status-dot" id="statusDot"></div>
|
||||
<span id="statusText">Nicht verbunden</span>
|
||||
</div>
|
||||
<span id="versionText">v3.8.3</span>
|
||||
<span id="versionText">v3.8.4</span>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
@ -8,7 +8,7 @@ import { autoUpdater } from 'electron-updater';
|
||||
// ==========================================
|
||||
// CONFIG & CONSTANTS
|
||||
// ==========================================
|
||||
const APP_VERSION = '3.8.3';
|
||||
const APP_VERSION = '3.8.4';
|
||||
const UPDATE_CHECK_URL = 'http://24-music.de/version.json';
|
||||
|
||||
// Paths
|
||||
@ -1155,7 +1155,7 @@ function downloadVODPart(
|
||||
return;
|
||||
}
|
||||
|
||||
const genericError = lastErrorLine || `Streamlink Exit-Code ${code ?? -1}`;
|
||||
const genericError = lastErrorLine || `Streamlink Fehlercode ${code ?? -1}`;
|
||||
appendDebugLog('download-part-failed', { itemId, filename, code, error: genericError });
|
||||
resolve({ success: false, error: genericError });
|
||||
});
|
||||
@ -1599,10 +1599,10 @@ ipcMain.handle('download-clip', async (_, clipUrl: string) => {
|
||||
|
||||
if (match1) clipId = match1[1];
|
||||
else if (match2) clipId = match2[1];
|
||||
else return { success: false, error: 'Invalid clip URL' };
|
||||
else return { success: false, error: 'Ungueltige Clip-URL' };
|
||||
|
||||
const clipInfo = await getClipInfo(clipId);
|
||||
if (!clipInfo) return { success: false, error: 'Clip not found' };
|
||||
if (!clipInfo) return { success: false, error: 'Clip nicht gefunden' };
|
||||
|
||||
const folder = path.join(config.download_path, 'Clips', clipInfo.broadcaster_name);
|
||||
fs.mkdirSync(folder, { recursive: true });
|
||||
@ -1611,8 +1611,9 @@ ipcMain.handle('download-clip', async (_, clipUrl: string) => {
|
||||
const filename = path.join(folder, `${safeTitle}.mp4`);
|
||||
|
||||
return new Promise((resolve) => {
|
||||
const streamlinkPath = getStreamlinkPath();
|
||||
const proc = spawn(streamlinkPath, [
|
||||
const streamlinkCmd = getStreamlinkCommand();
|
||||
const proc = spawn(streamlinkCmd.command, [
|
||||
...streamlinkCmd.prefixArgs,
|
||||
`https://clips.twitch.tv/${clipId}`,
|
||||
'best',
|
||||
'-o', filename,
|
||||
@ -1623,12 +1624,12 @@ ipcMain.handle('download-clip', async (_, clipUrl: string) => {
|
||||
if (code === 0 && fs.existsSync(filename)) {
|
||||
resolve({ success: true, filename });
|
||||
} else {
|
||||
resolve({ success: false, error: 'Download failed' });
|
||||
resolve({ success: false, error: `Download fehlgeschlagen (Exit-Code ${code ?? -1})` });
|
||||
}
|
||||
});
|
||||
|
||||
proc.on('error', () => {
|
||||
resolve({ success: false, error: 'Streamlink not found' });
|
||||
resolve({ success: false, error: 'Streamlink nicht gefunden' });
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@ -22,7 +22,7 @@ async function clearCompleted(): Promise<void> {
|
||||
function getQueueStatusLabel(item: QueueItem): string {
|
||||
if (item.status === 'completed') return 'Abgeschlossen';
|
||||
if (item.status === 'error') return 'Fehlgeschlagen';
|
||||
if (item.status === 'downloading') return 'Lauft';
|
||||
if (item.status === 'downloading') return 'Laeuft';
|
||||
return 'Wartet';
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user