mirror of
https://github.com/GeorgeSG/dotfiles.git
synced 2026-09-06 17:38:45 +00:00
63 lines
1.4 KiB
Python
Executable File
63 lines
1.4 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
import requests, json, sys, time
|
|
from secrets import WEATHER_API_TOKEN, WEATHER_CITY
|
|
|
|
UNITS = "metric"
|
|
LANG = "en"
|
|
|
|
|
|
def get_icon(code):
|
|
icons = {
|
|
"01d": "",
|
|
"01n": "",
|
|
"02d": "",
|
|
"02n": "",
|
|
"03d": "",
|
|
"03n": "",
|
|
"04d": "",
|
|
"04n": "",
|
|
"09d": "",
|
|
"09n": "",
|
|
"10d": "",
|
|
"10n": "",
|
|
"11d": "",
|
|
"11n": "",
|
|
"13d": "",
|
|
"13n": "",
|
|
"50d": "",
|
|
"50n": "",
|
|
}
|
|
|
|
try:
|
|
return icons[code]
|
|
except KeyError:
|
|
return None
|
|
|
|
|
|
def main():
|
|
response = requests.get(
|
|
f"https://api.openweathermap.org/data/2.5/weather?q={WEATHER_CITY}&appid={WEATHER_API_TOKEN}&lang={LANG}&units={UNITS}"
|
|
).json()
|
|
data = {
|
|
"icon": get_icon(response["weather"][0]["icon"]),
|
|
"temp": str(round(response["main"]["temp"])) + "°",
|
|
"desc": response["weather"][0]["description"].capitalize(),
|
|
}
|
|
return data
|
|
|
|
|
|
if __name__ == "__main__":
|
|
try:
|
|
while True:
|
|
try:
|
|
sys.stdout.write(json.dumps(main()) + "\n")
|
|
sys.stdout.flush()
|
|
time.sleep(1800)
|
|
except requests.exceptions.ConnectionError:
|
|
print("Connection error! Retrying...")
|
|
time.sleep(2)
|
|
|
|
except KeyboardInterrupt:
|
|
exit(0)
|