from flask import Flask, render_template, jsonify, request from utils.weather import get_today_snowfall from utils.geocode import get_city_name from config import MAX_SNOW_INCHES app = Flask(__name__) @app.route("/") def index(): return render_template("index.html") @app.route("/api/snowfall") def snowfall_api(): lat = request.args.get("lat", type=float) lon = request.args.get("lon", type=float) if lat is None or lon is None: return jsonify({"error": "Missing lat/lon"}), 400 inches, snowing, tz_name = get_today_snowfall(lat, lon) city_name = get_city_name(lat, lon) from datetime import datetime import pytz today = datetime.now(pytz.timezone(tz_name)).strftime("%B %d, %Y") return jsonify({ "location": city_name, "lat": lat, "lon": lon, "inches": inches, "max_inches": MAX_SNOW_INCHES, "snowing": snowing, "today": today, "updated": datetime.now().isoformat() }) if __name__ == "__main__": app.run(host="0.0.0.0", port=5000)