Spaces:
Sleeping
Sleeping
| let ws = null; | |
| function uploadFile() { | |
| const file = document.getElementById("fileInput").files[0]; | |
| if (!file) return alert("Choose a file!"); | |
| const formData = new FormData(); | |
| formData.append("file", file); | |
| // Show spinner | |
| document.getElementById("spinner").style.display = "block"; | |
| fetch("/upload", { method: "POST", body: formData }) | |
| .then(res => res.json()) | |
| .then(data => { | |
| // Hide spinner | |
| document.getElementById("spinner").style.display = "none"; | |
| if (data.status === "success") { | |
| document.getElementById("uploadStatus").innerText = "Uploaded!"; | |
| startChat(); | |
| } else { | |
| alert(data.message); | |
| } | |
| }) | |
| .catch(err => { | |
| document.getElementById("spinner").style.display = "none"; | |
| alert("Upload failed"); | |
| }); | |
| } | |
| function startChat() { | |
| ws = new WebSocket(`ws://${location.host}/ws`); | |
| // Show chat card | |
| document.getElementById("chatCard").style.display = "block"; | |
| ws.onmessage = (e) => { | |
| appendMessage("Bot: " + e.data); | |
| }; | |
| } | |
| function sendMessage() { | |
| const input = document.getElementById("msg"); | |
| const text = input.value.trim(); | |
| if (!text) return; | |
| appendMessage("You: " + text); | |
| input.value = ""; | |
| // Show chat spinner | |
| document.getElementById("chatSpinner").style.display = "block"; | |
| // Send message to WebSocket | |
| ws.send(text); | |
| // Wait for backend reply | |
| ws.onmessage = (e) => { | |
| // Hide spinner | |
| document.getElementById("chatSpinner").style.display = "none"; | |
| appendMessage("Bot: " + e.data); | |
| // Keep WebSocket listener alive for next message | |
| ws.onmessage = (e) => { | |
| document.getElementById("chatSpinner").style.display = "none"; | |
| appendMessage("Bot: " + e.data); | |
| }; | |
| }; | |
| } | |
| function appendMessage(msg) { | |
| const box = document.getElementById("messages"); | |
| box.innerHTML += msg + "<br>"; | |
| box.scrollTop = box.scrollHeight; | |
| } | |