mirror of
https://github.com/radio95-rnt/RadioPlayer.git
synced 2026-07-30 07:49:18 +02:00
add to ui and add remove api
This commit is contained in:
@@ -173,12 +173,10 @@ class Module(ActiveModifier):
|
|||||||
self.skip_next = max(self.skip_next, 0)
|
self.skip_next = max(self.skip_next, 0)
|
||||||
return {"status": "ok", "data": self.skip_next}
|
return {"status": "ok", "data": self.skip_next}
|
||||||
elif data.get("action") == "skipi":
|
elif data.get("action") == "skipi":
|
||||||
idx = data.get("target")
|
if (add := data.get("add")) and isinstance(add, int): self.skip_indexes.add(add)
|
||||||
if not idx or not isinstance(idx, int): return {"status": "data", "data": list(self.skip_indexes)}
|
if (remove := data.get("remove")) is not None and isinstance(remove, int) and remove in self.skip_indexes: self.skip_indexes.remove(remove)
|
||||||
self.skip_indexes.add(idx)
|
|
||||||
return {"status": "ok", "data": list(self.skip_indexes)}
|
return {"status": "ok", "data": list(self.skip_indexes)}
|
||||||
|
|
||||||
|
|
||||||
activemod = Module()
|
activemod = Module()
|
||||||
|
|
||||||
# This is free and unencumbered software released into the public domain.
|
# This is free and unencumbered software released into the public domain.
|
||||||
|
|||||||
@@ -199,6 +199,7 @@
|
|||||||
<button id="skpn-inc" class="btn" style="padding:4px 10px;border:none">+</button>
|
<button id="skpn-inc" class="btn" style="padding:4px 10px;border:none">+</button>
|
||||||
</div>
|
</div>
|
||||||
<button id="jingle-btn" class="btn">🕭 Jingle</button>
|
<button id="jingle-btn" class="btn">🕭 Jingle</button>
|
||||||
|
<button id="skipidx-btn" class="btn">⏭+ Skip in playlist</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -257,6 +257,14 @@ document.getElementById("jingle-btn").addEventListener("contextmenu", (e) => {
|
|||||||
});
|
});
|
||||||
document.getElementById("clear-btn").addEventListener("click", () => ws.send(JSON.stringify({action:"clear_toplay"})));
|
document.getElementById("clear-btn").addEventListener("click", () => ws.send(JSON.stringify({action:"clear_toplay"})));
|
||||||
|
|
||||||
|
document.getElementById("skipidx-btn").addEventListener("click", () => {
|
||||||
|
if (selectedPlaylistIndex == null) return;
|
||||||
|
const action = skipped_idx.includes(selectedPlaylistIndex)
|
||||||
|
? { action: "skipi", remove: selectedPlaylistIndex }
|
||||||
|
: { action: "skipi", add: selectedPlaylistIndex };
|
||||||
|
ws.send(JSON.stringify(action));
|
||||||
|
});
|
||||||
|
|
||||||
function addSelectedFileToQueue(top) {
|
function addSelectedFileToQueue(top) {
|
||||||
let fullPath = null;
|
let fullPath = null;
|
||||||
let success = false;
|
let success = false;
|
||||||
@@ -284,6 +292,21 @@ document.getElementById("add-to-queue2-btn").addEventListener("click", () => add
|
|||||||
|
|
||||||
function updateControls() {
|
function updateControls() {
|
||||||
document.getElementById("clear-btn").disabled = Queue.length === 0;
|
document.getElementById("clear-btn").disabled = Queue.length === 0;
|
||||||
|
|
||||||
|
const btn = document.getElementById("skipidx-btn");
|
||||||
|
if (selectedPlaylistIndex == null) {
|
||||||
|
btn.textContent = "⏭+ Skip idx";
|
||||||
|
btn.disabled = true;
|
||||||
|
btn.classList.remove("activated");
|
||||||
|
} else if (skipped_idx.includes(selectedPlaylistIndex)) {
|
||||||
|
btn.textContent = "✓ Unskip idx";
|
||||||
|
btn.disabled = false;
|
||||||
|
btn.classList.add("activated");
|
||||||
|
} else {
|
||||||
|
btn.textContent = "⏭+ Skip idx";
|
||||||
|
btn.disabled = false;
|
||||||
|
btn.classList.remove("activated");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
document.addEventListener("keydown", e => {
|
document.addEventListener("keydown", e => {
|
||||||
|
|||||||
Reference in New Issue
Block a user