This commit is contained in:
nelle 2024-09-03 16:58:14 -06:00
parent 997a7cdc47
commit 5adcad0685
4 changed files with 173 additions and 26 deletions

View file

@ -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 ntfyMessage = document.getElementById("ntfy-message");
const ntfyTitle = document.getElementById("ntfy-title"); const ntfyTitle = document.getElementById("ntfy-title");
const ntfyAttach = document.getElementById("ntfy-attach"); const ntfyAttach = document.getElementById("ntfy-attach");
@ -13,10 +16,33 @@ const titleBoxLabel = document.getElementById("titleBoxLabel");
const attachmentBoxLabel = document.getElementById("attachBoxLabel"); const attachmentBoxLabel = document.getElementById("attachBoxLabel");
const clickBoxLabel = document.getElementById("clickBoxLabel"); 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 // Random placeholder
function getPlaceholder() { function getPlaceholder() {
placeholderSelector = Math.floor(Math.random() * 8) + 1; placeholderSelector = Math.floor(Math.random() * 8) + 1;
switch (placeholderSelector) { switch (placeholderSelector) {
@ -39,12 +65,10 @@ function getPlaceholder() {
ntfyMessage.placeholder = `${msgPFX}the organization is after you.`; ntfyMessage.placeholder = `${msgPFX}the organization is after you.`;
break; break;
case 7: case 7:
ntfyMessage.placeholder = ntfyMessage.placeholder = `${msgPFX}you wouldnt happen to know where an IBN5100 is, would you?`;
`${msgPFX}you wouldnt happen to know where an IBN5100 is, would you?`;
break; break;
case 8: case 8:
ntfyMessage.placeholder = 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?`;
`${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; break;
case 9: case 9:
ntfyMessage.placeholder = `${msgPFX}time travel?`; ntfyMessage.placeholder = `${msgPFX}time travel?`;
@ -54,10 +78,20 @@ function getPlaceholder() {
} }
} }
// send function // send functions
function send(message, title, attachment, click) {
// only message
function sendNone(message) {
const r = new XMLHttpRequest(); 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("Content-Type", "text/plain");
r.setRequestHeader("Title", title); r.setRequestHeader("Title", title);
r.setRequestHeader("Attach", attachment); r.setRequestHeader("Attach", attachment);
@ -65,12 +99,117 @@ function send(message, title, attachment, click) {
r.send(message); 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 // send notification
function sendNotification() { function sendNotification() {
send(ntfyTitle.value, ntfyMessage.value, ntfyAttach.value, ntfyClickAction.value); // title only
if (titleEnabled && !attachmentEnabled && !clickEnabled) {
sendTitle(ntfyTitle.value, ntfyMessage.value);
ntfyTitle.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 = ""; ntfyAttach.value = "";
ntfyClickAction.value = ""; ntfyClickAction.value = "";
}
// none
else {
sendNone(ntfyMessage.value);
ntfyMessage.value = "";
}
} }
// on send button click // on send button click
@ -92,6 +231,7 @@ async function ntfyClick() {
function toggleOptions() { function toggleOptions() {
if (optionsCheck.checked) { if (optionsCheck.checked) {
sessionStorage.setItem("optionsEnabled", 1);
titleBoxLabel.style.display = "initial"; titleBoxLabel.style.display = "initial";
attachmentBoxLabel.style.display = "initial"; attachmentBoxLabel.style.display = "initial";
clickBoxLabel.style.display = "initial"; clickBoxLabel.style.display = "initial";
@ -100,6 +240,7 @@ function toggleOptions() {
clickCheck.style.display = "initial"; clickCheck.style.display = "initial";
} }
if (!optionsCheck.checked) { if (!optionsCheck.checked) {
sessionStorage.removeItem("optionsEnabled");
titleBoxLabel.style.display = "none"; titleBoxLabel.style.display = "none";
attachmentBoxLabel.style.display = "none"; attachmentBoxLabel.style.display = "none";
clickBoxLabel.style.display = "none"; clickBoxLabel.style.display = "none";
@ -111,27 +252,33 @@ function toggleOptions() {
function toggleTitle() { function toggleTitle() {
if (titleCheck.checked) { if (titleCheck.checked) {
ntfyTitle.style.display = "initial" sessionStorage.setItem("titleEnabled", 1);
ntfyTitle.style.display = "initial";
} }
if (!titleCheck.checked) { if (!titleCheck.checked) {
ntfyTitle.style.display = "none" sessionStorage.removeItem("titleEnabled");
ntfyTitle.style.display = "none";
} }
} }
function toggleAttach() { function toggleAttach() {
if (attachmentCheck.checked) { if (attachmentCheck.checked) {
ntfyAttach.style.display = "initial" sessionStorage.setItem("attachmentEnabled", 1);
ntfyAttach.style.display = "initial";
} }
if (!attachmentCheck.checked) { if (!attachmentCheck.checked) {
ntfyAttach.style.display = "none" sessionStorage.removeItem("attachmentEnabled");
ntfyAttach.style.display = "none";
} }
} }
function toggleClick() { function toggleClick() {
if (clickCheck.checked) { if (clickCheck.checked) {
ntfyClickAction.style.display = "initial" sessionStorage.setItem("clickEnabled", 1);
ntfyClickAction.style.display = "initial";
} }
if (!clickCheck.checked) { if (!clickCheck.checked) {
ntfyClickAction.style.display = "none" sessionStorage.removeItem("clickEnabled");
ntfyClickAction.style.display = "none";
} }
} }

View file

@ -1,4 +1,4 @@
function getSGAStates() { function getSGAState() {
if (sessionStorage.getItem("sgaEnabled")) { if (sessionStorage.getItem("sgaEnabled")) {
enableSGA(); enableSGA();
} }

View file

@ -10,10 +10,10 @@
<br> <br>
<!-- TEXT AREAS --> <!-- TEXT AREAS -->
<div> <div>
<textarea id="ntfy-title" placeholder="title" rows=1 style="resize: none; display: none;"></textarea> <textarea id="ntfy-title" placeholder="title: Title" rows=1 style="resize: none; display: none;"></textarea>
<textarea id="ntfy-message" placeholder="message" rows=2></textarea> <textarea id="ntfy-message" placeholder="message: hello!" rows=2></textarea>
<textarea id="ntfy-attach" placeholder="attachment link" rows=1 style="resize: none;display: none;"></textarea> <textarea id="ntfy-attach" placeholder="attachment: https://http.cat/images/100.jpg" rows=1 style="resize: none;display: none;"></textarea>
<textarea id="ntfy-click" placeholder="click link" rows=1 style="resize: none; display: none;"></textarea> <textarea id="ntfy-click" placeholder="click: https://www.youtube.com/watch?v=dQw4w9WgXcQ" rows=1 style="resize: none; display: none;"></textarea>
</div> </div>
<button <button
class="custom-btn btn-1" class="custom-btn btn-1"

View file

@ -16,7 +16,7 @@ const { title } = Astro.props;
<head> <head>
<Head title={title} /> <Head title={title} />
</head> </head>
<body onload="getSGAState(), redirect(), getPlaceholder()" id="body"> <body onload="checkBoxes(), getSGAState(), redirect(), getPlaceholder()" id="body">
<Header /> <Header />
<section class="content center"> <section class="content center">
<h1 class="title">{title}</h1> <h1 class="title">{title}</h1>