mirror of
https://github.com/YouHaveTrouble/HmmAI.git
synced 2026-05-12 06:16:56 +00:00
advanced responses
This commit is contained in:
+70
-1
@@ -47,6 +47,16 @@ const description = "An AI that responds with 'Huh'.";
|
|||||||
Check out <a href="https://yht.one" target="_blank">my website</a> while you're already here!
|
Check out <a href="https://yht.one" target="_blank">my website</a> while you're already here!
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="options">
|
||||||
|
<h3>Options</h3>
|
||||||
|
<label>
|
||||||
|
<span>Advanced responses (highly experimental)</span>
|
||||||
|
<input
|
||||||
|
type="checkbox"
|
||||||
|
name="advanced-responses"
|
||||||
|
/>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -59,6 +69,19 @@ const description = "An AI that responds with 'Huh'.";
|
|||||||
const sendButton: HTMLButtonElement | null | undefined = messageForm?.querySelector('button[type="submit"]');
|
const sendButton: HTMLButtonElement | null | undefined = messageForm?.querySelector('button[type="submit"]');
|
||||||
const messagesContainer = document.querySelector(".messages");
|
const messagesContainer = document.querySelector(".messages");
|
||||||
|
|
||||||
|
const optionsContainer = document.querySelector(".options");
|
||||||
|
const advancedResponsesCheckbox = optionsContainer?.querySelector('input[name="advanced-responses"]') as HTMLInputElement | null;
|
||||||
|
advancedResponsesCheckbox?.addEventListener("change", () => {
|
||||||
|
toggleAdvancedResponses(advancedResponsesCheckbox.checked);
|
||||||
|
});
|
||||||
|
|
||||||
|
const defaultOptions = {
|
||||||
|
advancedResponses: false,
|
||||||
|
};
|
||||||
|
|
||||||
|
const options = getOptions();
|
||||||
|
toggleAdvancedResponses(options.advancedResponses)
|
||||||
|
|
||||||
messageInput?.addEventListener("input", () => {
|
messageInput?.addEventListener("input", () => {
|
||||||
if (!sendButton) return;
|
if (!sendButton) return;
|
||||||
sendButton.disabled = !messageInput.value.trim();
|
sendButton.disabled = !messageInput.value.trim();
|
||||||
@@ -76,7 +99,7 @@ const description = "An AI that responds with 'Huh'.";
|
|||||||
addMessage("You", userMessage);
|
addMessage("You", userMessage);
|
||||||
const randomDelay = Math.floor(Math.random() * 1000) + 500;
|
const randomDelay = Math.floor(Math.random() * 1000) + 500;
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
addMessage("HmmAI", "Huh.");
|
addMessage("HmmAI", generateResponse());
|
||||||
messageInput.disabled = false;
|
messageInput.disabled = false;
|
||||||
messageInput.focus();
|
messageInput.focus();
|
||||||
}, randomDelay);
|
}, randomDelay);
|
||||||
@@ -89,4 +112,50 @@ const description = "An AI that responds with 'Huh'.";
|
|||||||
messagesContainer?.prepend(messageElement);
|
messagesContainer?.prepend(messageElement);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function generateResponse(): string {
|
||||||
|
const responses = ["Huh."]
|
||||||
|
if (options.advancedResponses) {
|
||||||
|
responses.push(
|
||||||
|
"Huh?",
|
||||||
|
"Huh!",
|
||||||
|
"Hmm.",
|
||||||
|
"Hmm?",
|
||||||
|
"Hmm!",
|
||||||
|
"Huh...?",
|
||||||
|
"Huh...!",
|
||||||
|
"That's crazy, huh?",
|
||||||
|
"Can you believe that, huh?",
|
||||||
|
"Wow, huh?",
|
||||||
|
"Unbelievable, huh?",
|
||||||
|
"Mind-blowing, huh?",
|
||||||
|
"Astounding, huh?",
|
||||||
|
"Incredible, huh?",
|
||||||
|
"Shocking, huh?",
|
||||||
|
"Surprising, huh?",
|
||||||
|
"Fascinating, huh?",
|
||||||
|
"Interesting, huh?",
|
||||||
|
"That's something, huh?",
|
||||||
|
"Well, huh.",
|
||||||
|
"Anyway, huh.",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return responses[Math.floor(Math.random() * responses.length)];
|
||||||
|
}
|
||||||
|
|
||||||
|
function getOptions() {
|
||||||
|
return localStorage.getItem("options") ? JSON.parse(localStorage.getItem("options") || "{}") : defaultOptions;
|
||||||
|
}
|
||||||
|
|
||||||
|
function saveOptions() {
|
||||||
|
localStorage.setItem("options", JSON.stringify(options));
|
||||||
|
}
|
||||||
|
|
||||||
|
function toggleAdvancedResponses(enabled: boolean) {
|
||||||
|
const advancedResponsesCheckbox = document.querySelector('.options input[name="advanced-responses"]') as HTMLInputElement | null;
|
||||||
|
if (!advancedResponsesCheckbox) return;
|
||||||
|
options["advancedResponses"] = advancedResponsesCheckbox.checked;
|
||||||
|
advancedResponsesCheckbox.checked = options.advancedResponses;
|
||||||
|
saveOptions();
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user