deploy: accurate waterloo ia geolocation

This commit is contained in:
2026-05-27 13:51:41 +00:00
parent ac6ca6d1b3
commit 3d8aef5f22
+7 -7
View File
@@ -831,21 +831,21 @@ if __name__ == "__main__":
cache_file = _HOME / "kiosk-home" / "weather-data.json"
while True:
try:
# 1. Geolocation lookup
# 1. Geolocation lookup (using highly accurate ip-api.com)
req = urllib.request.Request(
"https://freeipapi.com/api/json",
"http://ip-api.com/json/",
headers={"User-Agent": "Mozilla/5.0"}
)
geo_raw = urllib.request.urlopen(req, timeout=8).read()
geo = json.loads(geo_raw)
loc_name = "Your Area"
if geo.get("cityName") and geo.get("regionName"):
loc_name = f"{geo['cityName']}, {geo['regionName']}"
elif geo.get("cityName"):
loc_name = geo["cityName"]
if geo.get("city") and geo.get("regionName"):
loc_name = f"{geo['city']}, {geo['regionName']}"
elif geo.get("city"):
loc_name = geo["city"]
lat, lon = geo.get("latitude"), geo.get("longitude")
lat, lon = geo.get("lat"), geo.get("lon")
if lat and lon:
# 2. Weather forecast lookup
url = f"https://api.open-meteo.com/v1/forecast?latitude={lat}&longitude={lon}&current=temperature_2m,relative_humidity_2m,apparent_temperature,weather_code,wind_speed_10m&daily=weather_code,temperature_2m_max,temperature_2m_min&temperature_unit=fahrenheit&wind_speed_unit=mph&precipitation_unit=inch&timezone=auto"