diff --git a/astro/public/scripts/ntfy.js b/astro/public/scripts/ntfy.js index 36d4e3e..6938cba 100644 --- a/astro/public/scripts/ntfy.js +++ b/astro/public/scripts/ntfy.js @@ -1,3 +1,6 @@ +// i deeply apologize for the horrors within... +const ntfyEndpoint = "https://ntfy.ouroboros.group/beep" + const ntfyMessage = document.getElementById("ntfy-message"); const ntfyTitle = document.getElementById("ntfy-title"); const ntfyAttach = document.getElementById("ntfy-attach"); @@ -13,10 +16,33 @@ const titleBoxLabel = document.getElementById("titleBoxLabel"); const attachmentBoxLabel = document.getElementById("attachBoxLabel"); const clickBoxLabel = document.getElementById("clickBoxLabel"); -const msgPFX = "message: " +const optionsEnabled = sessionStorage.getItem("optionsEnabled"); +const titleEnabled = sessionStorage.getItem("optionsEnabled"); +const attachmentEnabled = sessionStorage.getItem("optionsEnabled"); +const clickEnabled = sessionStorage.getItem("optionsEnabled"); + +const msgPFX = "message: "; + +function checkBoxes() { + if (optionsEnabled) { + optionsCheck.checked = true; + toggleOptions(); + } + if (titleEnabled) { + titleCheck.checked = true; + toggleTitle(); + } + if (attachmentEnabled) { + attachmentCheck.checked = true; + toggleAttach(); + } + if (clickEnabled) { + clickCheck.checked = true; + toggleClick(); + } +} // Random placeholder - function getPlaceholder() { placeholderSelector = Math.floor(Math.random() * 8) + 1; switch (placeholderSelector) { @@ -39,12 +65,10 @@ function getPlaceholder() { ntfyMessage.placeholder = `${msgPFX}the organization is after you.`; break; case 7: - ntfyMessage.placeholder = - `${msgPFX}you wouldnt happen to know where an IBN5100 is, would you?`; + ntfyMessage.placeholder = `${msgPFX}you wouldnt happen to know where an IBN5100 is, would you?`; break; case 8: - ntfyMessage.placeholder = - `${msgPFX}if you had to choose, between: bacon, unlimited bacon, but no games. or. games. unlimited games, but no games. which would you pick?`; + ntfyMessage.placeholder = `${msgPFX}if you had to choose, between: bacon, unlimited bacon, but no games. or. games. unlimited games, but no games. which would you pick?`; break; case 9: ntfyMessage.placeholder = `${msgPFX}time travel?`; @@ -54,10 +78,20 @@ function getPlaceholder() { } } -// send function -function send(message, title, attachment, click) { +// send functions + +// only message +function sendNone(message) { const r = new XMLHttpRequest(); - r.open("POST", "https://ntfy.ouroboros.group/beep", true); + r.open("POST", ntfyEndpoint, true); + r.setRequestHeader("Content-Type", "text/plain"); + r.send(message); +} + +// send all +function sendAll(title, message, attachment, click) { + const r = new XMLHttpRequest(); + r.open("POST", ntfyEndpoint, true); r.setRequestHeader("Content-Type", "text/plain"); r.setRequestHeader("Title", title); r.setRequestHeader("Attach", attachment); @@ -65,12 +99,117 @@ function send(message, title, attachment, click) { r.send(message); } +// send title only +function sendTitle(title, message) { + const r = new XMLHttpRequest(); + r.open("POST", ntfyEndpoint, true); + r.setRequestHeader("Content-Type", "text/plain"); + r.setRequestHeader("Title", title); + r.send(message); +} + +// send attachment only +function sendAttach(message, attachment) { + const r = new XMLHttpRequest(); + r.open("POST", ntfyEndpoint, true); + r.setRequestHeader("Content-Type", "text/plain"); + r.setRequestHeader("Attach", attachment); + r.send(message); +} + +// send click only +function sendClick(message, click) { + const r = new XMLHttpRequest(); + r.open("POST", ntfyEndpoint, true); + r.setRequestHeader("Content-Type", "text/plain"); + r.setRequestHeader("Click", click); + r.send(message); +} + +// send Title & Attachment +function sendTitleAttach(title, message, attachment) { + const r = new XMLHttpRequest(); + r.open("POST", ntfyEndpoint, true); + r.setRequestHeader("Content-Type", "text/plain"); + r.setRequestHeader("Title", title); + r.setRequestHeader("Attach", attachment); + r.send(message); +} + +// send Title & Click +function sendTitleClick(title, message, click) { + const r = new XMLHttpRequest(); + r.open("POST", ntfyEndpoint, true); + r.setRequestHeader("Content-Type", "text/plain"); + r.setRequestHeader("Title", title); + r.setRequestHeader("Click", click); + r.send(message); +} + +// send Attach & Click +function sendAttachClick(message, attachment, click) { + const r = new XMLHttpRequest(); + r.open("POST", ntfyEndpoint, true); + r.setRequestHeader("Content-Type", "text/plain"); + r.setRequestHeader("Attach", attachment); + r.setRequestHeader("Click", click); + r.send(message); +} + // send notification function sendNotification() { - send(ntfyTitle.value, ntfyMessage.value, ntfyAttach.value, ntfyClickAction.value); - ntfyTitle.value = ""; - ntfyAttach.value = ""; - ntfyClickAction.value = ""; + // title only + if (titleEnabled && !attachmentEnabled && !clickEnabled) { + sendTitle(ntfyTitle.value, ntfyMessage.value); + ntfyTitle.value = ""; + ntfyMessage.value = ""; + } + // attachment only + if (!titleEnabled && attachmentEnabled && !clickEnabled) { + sendAttach(ntfyMessage.value, ntfyAttach.value); + ntfyMessage.value = ""; + ntfyAttach.value = ""; + } + // click only + if (!titleEnabled && !attachmentEnabled && clickEnabled) { + sendClick(ntfyMessage.value, ntfyClickAction.value); + ntfyMessage.value = ""; + ntfyClickAction.value = ""; + } + // title & attachment + if (titleEnabled && attachmentEnabled && !clickEnabled) { + sendTitleAttach(ntfyTitle.value, ntfyMessage.value, ntfyAttach.value); + ntfyTitle.value = ""; + ntfyMessage.value = ""; + ntfyAttach.value = ""; + } + // title & click + if (titleEnabled && !attachmentEnabled && clickEnabled) { + sendTitleClick(ntfyTitle.value, ntfyMessage.value, ntfyClickAction.value); + ntfyTitle.value = ""; + ntfyMessage.value = ""; + ntfyClickAction.value = ""; + } + // attachment & click + if (!titleEnabled && attachmentEnabled && clickEnabled) { + sendAttachClick(ntfyMessage.value, ntfyAttach.value, ntfyClickAction.value); + ntfyAttach.value = ""; + ntfyMessage.value = ""; + ntfyClickAction.value = ""; + } + // all three + if (titleEnabled && attachmentEnabled && clickEnabled) { + sendAll(ntfyTitle.value, ntfyMessage.value, ntfyAttach.value, ntfyClickAction.value); + ntfyTitle.value = ""; + ntfyMessage.value = ""; + ntfyAttach.value = ""; + ntfyClickAction.value = ""; + } + // none + else { + sendNone(ntfyMessage.value); + ntfyMessage.value = ""; + } } // on send button click @@ -92,6 +231,7 @@ async function ntfyClick() { function toggleOptions() { if (optionsCheck.checked) { + sessionStorage.setItem("optionsEnabled", 1); titleBoxLabel.style.display = "initial"; attachmentBoxLabel.style.display = "initial"; clickBoxLabel.style.display = "initial"; @@ -100,6 +240,7 @@ function toggleOptions() { clickCheck.style.display = "initial"; } if (!optionsCheck.checked) { + sessionStorage.removeItem("optionsEnabled"); titleBoxLabel.style.display = "none"; attachmentBoxLabel.style.display = "none"; clickBoxLabel.style.display = "none"; @@ -111,27 +252,33 @@ function toggleOptions() { function toggleTitle() { if (titleCheck.checked) { - ntfyTitle.style.display = "initial" + sessionStorage.setItem("titleEnabled", 1); + ntfyTitle.style.display = "initial"; } if (!titleCheck.checked) { - ntfyTitle.style.display = "none" + sessionStorage.removeItem("titleEnabled"); + ntfyTitle.style.display = "none"; } } function toggleAttach() { if (attachmentCheck.checked) { - ntfyAttach.style.display = "initial" + sessionStorage.setItem("attachmentEnabled", 1); + ntfyAttach.style.display = "initial"; } if (!attachmentCheck.checked) { - ntfyAttach.style.display = "none" + sessionStorage.removeItem("attachmentEnabled"); + ntfyAttach.style.display = "none"; } } function toggleClick() { if (clickCheck.checked) { - ntfyClickAction.style.display = "initial" + sessionStorage.setItem("clickEnabled", 1); + ntfyClickAction.style.display = "initial"; } if (!clickCheck.checked) { - ntfyClickAction.style.display = "none" + sessionStorage.removeItem("clickEnabled"); + ntfyClickAction.style.display = "none"; } -} \ No newline at end of file +} diff --git a/astro/public/scripts/sga.js b/astro/public/scripts/sga.js index bbc932e..9df1d96 100644 --- a/astro/public/scripts/sga.js +++ b/astro/public/scripts/sga.js @@ -1,4 +1,4 @@ -function getSGAStates() { +function getSGAState() { if (sessionStorage.getItem("sgaEnabled")) { enableSGA(); } diff --git a/astro/src/components/main-page/widgets/ntfy.astro b/astro/src/components/main-page/widgets/ntfy.astro index ddda693..678b7bf 100644 --- a/astro/src/components/main-page/widgets/ntfy.astro +++ b/astro/src/components/main-page/widgets/ntfy.astro @@ -10,10 +10,10 @@
- - - - + + + +