deploy: accurate waterloo ia geolocation
This commit is contained in:
+7
-7
@@ -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}¤t=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"
|
||||
|
||||
Reference in New Issue
Block a user