diff --git a/lib/fruitbot/stream_monitor.ex b/lib/fruitbot/stream_monitor.ex new file mode 100644 index 0000000..9ec04a4 --- /dev/null +++ b/lib/fruitbot/stream_monitor.ex @@ -0,0 +1,27 @@ +defmodule Fruitbot.StreamMonitor do + @url "https://streampusher-relay.com/datafruits.mp3" + use HTTPoison.Base + + def start_link(url) do + HTTPoison.start_link() + {:ok, %HTTPoison.Config{}} = HTTPoison.Config.default(%{}) + interval = 60_000 + spawn_link(fn -> loop(url, interval) end) + end + + defp loop(url, interval) do + :timer.sleep(interval) + case HTTPoison.get(url) do + {:ok, %HTTPoison.Response{status_code: 200}} -> + IO.puts("Success: #{url}") + loop(url, interval) + {:ok, %HTTPoison.Response{status_code: status_code}} -> + IO.puts("Error (Status #{status_code}): #{url}") + # send to which discord channel ??? + loop(url, interval) + {:error, reason} -> + IO.puts("Error: #{reason}") + loop(url, interval) + end + end +end diff --git a/lib/fruitbot/supervisor.ex b/lib/fruitbot/supervisor.ex index bbf8dc3..b8a5694 100644 --- a/lib/fruitbot/supervisor.ex +++ b/lib/fruitbot/supervisor.ex @@ -20,7 +20,8 @@ defmodule Fruitbot.Supervisor do children = [ Plug.Cowboy.child_spec(scheme: :http, plug: Fruitbot.Router, options: [port: get_port()]), {Fruitbot.Worker, uri: System.get_env("CHAT_URL")}, - {Fruitbot.NostrumConsumer, name: Fruitbot.NostrumConsumer} + {Fruitbot.NostrumConsumer, name: Fruitbot.NostrumConsumer}, + {Fruitbot.StreamMonitor, name: Fruitbot.StreamMonitor} ] Supervisor.init(children, strategy: :one_for_one)