mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-09 12:29:19 -08:00
48 lines
1.2 KiB
Python
48 lines
1.2 KiB
Python
#!/usr/bin/env python3
|
|
|
|
import requests
|
|
import json
|
|
import sys
|
|
|
|
city = sys.argv[1]
|
|
api_key = sys.argv[2]
|
|
|
|
url = f"https://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric"
|
|
|
|
weather_icons = {
|
|
"Thunderstorm": "摒",
|
|
"Clouds": "摒",
|
|
"Drizzle": "",
|
|
"Rain": "",
|
|
"Snow": "流",
|
|
"Clear": "滛",
|
|
"Mist": "",
|
|
"Smoke": "",
|
|
"Haze": "",
|
|
"Dust": "",
|
|
"Fog": "",
|
|
"Sand": "",
|
|
"Ash": "",
|
|
"Squall": "",
|
|
"Tornado": ""
|
|
}
|
|
|
|
#def degrees_to_cardinal(d):
|
|
# dirs = ["N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE",
|
|
# "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"]
|
|
# ix = int((d + 11.25)/22.5)
|
|
# return dirs[ix % 16]
|
|
|
|
response = requests.get(url)
|
|
data = json.loads(response.text)
|
|
#print(data)
|
|
|
|
condition = data["weather"][0]["main"]
|
|
weather_icon = weather_icons[condition]
|
|
temperature = f"{round(data['main']['temp'])}°C"
|
|
feels_like_temperature = f"{round(data['main']['feels_like'])}°C"
|
|
humidity = f"{data['main']['humidity']}%"
|
|
wind = f"{round(data['wind']['speed'])}m/s" # {degrees_to_cardinal(data['wind']['deg'])}"
|
|
|
|
end_string = f"{weather_icon} {temperature} {feels_like_temperature} {humidity} {wind}"
|
|
print(end_string)
|