import streamlit as st import requests from datetime import datetime # اطلاعات منطقه پیش‌فرض LATITUDE = 31.534442 LONGITUDE = 48.724416 # کلید API OPENWEATHER_API_KEY = "ed47316a45379e2221a75f813229fb46" OPENWEATHER_FORECAST_URL = "https://api.openweathermap.org/data/2.5/forecast" # تابع برای دریافت پیش‌بینی هوا def get_weather_forecast(lat, lon, api_key): params = { "lat": lat, "lon": lon, "appid": api_key, "units": "metric", "lang": "fa" } response = requests.get(OPENWEATHER_FORECAST_URL, params=params) return response.json() if response.status_code == 200 else None # رابط کاربری Streamlit st.title("پیش‌بینی وضعیت هوا") st.sidebar.title("تنظیمات") # نمایش مختصات پیش‌فرض st.sidebar.write("مختصات پیش‌فرض: دهخدا") lat, lon = LATITUDE, LONGITUDE # دریافت داده‌های پیش‌بینی forecast_data = get_weather_forecast(lat, lon, OPENWEATHER_API_KEY) if forecast_data: st.subheader("پیش‌بینی وضعیت هوا برای 7 روز آینده") for i, forecast in enumerate(forecast_data["list"][:7]): # زمان و دما dt = datetime.utcfromtimestamp(forecast["dt"]).strftime("%A, %d %B %Y") temp = forecast["main"]["temp"] description = forecast["weather"][0]["description"] icon = forecast["weather"][0]["icon"] # نمایش اطلاعات st.write(f"### {dt}") st.image(f"http://openweathermap.org/img/wn/{icon}.png", width=50) st.write(f"🌡️ دما: {temp}°C") st.write(f"🌥️ وضعیت: {description}") else: st.error("خطا در دریافت داده‌های پیش‌بینی هوا!")