34 lines
840 B
Python
34 lines
840 B
Python
import os
|
|
import urllib
|
|
|
|
from PIL import Image
|
|
|
|
|
|
HERE = os.path.dirname(os.path.abspath(__file__))
|
|
OWM_ICONS_CACHE = os.path.join(HERE, "owm_icons_cache/")
|
|
|
|
if not os.path.exists(OWM_ICONS_CACHE):
|
|
os.mkdir(OWM_ICONS_CACHE)
|
|
|
|
|
|
def get_weather_icon(icon_name, size) -> Image:
|
|
"""
|
|
Gets the requested weather icon as Image and returns it in the requested size
|
|
:param icon_name:
|
|
icon_name for the weather
|
|
:param size:
|
|
size of the icon in pixels
|
|
:return:
|
|
the resized weather icon
|
|
"""
|
|
|
|
iconpath = os.path.join(OWM_ICONS_CACHE, f"{icon_name}.png")
|
|
|
|
if not os.path.exists(iconpath):
|
|
urllib.request.urlretrieve(url=f"https://openweathermap.org/img/wn/{icon_name}@2x.png", filename=f"{iconpath}")
|
|
icon = Image.open(iconpath)
|
|
|
|
icon = icon.resize((size, size))
|
|
|
|
return icon
|