import { MprisPlayer } from "types/service/mpris"; const mpris = await Service.import("mpris"); export const getCurrentPlayer = (activePlayer: MprisPlayer = mpris.players[0]): MprisPlayer => { const statusOrder = { Playing: 1, Paused: 2, Stopped: 3, }; if (mpris.players.length === 0) { return mpris.players[0]; } const isPlaying = mpris.players.some( (p: MprisPlayer) => p.play_back_status === "Playing", ); const playerStillExists = mpris.players.some( (p) => activePlayer.bus_name === p.bus_name ); const nextPlayerUp = mpris.players.sort( (a: MprisPlayer, b: MprisPlayer) => statusOrder[a.play_back_status] - statusOrder[b.play_back_status], )[0]; if (isPlaying || !playerStillExists) { return nextPlayerUp; } return activePlayer; }