# 3-simple-weather Copyright (C) 2020 BrutalWizard (https://github.com/bru74lw1z4rd). # This program comes with ABSOLUTELY NO WARRANTY; # This is free software, and you are welcome to redistribute it # under certain conditions; # More info about wether at - https://openweathermap.org/weather-conditions # To show icons from this script you will need to buy "Font Awesome Pro" font - https://fontawesome.com/ # Also you can change icon in arrays to yours icons # Configured for NerdFonts - GitHub raven2cz @raven2cz import requests import json # Settings city = "" # Your town api_key = "" # Your openweather api key units = "metric" # Unit system {imperial or metric} temperature_unit = "C" # Units of measurement. That will be showed in UI. Does not affect on API. icons_list = { "01d": "", # Clear sky day. "01n": "", # Clear sky night. "02d": "", # Few clouds day. "02n": "", # Few clouds night. "03d": "", # Scattered clouds day. "03n": "", # Scattered clouds night. "04d": "", # Broken clouds day. "04n": "", # Broken clouds night. "09d": "", # Shower rain day. "09n": "", # Shower rain night. "10d": "", # Rain day. "10n": "", # Rain night "11d": "", # Thunderstorm day. "11n": "", # Thunderstorm night "13d": "", # Snow day. Snowflake alternative:  "13n": "", # Snow night. Snowflake alternative:  "50d": "", # Mist day. "50n": "" # Mist night. } atmophere_icons_list = { 701: "", # Mist 711: "", # Smoke 721: "", # Haze 731: "", # Dust (Sand / dust whirls) 741: "", # Fog 751: "", # Sand 761: "", # Dust 762: "", # Ash 771: "", # Squalls 781: "" # Tornado } def main(): try: # Get data from openweather url = ('http://api.openweathermap.org/data/2.5/weather?q={}&units={}&appid={}').format(city, units, api_key) result = requests.get(url) # If result was received if(result.status_code == requests.codes['ok']): # Read json weather = result.json() # Get info from array id = int(weather['weather'][0]['id']) group = weather['weather'][0]['main'].capitalize() icon = weather['weather'][0]['icon'].capitalize() temp = int(float(weather['main']['temp'])) # Load another icons for Atmosphere group if(group == "Atmosphere"): return atmophere_icons_list[id] + ' {}°{}'.format(temp, temperature_unit) return icons_list[icon] + '%{F${foreground}' + ' {}°{}'.format(temp, temperature_unit) + '%{F-}' else: return "" # Return reload icon except: return "" # Return reload icon if __name__ == "__main__": print(main())