Add configurable skip delay (0-30s) for Skip Intro and Skip Credits

This commit is contained in:
justin committed 2026-09-02 16:50:04 -07:00
1 parent 0f1f2a309e
commit b2082d0624
9 files changed
+333 -21

No files matched your search

+31 -1
View File
@@ -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);