aboutsummaryrefslogtreecommitdiff
path: root/src/wialt_daemon.cr
diff options
context:
space:
mode:
Diffstat (limited to 'src/wialt_daemon.cr')
-rw-r--r--src/wialt_daemon.cr40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/wialt_daemon.cr b/src/wialt_daemon.cr
new file mode 100644
index 0000000..f903d9e
--- /dev/null
+++ b/src/wialt_daemon.cr
@@ -0,0 +1,40 @@
+# 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