Hash :
347f1e0f
Author :
Thomas de Grivel
Date :
2023-01-18T13:41:02
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
module MPDC
@@mpd_client = nil
def self.mpd_client
if @@mpd_client
@@mpd_client
else
@@mpd_client = MPD::Client.new
end
end
def self.connect
mpd_client.connect(ENV["MPD_HOST"] || "localhost",
ENV["MPD_PORT"] || 6600) rescue (sleep 1000; connect)
mpd_client
end
def self.current_song
(mpd_client.currentsong rescue (connect; current_song)) || (connect; current_song)
end
def self.mpd_version
(mpd_client.mpd_version rescue (connect; mpd_version)) || (connect; mpd_version)
end
def self.picture(file)
data, io = read_picture(file)
if io
picture = io.string
if ! picture.empty?
"data:#{data["type"]};base64,#{Base64.encode64(io.string).strip}"
end
end
end
def self.playlist_info
(mpd_client.playlistinfo rescue (connect; playlist_info)) || (connect; playlist_info)
end
def self.read_picture(file)
(mpd_client.readpicture(file) rescue (connect; read_picture file)) || (connect; read_picture(file))
end
def self.stats
(mpd_client.stats rescue (connect; stats)) || (connect; stats)
end
def self.status
(mpd_client.status rescue (connect; status)) || (connect; status)
end
end