diff --git a/HyprV/waybar/conf/mesu-imp.jsonc b/HyprV/waybar/conf/mesu-imp.jsonc index 8cb6450d..0fa4d055 100644 --- a/HyprV/waybar/conf/mesu-imp.jsonc +++ b/HyprV/waybar/conf/mesu-imp.jsonc @@ -9,7 +9,11 @@ "tooltip" : true, "format" : "{}", "interval" : 30, - "exec" : "~/.config/HyprV/waybar/scripts/waybar-wttr.py", + // add your postal code (zip code) to the end of this line to customize + // the weathers location. you can also use a 3 letter airport code instead of + // a postal code. + // ex: "~/.config/HyprV/waybar/scripts/waybar-wttr.py 12345", + "exec" : "~/.config/HyprV/waybar/scripts/waybar-wttr.py ", "return-type" : "json" }, @@ -22,4 +26,4 @@ "format-critical": " {temperatureF}°F", "on-click": "kitty --start-as=fullscreen --title btop sh -c 'btop'" } -} \ No newline at end of file +} diff --git a/HyprV/waybar/scripts/waybar-wttr.py b/HyprV/waybar/scripts/waybar-wttr.py index 38f1e88f..eb1049d1 100755 --- a/HyprV/waybar/scripts/waybar-wttr.py +++ b/HyprV/waybar/scripts/waybar-wttr.py @@ -1,5 +1,6 @@ #!/usr/bin/env python +import sys import json import requests from datetime import datetime @@ -57,8 +58,21 @@ data = {} +def get_ip(): + response = requests.get("https://api64.ipify.org?format=json").json() + return response["ip"] -weather = requests.get("https://wttr.in/?format=j1").json() +def get_zip(): + ip_address = get_ip() + response = requests.get(f"https://ipapi.co/{ip_address}/json").json() + return response["postal"] + +if len(sys.argv) > 1: + postal = sys.argv[1] +else: + postal = get_zip() + +weather = requests.get(f"https://wttr.in/{postal}?format=j1").json() def format_time(time):