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 @@