335 lines
11 KiB
JavaScript
335 lines
11 KiB
JavaScript
// i deeply apologize for the horrors within...
|
||
const ntfyEndpoint = "https://ntfy.ouroboros.group/beep";
|
||
const meowEndpoint = "https://ntfy.ouroboros.group/meow";
|
||
|
||
const ntfyMessage = document.getElementById("ntfy-message");
|
||
const ntfyTitle = document.getElementById("ntfy-title");
|
||
const ntfyAttach = document.getElementById("ntfy-attach");
|
||
const ntfyClickAction = document.getElementById("ntfy-click");
|
||
const ntfyButton = document.getElementById("ntfy-button");
|
||
const meowButton = document.getElementById("meow-button");
|
||
|
||
const optionsCheck = document.getElementById("optionsCheckbox");
|
||
const titleCheck = document.getElementById("titleCheckbox");
|
||
const attachmentCheck = document.getElementById("attachmentCheckbox");
|
||
const clickCheck = document.getElementById("clickCheckbox");
|
||
|
||
const titleBoxLabel = document.getElementById("titleBoxLabel");
|
||
const attachmentBoxLabel = document.getElementById("attachBoxLabel");
|
||
const clickBoxLabel = document.getElementById("clickBoxLabel");
|
||
const justMeowed = document.getElementById("justMeowed");
|
||
|
||
const optionsEnabled = sessionStorage.getItem("optionsEnabled");
|
||
const titleEnabled = sessionStorage.getItem("optionsEnabled");
|
||
const attachmentEnabled = sessionStorage.getItem("optionsEnabled");
|
||
const clickEnabled = sessionStorage.getItem("optionsEnabled");
|
||
|
||
const titlePFX = "title: ";
|
||
const msgPFX = "message: ";
|
||
const attachPFX = "attachment: ";
|
||
const clickPFX = "click-action: ";
|
||
|
||
// Random placeholder
|
||
function getPlaceholder() {
|
||
placeholderSelector = Math.floor(Math.random() * 8) + 1;
|
||
switch (placeholderSelector) {
|
||
case 1:
|
||
ntfyTitle.placeholder = `${titlePFX}hey there`;
|
||
ntfyMessage.placeholder = `${msgPFX}hi nelle! (。>﹏<。)`;
|
||
break;
|
||
case 2:
|
||
ntfyTitle.placeholder = `${titlePFX}fuck you`;
|
||
ntfyMessage.placeholder = `${msgPFX}(╹◡╹)凸`;
|
||
break;
|
||
case 3:
|
||
ntfyTitle.placeholder = `${titlePFX}confession of sin`;
|
||
ntfyMessage.placeholder = `${msgPFX}I dont like SciAdv`;
|
||
break;
|
||
case 4:
|
||
ntfyTitle.placeholder = `${titlePFX}a funny joke`;
|
||
ntfyMessage.placeholder = `${msgPFX}Knock Knock...`;
|
||
break;
|
||
case 5:
|
||
ntfyTitle.placeholder = `${titlePFX}yes, its me`;
|
||
ntfyMessage.placeholder = `${msgPFX}El. Psy. Kongroo.`;
|
||
break;
|
||
case 6:
|
||
ntfyTitle.placeholder = `${titlePFX}SDXc^73hce1!3&`;
|
||
ntfyMessage.placeholder = `${msgPFX}we're watching you.`;
|
||
break;
|
||
case 7:
|
||
ntfyTitle.placeholder = `${titlePFX}haiiii :3`;
|
||
ntfyMessage.placeholder = `${msgPFX}you wouldnt happen to know where an IBN5100 is, would you?`;
|
||
break;
|
||
case 8:
|
||
ntfyTitle.placeholder = `${titlePFX}an important question`;
|
||
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:
|
||
ntfyTitle.placeholder = `${titlePFX}query`;
|
||
ntfyMessage.placeholder = `${msgPFX}time travel?`;
|
||
break;
|
||
default:
|
||
ntfyTitle.placeholder = `${titlePFX}title the message for some reason?`;
|
||
ntfyMessage.placeholder = `${msgPFX}type some words and hit send.`;
|
||
ntfyAttach.placeholder = `${attachPFX}https://http.cat/images/100.jpg`;
|
||
ntfyClickAction.placeholder = `${clickPFX}https://www.youtube.com/watch?v=dQw4w9WgXcQ`;
|
||
}
|
||
}
|
||
|
||
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();
|
||
}
|
||
}
|
||
function toggleOptions() {
|
||
if (optionsCheck.checked) {
|
||
sessionStorage.setItem("optionsEnabled", 1);
|
||
titleBoxLabel.style.display = "initial";
|
||
attachmentBoxLabel.style.display = "initial";
|
||
clickBoxLabel.style.display = "initial";
|
||
titleCheck.style.display = "initial";
|
||
attachmentCheck.style.display = "initial";
|
||
clickCheck.style.display = "initial";
|
||
}
|
||
if (!optionsCheck.checked) {
|
||
sessionStorage.removeItem("optionsEnabled");
|
||
titleBoxLabel.style.display = "none";
|
||
attachmentBoxLabel.style.display = "none";
|
||
clickBoxLabel.style.display = "none";
|
||
titleCheck.style.display = "none";
|
||
attachmentCheck.style.display = "none";
|
||
clickCheck.style.display = "none";
|
||
}
|
||
}
|
||
function toggleTitle() {
|
||
if (titleCheck.checked) {
|
||
sessionStorage.setItem("titleEnabled", 1);
|
||
ntfyTitle.style.display = "initial";
|
||
}
|
||
if (!titleCheck.checked) {
|
||
sessionStorage.removeItem("titleEnabled");
|
||
ntfyTitle.style.display = "none";
|
||
}
|
||
}
|
||
function toggleAttach() {
|
||
if (attachmentCheck.checked) {
|
||
sessionStorage.setItem("attachmentEnabled", 1);
|
||
ntfyAttach.style.display = "initial";
|
||
}
|
||
if (!attachmentCheck.checked) {
|
||
sessionStorage.removeItem("attachmentEnabled");
|
||
ntfyAttach.style.display = "none";
|
||
}
|
||
}
|
||
function toggleClick() {
|
||
if (clickCheck.checked) {
|
||
sessionStorage.setItem("clickEnabled", 1);
|
||
ntfyClickAction.style.display = "initial";
|
||
}
|
||
if (!clickCheck.checked) {
|
||
sessionStorage.removeItem("clickEnabled");
|
||
ntfyClickAction.style.display = "none";
|
||
}
|
||
}
|
||
|
||
// on send button click
|
||
async function meowClick() { meowButton.disabled=true;
|
||
setTimeout('meowButton.disabled=false;',11000);
|
||
meowButton.innerHTML = "<span>Sent! :3</span>";
|
||
sendNone(meowEndpoint, "meow");
|
||
setTimeout(() => {
|
||
meowButton.innerHTML = "<span>cooldown 10s</span>";
|
||
setTimeout(() => {
|
||
meowButton.innerHTML = "<span>cooldown 9s</span>";
|
||
setTimeout(() => {
|
||
meowButton.innerHTML = "<span>cooldown 8s</span>";
|
||
setTimeout(() => {
|
||
meowButton.innerHTML = "<span>cooldown 7s</span>";
|
||
setTimeout(() => {
|
||
meowButton.innerHTML = "<span>cooldown 6s</span>";
|
||
setTimeout(() => {
|
||
meowButton.innerHTML = "<span>cooldown 5s</span>";
|
||
setTimeout(() => {
|
||
meowButton.innerHTML = "<span>cooldown 4s</span>";
|
||
setTimeout(() => {
|
||
meowButton.innerHTML = "<span>cooldown 3s</span>";
|
||
setTimeout(() => {
|
||
meowButton.innerHTML = "<span>cooldown 2s</span>";
|
||
setTimeout(() => {
|
||
meowButton.innerHTML = "<span>cooldown 1s</span>";
|
||
setTimeout(() => {
|
||
meowButton.innerHTML = "<span>meow</span>";
|
||
}, 1000);
|
||
}, 1000);
|
||
}, 1000);
|
||
}, 1000);
|
||
}, 1000);
|
||
}, 1000);
|
||
}, 1000);
|
||
}, 1000);
|
||
}, 1000);
|
||
}, 1000);
|
||
}, 1000);
|
||
}
|
||
|
||
// on send button click
|
||
async function ntfyClick() {
|
||
if (!ntfyMessage.value.replace(/\s/g, "").length) {
|
||
ntfyButton.innerHTML = "<span>ಠ﹏ಠ</span>";
|
||
setTimeout(() => {
|
||
ntfyButton.innerHTML = "<span>Send</span>";
|
||
return;
|
||
}, 1000);
|
||
} else {
|
||
ntfyButton.innerHTML = "<span>Sent! ( ꈍᴗꈍ)</span>";
|
||
sendNotification();
|
||
setTimeout(() => {
|
||
ntfyButton.innerHTML = "<span>Send</span>";
|
||
}, 1000);
|
||
}
|
||
}
|
||
|
||
// only message
|
||
function sendNone(endpoint, message) {
|
||
const r = new XMLHttpRequest();
|
||
r.open("POST", endpoint, true);
|
||
r.setRequestHeader("Content-Type", "text/plain");
|
||
r.send(message);
|
||
}
|
||
// send all
|
||
function sendAll(endpoint, title, message, attachment, click) {
|
||
const r = new XMLHttpRequest();
|
||
r.open("POST", endpoint, true);
|
||
r.setRequestHeader("Content-Type", "text/plain");
|
||
r.setRequestHeader("Title", title);
|
||
r.setRequestHeader("Attach", attachment);
|
||
r.setRequestHeader("Click", click);
|
||
r.send(message);
|
||
}
|
||
// send title only
|
||
function sendTitle(endpoint, title, message) {
|
||
const r = new XMLHttpRequest();
|
||
r.open("POST", endpoint, true);
|
||
r.setRequestHeader("Content-Type", "text/plain");
|
||
r.setRequestHeader("Title", title);
|
||
r.send(message);
|
||
}
|
||
// send attachment only
|
||
function sendAttach(endpoint, message, attachment) {
|
||
const r = new XMLHttpRequest();
|
||
r.open("POST", endpoint, true);
|
||
r.setRequestHeader("Content-Type", "text/plain");
|
||
r.setRequestHeader("Attach", attachment);
|
||
r.send(message);
|
||
}
|
||
// send click only
|
||
function sendClick(endpoint, message, click) {
|
||
const r = new XMLHttpRequest();
|
||
r.open("POST", endpoint, true);
|
||
r.setRequestHeader("Content-Type", "text/plain");
|
||
r.setRequestHeader("Click", click);
|
||
r.send(message);
|
||
}
|
||
// send Title & Attachment
|
||
function sendTitleAttach(endpoint, title, message, attachment) {
|
||
const r = new XMLHttpRequest();
|
||
r.open("POST", endpoint, true);
|
||
r.setRequestHeader("Content-Type", "text/plain");
|
||
r.setRequestHeader("Title", title);
|
||
r.setRequestHeader("Attach", attachment);
|
||
r.send(message);
|
||
}
|
||
// send Title & Click
|
||
function sendTitleClick(endpoint, title, message, click) {
|
||
const r = new XMLHttpRequest();
|
||
r.open("POST", endpoint, true);
|
||
r.setRequestHeader("Content-Type", "text/plain");
|
||
r.setRequestHeader("Title", title);
|
||
r.setRequestHeader("Click", click);
|
||
r.send(message);
|
||
}
|
||
// send Attach & Click
|
||
function sendAttachClick(endpoint, message, attachment, click) {
|
||
const r = new XMLHttpRequest();
|
||
r.open("POST", endpoint, true);
|
||
r.setRequestHeader("Content-Type", "text/plain");
|
||
r.setRequestHeader("Attach", attachment);
|
||
r.setRequestHeader("Click", click);
|
||
r.send(message);
|
||
}
|
||
|
||
// send notification
|
||
function sendNotification() {
|
||
// title only
|
||
if (titleEnabled && !attachmentEnabled && !clickEnabled) {
|
||
sendTitle(ntfyTitle.value, ntfyMessage.value);
|
||
ntfyTitle.value = "";
|
||
ntfyMessage.value = "";
|
||
}
|
||
// attachment only
|
||
if (!titleEnabled && attachmentEnabled && !clickEnabled) {
|
||
sendAttach(ntfyEndpoint, ntfyMessage.value, ntfyAttach.value);
|
||
ntfyMessage.value = "";
|
||
ntfyAttach.value = "";
|
||
}
|
||
// click only
|
||
if (!titleEnabled && !attachmentEnabled && clickEnabled) {
|
||
sendClick(ntfyEndpoint, ntfyMessage.value, ntfyClickAction.value);
|
||
ntfyMessage.value = "";
|
||
ntfyClickAction.value = "";
|
||
}
|
||
// title & attachment
|
||
if (titleEnabled && attachmentEnabled && !clickEnabled) {
|
||
sendTitleAttach(ntfyEndpoint, ntfyTitle.value, ntfyMessage.value, ntfyAttach.value);
|
||
ntfyTitle.value = "";
|
||
ntfyMessage.value = "";
|
||
ntfyAttach.value = "";
|
||
}
|
||
// title & click
|
||
if (titleEnabled && !attachmentEnabled && clickEnabled) {
|
||
sendTitleClick(ntfyEndpoint, ntfyTitle.value, ntfyMessage.value, ntfyClickAction.value);
|
||
ntfyTitle.value = "";
|
||
ntfyMessage.value = "";
|
||
ntfyClickAction.value = "";
|
||
}
|
||
// attachment & click
|
||
if (!titleEnabled && attachmentEnabled && clickEnabled) {
|
||
sendAttachClick(ntfyEndpoint, ntfyMessage.value, ntfyAttach.value, ntfyClickAction.value);
|
||
ntfyAttach.value = "";
|
||
ntfyMessage.value = "";
|
||
ntfyClickAction.value = "";
|
||
}
|
||
// all three
|
||
if (titleEnabled && attachmentEnabled && clickEnabled) {
|
||
sendAll(
|
||
ntfyEndpoint,
|
||
ntfyTitle.value,
|
||
ntfyMessage.value,
|
||
ntfyAttach.value,
|
||
ntfyClickAction.value
|
||
);
|
||
ntfyTitle.value = "";
|
||
ntfyMessage.value = "";
|
||
ntfyAttach.value = "";
|
||
ntfyClickAction.value = "";
|
||
}
|
||
// none
|
||
else {
|
||
sendNone(ntfyEndpoint, ntfyMessage.value);
|
||
ntfyMessage.value = "";
|
||
}
|
||
}
|