40 lines
1.4 KiB
Bash
Executable File
40 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Get location data using IP Geolocation
|
|
|
|
# Recommended with API, but you can try w/o API [IPINFO.IO]
|
|
# API_TOKEN="YOUR_API_TOKEN"
|
|
# location_data=$(curl -s "https://ipinfo.io?token=$API_TOKEN" 2>/dev/null)
|
|
# location_data=$(curl -s https://ipinfo.io 2>/dev/null) #[Limited requests. Require API to send 50k request/month]
|
|
|
|
# Extract city and country code (ISO 3166-1 alpha-2 code)
|
|
# CITY=$(echo "$location_data" | jq -r '.city // empty')
|
|
# COUNTRY=$(echo "$location_data" | jq -r '.country // empty')
|
|
|
|
# IPINFO Alternative [IP-API.COM]
|
|
location_data=$(curl -s "http://ip-api.com/json/" 2>/dev/null)
|
|
|
|
# Extract city and country code
|
|
CITY=$(echo "$location_data" | jq -r '.city // empty')
|
|
COUNTRY=$(echo "$location_data" | jq -r '.countryCode // empty')
|
|
# Visit http://ip-api.com/json/ to find other variables
|
|
|
|
# HARDCODE Location
|
|
# CITY=$(grep -oP '^\$CITY\s*=\s*\K.+' ~/.config/hypr/hyprlock.conf)
|
|
# COUNTRY=$(grep -oP '^\$COUNTRY\s*=\s*\K.+' ~/.config/hypr/hyprlock.conf)
|
|
|
|
# Check if CITY and COUNTRY are valid
|
|
if [[ -n "$CITY" && -n "$COUNTRY" ]]; then
|
|
# Fetch weather info for the detected city from wttr.in
|
|
weather_info=$(curl -s "wttr.in/$CITY?format=%c+%C+%t" 2>/dev/null)
|
|
|
|
# Check if the weather info is valid
|
|
if [[ -n "$weather_info" ]]; then
|
|
echo "$COUNTRY, $CITY: $weather_info"
|
|
else
|
|
echo "Weather info unavailable for $COUNTRY, $CITY"
|
|
fi
|
|
else
|
|
echo "Unable to determine your location"
|
|
fi
|