From: Samir Benmendil Date: Mon, 10 Aug 2020 20:27:59 +0000 (+0100) Subject: awesome/mpc: add albumart function X-Git-Url: https://git.rmz.io/dotfiles.git/commitdiff_plain/9f1e7dfd8aca63ee47257cb2b797a48ac4aeaeff?ds=sidebyside awesome/mpc: add albumart function The function will send multiple 'albumart' requests and put together the binary response, then call the handler. --- diff --git a/awesome/widgets/mpc.lua b/awesome/widgets/mpc.lua index 4da4a81..a3c5b87 100644 --- a/awesome/widgets/mpc.lua +++ b/awesome/widgets/mpc.lua @@ -235,6 +235,30 @@ function mpc:currentsong() return currentsong end +local function escape(str) + return "\"" .. str .. "\"" +end + +function mpc:albumart(uri, handler) + local image_table = {} + local get_art_at + get_art_at = function(off) + self:send("albumart " .. escape(uri) .. " " .. tostring(off), function(success, data) + if not success then + handler(success, data) + end + table.insert(image_table, data.binary) + if data.binary and #data.binary > 0 then + get_art_at(off + #data.binary) + else + data.binary = table.concat(image_table) + handler(success, data) + end + end) + end + get_art_at(0) +end + --[[ -- Example on how to use this (standalone)