diff --git a/api/api/consumers.py b/api/api/consumers.py index e4a046b..6d5f6ca 100644 --- a/api/api/consumers.py +++ b/api/api/consumers.py @@ -5,6 +5,7 @@ from channels.generic.websocket import WebsocketConsumer class MediaConsumer(WebsocketConsumer): def connect(self): self.accept() + self.file_uuid = [] # List to store file uuids self.send(text_data=json.dumps({ "message": "Connected to WebSocket server!" })) @@ -12,11 +13,17 @@ class MediaConsumer(WebsocketConsumer): def receive(self, text_data): data = json.loads(text_data) message = data.get("message", "") - - if message == "ping": + + # If message contains a file UUID, store it + if "file_uuid" in data: + uuid = data["file_uuid"] + self.file_uuid.append(uuid) + self.send(text_data=json.dumps({"response": f"UUID {uuid} stored."})) + elif message == "ping": self.send(text_data=json.dumps({"response": "pong"})) else: self.send(text_data=json.dumps({"response": f"Received: {message}"})) def disconnect(self, close_code): - print("Disconnected from Websocket") \ No newline at end of file + print("Disconnected from Websocket") + print("Stored file UUIDs:", self.file_uuid) \ No newline at end of file diff --git a/client/src/Pages/UploadPage.tsx b/client/src/Pages/UploadPage.tsx index ed40adc..0dc6379 100644 --- a/client/src/Pages/UploadPage.tsx +++ b/client/src/Pages/UploadPage.tsx @@ -16,12 +16,14 @@ import { Movie as MovieIcon, } from "@mui/icons-material"; import StepperComponent from "../components/StepperComponent"; +import { useWebSocket } from "../contexts/WebSocketContext"; import { useMediaContext } from "../contexts/MediaContext"; import { formatLogMessage } from "../utils/logUtils"; function UploadPage() { const navigate = useNavigate(); const theme = useTheme(); + const { socket, isConnected } = useWebSocket(); const { setMediaFile, setResponse, response, setLogs } = useMediaContext(); const [file, setFile] = useState(null); const [isDragging, setIsDragging] = useState(false); @@ -141,6 +143,12 @@ function UploadPage() { spectrogram: res.data.spectrogram, spec_sr: res.data.spec_sr })); + if (socket && isConnected){ + socket.send(JSON.stringify({ file_uuid: res.data.file_uuid })) + } else { + console.error("Websocket not connected!"); + } + setUpload(true); setLogs((prevLogs) => [...prevLogs, formatLogMessage(`freqsplit/input: Uploaded file successfully`)]) setLogs((prevLogs) => [...prevLogs, formatLogMessage(`freqsplit/input: file_uuid: ${res.data.file_uuid}`)])