import requests
import time
import random

LATITUDE = 43.7696
LONGITUDE = 11.2558


def descrizione_meteo(code):
    codici = {
        0: "Sole / cielo sereno",
        1: "Prevalentemente sereno",
        2: "Parzialmente nuvoloso",
        3: "Nuvoloso",
        45: "Nebbia",
        48: "Nebbia con brina",
        51: "Pioviggine leggera",
        61: "Pioggia leggera",
        63: "Pioggia moderata",
        65: "Pioggia forte",
        80: "Rovesci leggeri",
        95: "Temporale"
    }

    return codici.get(code, "Meteo non classificato")


def get_external_weather():
    url = (
        "https://api.open-meteo.com/v1/forecast"
        f"?latitude={LATITUDE}"
        f"&longitude={LONGITUDE}"
        "&current=temperature_2m,relative_humidity_2m,precipitation,rain,weather_code,wind_speed_10m"
        "&daily=temperature_2m_max,temperature_2m_min,uv_index_max"
        "&timezone=Europe%2FRome"
    )

    try:
        data = requests.get(url, timeout=30).json()
        return data["current"], data["daily"]

    except Exception as e:
        print("Errore connessione Open-Meteo:", e)
        print("Uso dati simulati.")

        meteo = {
            "temperature_2m": 34.0,
            "relative_humidity_2m": 32,
            "rain": 0.0,
            "wind_speed_10m": 4.0,
            "weather_code": 0
        }

        giornaliero = {
            "temperature_2m_max": [36.5],
            "temperature_2m_min": [18.0],
            "uv_index_max": [7.5]
        }

        return meteo, giornaliero

    data = requests.get(url, timeout=60).json()

    return data["current"], data["daily"]


