fix: toolbar icons, UI improvements, upload manager enhancements
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
0bde332003
commit
2ddbc41318
@ -1,8 +1,10 @@
|
||||
{
|
||||
"hosters": {
|
||||
"doodstream.com": {
|
||||
"enabled": true,
|
||||
"apiKey": "480618be3tgxt6xg1vkjwg"
|
||||
"enabled": false,
|
||||
"apiKey": "",
|
||||
"username": "",
|
||||
"password": ""
|
||||
},
|
||||
"voe.sx": {
|
||||
"enabled": true,
|
||||
@ -19,6 +21,117 @@
|
||||
"apiKey": "83124r74v61t9dmojm4gz"
|
||||
}
|
||||
},
|
||||
"hosterSettings": {
|
||||
"doodstream.com": {
|
||||
"retries": 3,
|
||||
"maxSpeedKbs": 0,
|
||||
"parallelCount": 2,
|
||||
"restartBelowKbs": 0,
|
||||
"timeIntervalSec": 0,
|
||||
"maxSizeMb": 0
|
||||
},
|
||||
"voe.sx": {
|
||||
"retries": 3,
|
||||
"maxSpeedKbs": 0,
|
||||
"parallelCount": 2,
|
||||
"restartBelowKbs": 0,
|
||||
"timeIntervalSec": 0,
|
||||
"maxSizeMb": 0
|
||||
},
|
||||
"vidmoly.me": {
|
||||
"retries": 25,
|
||||
"maxSpeedKbs": 0,
|
||||
"parallelCount": 2,
|
||||
"restartBelowKbs": 0,
|
||||
"timeIntervalSec": 1,
|
||||
"maxSizeMb": 0
|
||||
},
|
||||
"byse.sx": {
|
||||
"retries": 3,
|
||||
"maxSpeedKbs": 0,
|
||||
"parallelCount": 2,
|
||||
"restartBelowKbs": 0,
|
||||
"timeIntervalSec": 0,
|
||||
"maxSizeMb": 0
|
||||
}
|
||||
},
|
||||
"globalSettings": {
|
||||
"alwaysOnTop": false,
|
||||
"shutdownAfterFinish": "nothing",
|
||||
"logFilePath": "",
|
||||
"resumeQueueOnLaunch": true,
|
||||
"parallelUploadCount": 0,
|
||||
"scaleParallelUploads": true,
|
||||
"removeFromQueueOnDone": false,
|
||||
"pendingQueue": {
|
||||
"selectedUploadHosters": [
|
||||
"doodstream.com",
|
||||
"voe.sx",
|
||||
"vidmoly.me",
|
||||
"byse.sx"
|
||||
],
|
||||
"selectedFiles": [
|
||||
{
|
||||
"path": "C:\\Users\\ploet\\Downloads\\Einfach mal die Fresse halten!!!.mp4",
|
||||
"name": "Einfach mal die Fresse halten!!!.mp4",
|
||||
"size": 0
|
||||
}
|
||||
],
|
||||
"queueJobs": [
|
||||
{
|
||||
"id": "preview-1773193741983-c1qa7p",
|
||||
"file": "C:\\Users\\ploet\\Downloads\\Einfach mal die Fresse halten!!!.mp4",
|
||||
"fileName": "Einfach mal die Fresse halten!!!.mp4",
|
||||
"hoster": "doodstream.com",
|
||||
"status": "preview",
|
||||
"bytesTotal": 0,
|
||||
"error": null,
|
||||
"result": null,
|
||||
"maxAttempts": 0
|
||||
},
|
||||
{
|
||||
"id": "preview-1773193741983-bvlsvn",
|
||||
"file": "C:\\Users\\ploet\\Downloads\\Einfach mal die Fresse halten!!!.mp4",
|
||||
"fileName": "Einfach mal die Fresse halten!!!.mp4",
|
||||
"hoster": "voe.sx",
|
||||
"status": "preview",
|
||||
"bytesTotal": 0,
|
||||
"error": null,
|
||||
"result": null,
|
||||
"maxAttempts": 0
|
||||
},
|
||||
{
|
||||
"id": "preview-1773193741983-a7aixs",
|
||||
"file": "C:\\Users\\ploet\\Downloads\\Einfach mal die Fresse halten!!!.mp4",
|
||||
"fileName": "Einfach mal die Fresse halten!!!.mp4",
|
||||
"hoster": "vidmoly.me",
|
||||
"status": "preview",
|
||||
"bytesTotal": 0,
|
||||
"error": null,
|
||||
"result": null,
|
||||
"maxAttempts": 0
|
||||
},
|
||||
{
|
||||
"id": "preview-1773193741983-39jnfg",
|
||||
"file": "C:\\Users\\ploet\\Downloads\\Einfach mal die Fresse halten!!!.mp4",
|
||||
"fileName": "Einfach mal die Fresse halten!!!.mp4",
|
||||
"hoster": "byse.sx",
|
||||
"status": "preview",
|
||||
"bytesTotal": 0,
|
||||
"error": null,
|
||||
"result": null,
|
||||
"maxAttempts": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
"scramble": {
|
||||
"active": false,
|
||||
"prefix": "",
|
||||
"suffix": "",
|
||||
"chars": "both",
|
||||
"length": 0
|
||||
}
|
||||
},
|
||||
"history": [
|
||||
{
|
||||
"id": "batch-1771639560711",
|
||||
@ -235,6 +348,79 @@
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "batch-1773173725103",
|
||||
"timestamp": "2026-03-10T20:15:25.339Z",
|
||||
"total": 1,
|
||||
"succeeded": 1,
|
||||
"failed": 0,
|
||||
"files": [
|
||||
{
|
||||
"name": "test-e2e-upload.txt",
|
||||
"size": 22,
|
||||
"results": [
|
||||
{
|
||||
"hoster": "voe.sx",
|
||||
"status": "done",
|
||||
"download_url": null,
|
||||
"embed_url": null,
|
||||
"file_code": null
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "batch-1773176124038",
|
||||
"timestamp": "2026-03-10T20:55:24.931Z",
|
||||
"total": 1,
|
||||
"succeeded": 1,
|
||||
"failed": 0,
|
||||
"files": [
|
||||
{
|
||||
"name": "Einfach mal die Fresse halten!!!.mp4",
|
||||
"size": 172248,
|
||||
"results": [
|
||||
{
|
||||
"hoster": "voe.sx",
|
||||
"status": "done",
|
||||
"download_url": "https://voe.sx/nlvswooic50v",
|
||||
"embed_url": "https://voe.sx/e/nlvswooic50v",
|
||||
"file_code": "nlvswooic50v"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "batch-1773176209320",
|
||||
"timestamp": "2026-03-10T20:56:59.349Z",
|
||||
"total": 2,
|
||||
"succeeded": 2,
|
||||
"failed": 0,
|
||||
"files": [
|
||||
{
|
||||
"name": "export_1771588307185.mov",
|
||||
"size": 7330963,
|
||||
"results": [
|
||||
{
|
||||
"hoster": "voe.sx",
|
||||
"status": "done",
|
||||
"download_url": "https://voe.sx/qh1jriyz5up7",
|
||||
"embed_url": "https://voe.sx/e/qh1jriyz5up7",
|
||||
"file_code": "qh1jriyz5up7"
|
||||
},
|
||||
{
|
||||
"hoster": "doodstream.com",
|
||||
"status": "done",
|
||||
"download_url": "https://dsvplay.com/d/q5tib39woqq4",
|
||||
"embed_url": "https://dsvplay.com/e/q5tib39woqq4",
|
||||
"file_code": "q5tib39woqq4"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -25,7 +25,7 @@
|
||||
<div class="upload-toolbar">
|
||||
<div class="toolbar-left">
|
||||
<button class="btn btn-xs btn-secondary" id="chooseHostersBtn">Ziele auswählen</button>
|
||||
<span class="hoster-summary" id="hosterSummary">Keine Upload-Ziele ausgewählt</span>
|
||||
<span class="hoster-summary" id="hosterSummary" style="display:none"></span>
|
||||
</div>
|
||||
<div class="toolbar-right">
|
||||
<button class="btn btn-xs btn-primary" id="addFilesBtn">+ Dateien</button>
|
||||
@ -40,15 +40,34 @@
|
||||
|
||||
<div class="queue-shell" id="queueShell" style="display:none">
|
||||
<div class="queue-command-bar" id="queueCommandBar">
|
||||
<button class="btn btn-xs btn-success" id="startUploadBtn" disabled>Start Uploading</button>
|
||||
<button class="btn btn-xs btn-secondary" id="reuploadSelectedBtn">Reupload selected file</button>
|
||||
<button class="btn btn-xs btn-secondary" id="abortSelectedBtn">Abort selected file</button>
|
||||
<button class="btn btn-xs btn-secondary" id="finishStopBtn">Finish Uploads in Progress and Stop</button>
|
||||
<button class="btn btn-xs btn-danger" id="abortAllBtn">Abort all Downloads</button>
|
||||
<button class="btn btn-xs btn-secondary" id="moveTopBtn">Move to the top</button>
|
||||
<button class="btn btn-xs btn-secondary" id="moveUpBtn">Move up</button>
|
||||
<button class="btn btn-xs btn-secondary" id="moveDownBtn">Move down</button>
|
||||
<button class="btn btn-xs btn-secondary" id="moveBottomBtn">Move to the bottom</button>
|
||||
<button class="toolbar-btn" id="startUploadBtn" title="Start Uploading" disabled>
|
||||
<svg width="16" height="16" viewBox="0 0 16 16"><path d="M4 2l10 6-10 6z" fill="#4caf50"/></svg>
|
||||
</button>
|
||||
<button class="toolbar-btn" id="reuploadSelectedBtn" title="Reupload selected file">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16"><path d="M8 1a7 7 0 0 0-5 2.1V1H2v4h4V4H3.7A5.5 5.5 0 1 1 2.5 8H1a7 7 0 1 0 7-7z" fill="#4caf50"/></svg>
|
||||
</button>
|
||||
<button class="toolbar-btn" id="abortSelectedBtn" title="Abort selected file">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16"><rect x="3" y="3" width="10" height="10" rx="1" fill="#e53935"/><path d="M5.5 5.5l5 5M10.5 5.5l-5 5" stroke="#fff" stroke-width="1.5" stroke-linecap="round"/></svg>
|
||||
</button>
|
||||
<button class="toolbar-btn" id="finishStopBtn" title="Finish Uploads in Progress and Stop">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16"><path d="M2 8l4 4 8-8" stroke="#4caf50" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"/><rect x="11" y="9" width="5" height="5" rx="1" fill="#e53935"/></svg>
|
||||
</button>
|
||||
<button class="toolbar-btn toolbar-btn-danger" id="abortAllBtn" title="Abort all Downloads">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16"><rect x="1" y="1" width="14" height="14" rx="2" fill="#e53935"/><path d="M4.5 4.5l7 7M11.5 4.5l-7 7" stroke="#fff" stroke-width="2" stroke-linecap="round"/></svg>
|
||||
</button>
|
||||
<span class="toolbar-sep"></span>
|
||||
<button class="toolbar-btn" id="moveTopBtn" title="Move to the top">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16"><rect x="4" y="1" width="8" height="2" rx="0.5" fill="#4caf50"/><path d="M8 5l-4 5h8z" fill="#4caf50"/><path d="M8 9l-4 5h8z" fill="#4caf50"/></svg>
|
||||
</button>
|
||||
<button class="toolbar-btn" id="moveUpBtn" title="Move up">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16"><path d="M8 2l-5 6h10z" fill="#4caf50"/><rect x="6" y="8" width="4" height="6" rx="0.5" fill="#4caf50"/></svg>
|
||||
</button>
|
||||
<button class="toolbar-btn" id="moveDownBtn" title="Move down">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16"><rect x="6" y="2" width="4" height="6" rx="0.5" fill="#4caf50"/><path d="M8 14l-5-6h10z" fill="#4caf50"/></svg>
|
||||
</button>
|
||||
<button class="toolbar-btn" id="moveBottomBtn" title="Move to the bottom">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16"><path d="M8 7l-4-5h8z" fill="#4caf50"/><path d="M8 11l-4-5h8z" fill="#4caf50"/><rect x="4" y="13" width="8" height="2" rx="0.5" fill="#4caf50"/></svg>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="queue-container" id="queueContainer">
|
||||
|
||||
@ -178,10 +178,55 @@ body {
|
||||
.queue-command-bar {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 6px;
|
||||
padding: 8px 16px;
|
||||
gap: 2px;
|
||||
align-items: center;
|
||||
padding: 4px 8px;
|
||||
border-bottom: 1px solid var(--border);
|
||||
background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(0,0,0,0.12));
|
||||
background: linear-gradient(180deg, rgba(255,255,255,0.05), rgba(0,0,0,0.08));
|
||||
}
|
||||
.toolbar-btn {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 28px;
|
||||
height: 26px;
|
||||
padding: 3px;
|
||||
border: 1px solid transparent;
|
||||
border-radius: 3px;
|
||||
background: transparent;
|
||||
cursor: pointer;
|
||||
color: var(--text-muted);
|
||||
transition: all 0.15s;
|
||||
}
|
||||
.toolbar-btn:hover {
|
||||
background: rgba(255,255,255,0.1);
|
||||
border-color: rgba(255,255,255,0.15);
|
||||
}
|
||||
.toolbar-btn:active {
|
||||
background: rgba(255,255,255,0.05);
|
||||
transform: translateY(1px);
|
||||
}
|
||||
.toolbar-btn:disabled {
|
||||
opacity: 0.35;
|
||||
cursor: default;
|
||||
pointer-events: none;
|
||||
}
|
||||
.toolbar-btn:disabled:hover {
|
||||
background: transparent;
|
||||
border-color: transparent;
|
||||
}
|
||||
.toolbar-btn svg {
|
||||
display: block;
|
||||
}
|
||||
.toolbar-btn-danger:hover {
|
||||
background: rgba(229,57,53,0.2);
|
||||
border-color: rgba(229,57,53,0.3);
|
||||
}
|
||||
.toolbar-sep {
|
||||
width: 1px;
|
||||
height: 20px;
|
||||
background: var(--border);
|
||||
margin: 0 4px;
|
||||
}
|
||||
.queue-container {
|
||||
flex: 1 1 0;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user