l radio weather: don't fail on unknown ips
This commit is contained in:
parent
917889f8fc
commit
0e7a071d81
|
@ -20,26 +20,29 @@ for ip in fileinput.input():
|
|||
f'The probability of reincarnation is {random.randrange(0, 100)} percent.'
|
||||
)
|
||||
else:
|
||||
location = geoip.city(ip.strip())
|
||||
if location.city.geoname_id not in seen:
|
||||
seen[location.city.geoname_id] = True
|
||||
weather_api_key = os.environ['OPENWEATHER_API_KEY']
|
||||
url = (
|
||||
f'https://api.openweathermap.org/data/2.5/onecall'
|
||||
f'?lat={location.location.latitude}'
|
||||
f'&lon={location.location.longitude}'
|
||||
f'&appid={weather_api_key}'
|
||||
f'&units=metric'
|
||||
)
|
||||
resp = requests.get(url)
|
||||
weather = json.loads(resp.text)
|
||||
output.append(
|
||||
f'Weather report for {location.city.name}, {location.country.name}. '
|
||||
f'It is {weather["current"]["weather"][0]["description"]} outside '
|
||||
f'with a temperature of {weather["current"]["temp"]:.1f} degrees, '
|
||||
f'a wind speed of {weather["current"]["wind_speed"]:.1f} meters per second '
|
||||
f'and a humidity of {weather["current"]["humidity"]} percent. '
|
||||
f'The probability of precipitation is {weather["hourly"][0]["pop"] * 100:.0f} percent. '
|
||||
)
|
||||
try:
|
||||
location = geoip.city(ip.strip())
|
||||
if location.city.geoname_id not in seen:
|
||||
seen[location.city.geoname_id] = True
|
||||
weather_api_key = os.environ['OPENWEATHER_API_KEY']
|
||||
url = (
|
||||
f'https://api.openweathermap.org/data/2.5/onecall'
|
||||
f'?lat={location.location.latitude}'
|
||||
f'&lon={location.location.longitude}'
|
||||
f'&appid={weather_api_key}'
|
||||
f'&units=metric'
|
||||
)
|
||||
resp = requests.get(url)
|
||||
weather = json.loads(resp.text)
|
||||
output.append(
|
||||
f'Weather report for {location.city.name}, {location.country.name}. '
|
||||
f'It is {weather["current"]["weather"][0]["description"]} outside '
|
||||
f'with a temperature of {weather["current"]["temp"]:.1f} degrees, '
|
||||
f'a wind speed of {weather["current"]["wind_speed"]:.1f} meters per second '
|
||||
f'and a humidity of {weather["current"]["humidity"]} percent. '
|
||||
f'The probability of precipitation is {weather["hourly"][0]["pop"] * 100:.0f} percent. '
|
||||
)
|
||||
except: # noqa E722
|
||||
pass
|
||||
|
||||
print('\n'.join(output))
|
||||
|
|
Loading…
Reference in a new issue