Add configurable skip delay (0-30s) for Skip Intro and Skip Credits
This commit is contained in:
1 parent
0f1f2a309e
commit
b2082d0624
9 files changed
+333
-21
No files matched your search
@@ -4,6 +4,10 @@ document.addEventListener("DOMContentLoaded", () => {
|
||||
const customUrl = document.getElementById("customUrl");
|
||||
const skipIntro = document.getElementById("skipIntro");
|
||||
const skipCredits = document.getElementById("skipCredits");
|
||||
const introDelay = document.getElementById("introDelay");
|
||||
const introDelayValue = document.getElementById("introDelayValue");
|
||||
const creditsDelay = document.getElementById("creditsDelay");
|
||||
const creditsDelayValue = document.getElementById("creditsDelayValue");
|
||||
const saveBtn = document.getElementById("saveBtn");
|
||||
const status = document.getElementById("status");
|
||||
|
||||
@@ -11,7 +15,24 @@ document.addEventListener("DOMContentLoaded", () => {
|
||||
customUrlRow.style.display = urlPreset.value === "custom" ? "block" : "none";
|
||||
}
|
||||
|
||||
function formatDelay(seconds) {
|
||||
return seconds + "s";
|
||||
}
|
||||
|
||||
function updateDelayEnabled() {
|
||||
introDelay.disabled = !skipIntro.checked;
|
||||
creditsDelay.disabled = !skipCredits.checked;
|
||||
}
|
||||
|
||||
urlPreset.addEventListener("change", toggleCustomRow);
|
||||
skipIntro.addEventListener("change", updateDelayEnabled);
|
||||
skipCredits.addEventListener("change", updateDelayEnabled);
|
||||
introDelay.addEventListener("input", () => {
|
||||
introDelayValue.textContent = formatDelay(introDelay.value);
|
||||
});
|
||||
creditsDelay.addEventListener("input", () => {
|
||||
creditsDelayValue.textContent = formatDelay(creditsDelay.value);
|
||||
});
|
||||
|
||||
chrome.storage.sync.get(DEFAULT_SETTINGS, (settings) => {
|
||||
if (settings.plexUrl === DEFAULT_SETTINGS.plexUrl) {
|
||||
@@ -22,7 +43,14 @@ document.addEventListener("DOMContentLoaded", () => {
|
||||
}
|
||||
skipIntro.checked = settings.skipIntro;
|
||||
skipCredits.checked = settings.skipCredits;
|
||||
|
||||
introDelay.value = clampDelaySeconds(settings.introDelaySeconds);
|
||||
introDelayValue.textContent = formatDelay(introDelay.value);
|
||||
creditsDelay.value = clampDelaySeconds(settings.creditsDelaySeconds);
|
||||
creditsDelayValue.textContent = formatDelay(creditsDelay.value);
|
||||
|
||||
toggleCustomRow();
|
||||
updateDelayEnabled();
|
||||
});
|
||||
|
||||
function showStatus(message, isError) {
|
||||
@@ -54,7 +82,9 @@ document.addEventListener("DOMContentLoaded", () => {
|
||||
{
|
||||
plexUrl: plexUrl,
|
||||
skipIntro: skipIntro.checked,
|
||||
skipCredits: skipCredits.checked
|
||||
skipCredits: skipCredits.checked,
|
||||
introDelaySeconds: clampDelaySeconds(introDelay.value),
|
||||
creditsDelaySeconds: clampDelaySeconds(creditsDelay.value)
|
||||
},
|
||||
() => {
|
||||
showStatus("Saved", false);
|
||||
|
||||
Reference in new issue
Block a user