# TODO: Write documentation for `WialtDaemon` require "crystal_mpd" require "concurrent" require "crest" module WialtDaemon VERSION = "0.1.0" client = MPD::Client.new(with_callbacks: true) client.callbacks_timeout = 2.seconds # status : Concurrent::Hash(String, String) = Concurrent::Hash(String, String).new # status = client.stats if(client.connected?) # puts "#{status["uptime"]}" if(currentsong=client.currentsong) puts "#{currentsong["Title"]}" Crest.post( "http://0.0.0.0:3000/music_changed", {:title => currentsong["Title"]}, json: true ) end end client.on :state do |state| puts "[#{Time.local}] State was change to #{state}" end client.on :nextsong do puts "#{client}" end client.on :song do if (current_song = client.currentsong) puts "[#{Time.local}] 🎵 #{current_song["Artist"]} - #{current_song["Title"]}" end end loop { sleep 1 } end