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); }