blob: 26815dbd0060b0176e55adcdd159bcce5598e09d (
plain)
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
|
defmodule Silmataivas.Notifications.NtfyNotifier do
@moduledoc """
Sends push notifications using ntfy.sh.
"""
@ntfy_url System.get_env("NTFY_URL") || "https://ntfy.sh"
def send_alert(
topic,
%{
"main" => %{"temp" => temp},
"wind" => %{"speed" => speed},
"dt_txt" => time_str
} = entry
) do
rain_mm = get_in(entry, ["rain", "3h"]) || 0.0
wind_kmh = speed * 3.6
message = """
🚨 Weather alert for your location (#{time_str}):
🌬️ Wind: #{Float.round(wind_kmh, 1)} km/h
🌧️ Rain: #{rain_mm} mm
🌡️ Temperature: #{temp} °C
Stay safe,
— Silmätaivas
"""
Req.post("#{@ntfy_url}/#{topic}",
headers: [{"Priority", "5"}],
body: message
)
end
end
|