from flask import Flask, render_template_string, jsonify from datetime import date, datetime import requests app = Flask(__name__) # ---- CONFIG ---- LOCATION_NAME = "South Bend, IN (46617)" LAT = 41.6764 LON = -86.2520 MAX_SNOW_INCHES = 24 OPEN_METEO_URL = "https://api.open-meteo.com/v1/forecast" def get_today_snowfall(): params = { "latitude": LAT, "longitude": LON, "hourly": "snowfall", "timezone": "America/Indiana/Indianapolis" } try: r = requests.get(OPEN_METEO_URL, params=params, timeout=5) r.raise_for_status() data = r.json() today = date.today().isoformat() snowfall_cm = 0.0 snowing_now = False for t, s in zip(data["hourly"]["time"], data["hourly"]["snowfall"]): if t.startswith(today): snowfall_cm += s if s > 0: snowing_now = True inches = round(snowfall_cm / 2.54, 1) return inches, snowing_now except Exception: return 0.0, False HTML = """