59 lines
1.9 KiB
Bash
Executable file
59 lines
1.9 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# --- CONFIGURATION ---
|
|
API_KEY="00e744eb427e575e1e8ed79f31f770fb" # Paste your key here
|
|
LAT="48.856613" # Replace with your Latitude
|
|
LON="2.352222" # Replace with your Longitude
|
|
UNITS="metric" # Use "metric" for Celsius, "imperial" for Fahrenheit
|
|
# ---------------------
|
|
|
|
# Validate configuration
|
|
if [ -z "$LAT" ] || [ -z "$LON" ] || [ -z "$UNITS" ] || [ -z "$API_KEY" ]; then
|
|
echo "Config missing"
|
|
exit 1
|
|
fi
|
|
|
|
# Fetch the weather data
|
|
RESPONSE=$(curl -s "[https://api.openweathermap.org/data/2.5/weather?lat=$](https://api.openweathermap.org/data/2.5/weather?lat=$){LAT}&lon=${LON}&appid=${API_KEY}&units=${UNITS}")
|
|
|
|
# Check if curl failed to get a response
|
|
if [ -z "$RESPONSE" ]; then
|
|
echo "No connection"
|
|
exit 1
|
|
fi
|
|
|
|
# 1. Get the Temperature
|
|
# We use jq's built-in 'round' function to avoid ugly decimals (e.g., 71.6°F becomes 72°F)
|
|
TEMP=$(echo "$RESPONSE" | jq '.main.temp | round')
|
|
|
|
# 2. Get the Description (for the tooltip)
|
|
DESC=$(echo "$RESPONSE" | jq -r '.weather[0].description')
|
|
|
|
# 3. Get the Icon Code and map it to an emoji
|
|
ICON_CODE=$(echo "$RESPONSE" | jq -r '.weather[0].icon')
|
|
|
|
case $ICON_CODE in
|
|
"01d") ICON="☀️";; # Clear sky day
|
|
"01n") ICON="🌙";; # Clear sky night
|
|
"02d") ICON="⛅";; # Few clouds day
|
|
"02n") ICON="☁️";; # Few clouds night
|
|
"03d"|"03n") ICON="☁️";; # Scattered clouds
|
|
"04d"|"04n") ICON="☁️";; # Broken clouds
|
|
"09d"|"09n") ICON="🌧️";; # Shower rain
|
|
"10d") ICON="🌦️";; # Rain day
|
|
"10n") ICON="🌧️";; # Rain night
|
|
"11d"|"11n") ICON="⛈️";; # Thunderstorm
|
|
"13d"|"13n") ICON="❄️";; # Snow
|
|
"50d"|"50n") ICON="🌫️";; # Mist
|
|
*) ICON="❓";; # Default
|
|
esac
|
|
|
|
# Determine unit label
|
|
if [ "$UNITS" = "metric" ]; then
|
|
LABEL="°C"
|
|
else
|
|
LABEL="°F"
|
|
fi
|
|
|
|
# Final JSON output for Waybar
|
|
echo "{\"text\": \"${ICON} ${TEMP}${LABEL}\", \"tooltip\": \"${DESC}\"}"
|