From 303d7719518d28ec9e9b20f2ee625cf40098d1f4 Mon Sep 17 00:00:00 2001 From: jcorporation Date: Sun, 2 Jun 2024 21:05:21 +0200 Subject: [PATCH] Feat: Add scripts for MPD channels --- Channel/ChannelReadMessages.lua | 14 ++++++++++++++ Channel/ChannelSendMessage.lua | 15 +++++++++++++++ Channel/ChannelSubscribe.lua | 14 ++++++++++++++ Channel/README.md | 9 +++++++++ 4 files changed, 52 insertions(+) create mode 100644 Channel/ChannelReadMessages.lua create mode 100644 Channel/ChannelSendMessage.lua create mode 100644 Channel/ChannelSubscribe.lua create mode 100644 Channel/README.md diff --git a/Channel/ChannelReadMessages.lua b/Channel/ChannelReadMessages.lua new file mode 100644 index 0000000..2da377a --- /dev/null +++ b/Channel/ChannelReadMessages.lua @@ -0,0 +1,14 @@ +-- {"order":1,"arguments":[]} + +local rc, result = mympd.api("MYMPD_API_CHANNEL_MESSAGES_READ", {}) + +if rc == 1 or result.totalEntities == 0 then + return +end + +local messages = "" +for _, msg in pairs(result.data) do + messages = messages .. msg.channel .. ": " .. msg.message +end + +return messages diff --git a/Channel/ChannelSendMessage.lua b/Channel/ChannelSendMessage.lua new file mode 100644 index 0000000..6f4a47b --- /dev/null +++ b/Channel/ChannelSendMessage.lua @@ -0,0 +1,15 @@ +-- {"order":1,"arguments":["channel", "message"]} + +local channel = mympd_arguments.channel +if not channel or channel == "" then + channel = "myMPD" +end + +local rc, result = mympd.api("MYMPD_API_CHANNEL_MESSAGE_SEND", { + channel = channel, + message = mympd_arguments.message +}) + +if rc == 1 then + return "Failure sending message: " .. result.data.msg +end diff --git a/Channel/ChannelSubscribe.lua b/Channel/ChannelSubscribe.lua new file mode 100644 index 0000000..9431e25 --- /dev/null +++ b/Channel/ChannelSubscribe.lua @@ -0,0 +1,14 @@ +-- {"order":1,"arguments":["channel"]} + +local channel = mympd_arguments.channel +if not channel or channel == "" then + channel = "myMPD" +end + +local rc, result = mympd.api("MYMPD_API_CHANNEL_SUBSCRIBE", { + channel = channel +}) + +if rc == 1 then + return "Failure subscribing to the channel: " .. result.data.msg +end diff --git a/Channel/README.md b/Channel/README.md new file mode 100644 index 0000000..a6067a0 --- /dev/null +++ b/Channel/README.md @@ -0,0 +1,9 @@ +# Channel + +Scripts for MPD channels. + +| SCRIPT | DESCRIPTION | +| ------ | ----------- | +| `ChannelSubscribe.lua` | Subscribes to a channel. Connect it to the `mympd_connected` event to subscribe myMPD to a channel. | +| `ChannelReadMessages.lua` | Reads all messages from a channel. Connect it to the `mpd_message` to receive messages. | +| `ChannelSendMessage.lua` | Sends a message to a channel. |