From dcfc6b33dad0328437a830fd742e977e4ebdab0f Mon Sep 17 00:00:00 2001 From: lambda Date: Sat, 20 Jan 2024 21:35:13 +0300 Subject: [PATCH] feat: use message-processor library --- src/main.js | 4 ++++ src/messagesProcessor.js | 22 +++++----------------- src/websocket.js | 4 ++-- 3 files changed, 11 insertions(+), 19 deletions(-) diff --git a/src/main.js b/src/main.js index 3e5f170..01439dc 100644 --- a/src/main.js +++ b/src/main.js @@ -1,5 +1,9 @@ import { addPlayerInteractions, hideAudio } from "./interactions.js"; import { connectToServer } from "./websocket.js"; +import { actions } from "./messagesProcessor.js"; +import { messageProcessor } from "@radioiceberg/message-processor"; + +messageProcessor.actions = actions; const main = () => { hideAudio(); diff --git a/src/messagesProcessor.js b/src/messagesProcessor.js index 99f817a..29784da 100644 --- a/src/messagesProcessor.js +++ b/src/messagesProcessor.js @@ -1,3 +1,4 @@ +import { messageProcessor } from "@radioiceberg/message-processor"; import { artistBlock, titleBlock, logoDot } from "./dom.js"; const changeTitles = ({ artist, title }) => { @@ -32,27 +33,14 @@ const liveEnded = () => { }; const setState = ({ data }) => { - const { lastPlayed } = data; - changeTitles(lastPlayed); + const { lastPlayed, isOnline } = data; + if (lastPlayed) changeTitles(lastPlayed); + if (isOnline) liveStarted(); }; -const actions = { +export const actions = { metadataChange, liveStarted, liveEnded, setState, }; - -export const processMessage = ({ data }) => { - try { - const message = JSON.parse(data); - const action = actions[message.command]; - if (action) { - action(message); - } else { - console.log("no action for", message); - } - } catch (error) { - console.error("Error while process websocket message", error); - } -}; diff --git a/src/websocket.js b/src/websocket.js index 2b00504..a6f22f4 100644 --- a/src/websocket.js +++ b/src/websocket.js @@ -1,8 +1,8 @@ -import { processMessage } from "./messagesProcessor.js"; +import { messageProcessor } from "@radioiceberg/message-processor"; const socketProtocol = location.protocol === "http:" ? "ws:" : "wss:"; export async function connectToServer() { const ws = new WebSocket(`${socketProtocol}//${location.host}/meta`); - ws.addEventListener("message", processMessage); + ws.addEventListener("message", messageProcessor.processMessage); }