Compare commits
No commits in common. "144088c01fe15f115431404a3068d0a5bdb2e28b" and "9d4f5fd9a3baa818593fceb9578ec4a2358ba591" have entirely different histories.
144088c01f
...
9d4f5fd9a3
4
package-lock.json
generated
4
package-lock.json
generated
@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "twitch-vod-manager",
|
"name": "twitch-vod-manager",
|
||||||
"version": "4.6.47",
|
"version": "4.6.46",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "twitch-vod-manager",
|
"name": "twitch-vod-manager",
|
||||||
"version": "4.6.47",
|
"version": "4.6.46",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axios": "^1.6.0",
|
"axios": "^1.6.0",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "twitch-vod-manager",
|
"name": "twitch-vod-manager",
|
||||||
"version": "4.6.47",
|
"version": "4.6.46",
|
||||||
"description": "Twitch VOD Manager - Download Twitch VODs easily",
|
"description": "Twitch VOD Manager - Download Twitch VODs easily",
|
||||||
"main": "dist/main.js",
|
"main": "dist/main.js",
|
||||||
"author": "xRangerDE",
|
"author": "xRangerDE",
|
||||||
|
|||||||
@ -102,7 +102,7 @@
|
|||||||
<div id="clipFilenameTemplateWrap" class="clip-template-wrap" style="display:none;">
|
<div id="clipFilenameTemplateWrap" class="clip-template-wrap" style="display:none;">
|
||||||
<input type="text" id="clipFilenameTemplate" value="{date}_{part}.mp4" placeholder="{date}_{part}.mp4" class="clip-modal-template-input" oninput="updateFilenameExamples()">
|
<input type="text" id="clipFilenameTemplate" value="{date}_{part}.mp4" placeholder="{date}_{part}.mp4" class="clip-modal-template-input" oninput="updateFilenameExamples()">
|
||||||
<div id="clipTemplateHelp" class="clip-modal-hint">Platzhalter: {title} {id} {channel} {date} {part} {trim_start} {trim_end} {trim_length} {date_custom="yyyy-MM-dd"}</div>
|
<div id="clipTemplateHelp" class="clip-modal-hint">Platzhalter: {title} {id} {channel} {date} {part} {trim_start} {trim_end} {trim_length} {date_custom="yyyy-MM-dd"}</div>
|
||||||
<div id="clipTemplateLint" class="template-lint ok" style="margin-top: 4px;">Template-Check: OK</div>
|
<div id="clipTemplateLint" class="clip-template-lint">Template-Check: OK</div>
|
||||||
<button class="btn-secondary" id="clipTemplateGuideBtn" style="margin-top: 8px;" onclick="openTemplateGuide('clip')">Template Guide</button>
|
<button class="btn-secondary" id="clipTemplateGuideBtn" style="margin-top: 8px;" onclick="openTemplateGuide('clip')">Template Guide</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -653,8 +653,8 @@
|
|||||||
<label id="defaultClipTemplateLabel" style="font-size: 13px; color: var(--text-secondary); margin-top: 4px;">Clip Template</label>
|
<label id="defaultClipTemplateLabel" style="font-size: 13px; color: var(--text-secondary); margin-top: 4px;">Clip Template</label>
|
||||||
<input type="text" id="defaultClipFilenameTemplate" class="input-monospace" placeholder="{date}_{part}.mp4" oninput="validateFilenameTemplates()">
|
<input type="text" id="defaultClipFilenameTemplate" class="input-monospace" placeholder="{date}_{part}.mp4" oninput="validateFilenameTemplates()">
|
||||||
</div>
|
</div>
|
||||||
<div id="filenameTemplateHint" class="form-note" style="margin-top: 8px;">Platzhalter: {title} {id} {channel} {date} {part} {part_padded} {trim_start} {trim_end} {trim_length} {date_custom="yyyy-MM-dd"}</div>
|
<div id="filenameTemplateHint" style="color: #888; font-size: 12px; margin-top: 8px;">Platzhalter: {title} {id} {channel} {date} {part} {part_padded} {trim_start} {trim_end} {trim_length} {date_custom="yyyy-MM-dd"}</div>
|
||||||
<div id="filenameTemplateLint" class="template-lint ok" style="margin-top: 6px;">Template-Check: OK</div>
|
<div id="filenameTemplateLint" style="font-size: 12px; margin-top: 6px; color: #8bc34a;">Template-Check: OK</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@ -49,12 +49,12 @@ function validateFilenameTemplates(showAlert = false): boolean {
|
|||||||
const lintNode = byId('filenameTemplateLint');
|
const lintNode = byId('filenameTemplateLint');
|
||||||
|
|
||||||
if (!uniqueUnknown.length) {
|
if (!uniqueUnknown.length) {
|
||||||
lintNode.className = 'template-lint ok';
|
lintNode.style.color = '#8bc34a';
|
||||||
lintNode.textContent = UI_TEXT.static.templateLintOk;
|
lintNode.textContent = UI_TEXT.static.templateLintOk;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
lintNode.className = 'template-lint warn';
|
lintNode.style.color = '#ff8a80';
|
||||||
lintNode.textContent = `${UI_TEXT.static.templateLintWarn}: ${uniqueUnknown.join(' ')}`;
|
lintNode.textContent = `${UI_TEXT.static.templateLintWarn}: ${uniqueUnknown.join(' ')}`;
|
||||||
|
|
||||||
if (showAlert) {
|
if (showAlert) {
|
||||||
|
|||||||
@ -1245,10 +1245,10 @@ function updateFilenameExamples(): void {
|
|||||||
updateFilenameTemplateVisibility();
|
updateFilenameTemplateVisibility();
|
||||||
|
|
||||||
if (!unknownTokens.length) {
|
if (!unknownTokens.length) {
|
||||||
clipLint.className = 'template-lint ok';
|
clipLint.style.color = '#8bc34a';
|
||||||
clipLint.textContent = UI_TEXT.static.templateLintOk;
|
clipLint.textContent = UI_TEXT.static.templateLintOk;
|
||||||
} else {
|
} else {
|
||||||
clipLint.className = 'template-lint warn';
|
clipLint.style.color = '#ff8a80';
|
||||||
clipLint.textContent = `${UI_TEXT.static.templateLintWarn}: ${unknownTokens.join(' ')}`;
|
clipLint.textContent = `${UI_TEXT.static.templateLintWarn}: ${unknownTokens.join(' ')}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -282,12 +282,8 @@ body {
|
|||||||
line-height: 1.4;
|
line-height: 1.4;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* .clip-template-lint was the old per-modal rule for the clip-cutter
|
|
||||||
template lint badge. Superseded by the shared .template-lint
|
|
||||||
class (with .ok / .warn modifiers driven from var(--success) /
|
|
||||||
var(--error)). Class kept as a no-op alias in case any external
|
|
||||||
reference still uses it. */
|
|
||||||
.clip-template-lint {
|
.clip-template-lint {
|
||||||
|
color: #8bc34a;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
margin-top: 4px;
|
margin-top: 4px;
|
||||||
}
|
}
|
||||||
@ -1970,25 +1966,6 @@ select option {
|
|||||||
user-select: none;
|
user-select: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Filename-template lint badge — used both by the Settings card's
|
|
||||||
template inputs and by the clip-cutter modal's custom template
|
|
||||||
row. Two states: green for OK, red for unknown-placeholder
|
|
||||||
warning. Pull the colours from --success / --error vars so the
|
|
||||||
lint always tracks the rest of the apps semantic palette. */
|
|
||||||
.template-lint {
|
|
||||||
font-size: 12px;
|
|
||||||
line-height: 1.4;
|
|
||||||
transition: color 0.15s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.template-lint.ok {
|
|
||||||
color: var(--success);
|
|
||||||
}
|
|
||||||
|
|
||||||
.template-lint.warn {
|
|
||||||
color: var(--error);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Sidebar queue empty state — small dashed-border card matching the
|
/* Sidebar queue empty state — small dashed-border card matching the
|
||||||
sibling streamer-list empty state. */
|
sibling streamer-list empty state. */
|
||||||
.queue-empty {
|
.queue-empty {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user