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"
|
cache_file = _HOME / "kiosk-home" / "weather-data.json"
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
# 1. Geolocation lookup
|
# 1. Geolocation lookup (using highly accurate ip-api.com)
|
||||||
req = urllib.request.Request(
|
req = urllib.request.Request(
|
||||||
"https://freeipapi.com/api/json",
|
"http://ip-api.com/json/",
|
||||||
headers={"User-Agent": "Mozilla/5.0"}
|
headers={"User-Agent": "Mozilla/5.0"}
|
||||||
)
|
)
|
||||||
geo_raw = urllib.request.urlopen(req, timeout=8).read()
|
geo_raw = urllib.request.urlopen(req, timeout=8).read()
|
||||||
geo = json.loads(geo_raw)
|
geo = json.loads(geo_raw)
|
||||||
|
|
||||||
loc_name = "Your Area"
|
loc_name = "Your Area"
|
||||||
if geo.get("cityName") and geo.get("regionName"):
|
if geo.get("city") and geo.get("regionName"):
|
||||||
loc_name = f"{geo['cityName']}, {geo['regionName']}"
|
loc_name = f"{geo['city']}, {geo['regionName']}"
|
||||||
elif geo.get("cityName"):
|
elif geo.get("city"):
|
||||||
loc_name = geo["cityName"]
|
loc_name = geo["city"]
|
||||||
|
|
||||||
lat, lon = geo.get("latitude"), geo.get("longitude")
|
lat, lon = geo.get("lat"), geo.get("lon")
|
||||||
if lat and lon:
|
if lat and lon:
|
||||||
# 2. Weather forecast lookup
|
# 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"
|
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