Backup automatico script del 2026-01-25 07:00

This commit is contained in:
2026-01-25 07:00:03 +01:00
parent 9dbe0cfa93
commit f0c5672607
16 changed files with 241 additions and 61 deletions

View File

@@ -14,6 +14,7 @@ from zoneinfo import ZoneInfo
import requests
from dateutil import parser
from open_meteo_client import configure_open_meteo_session
# =============================================================================
# student_alert.py
@@ -222,7 +223,7 @@ def get_forecast(session: requests.Session, lat: float, lon: float, model: str)
if model == MODEL_AROME:
params["minutely_15"] = "precipitation,rain,snowfall,precipitation_probability,temperature_2m"
try:
r = session.get(OPEN_METEO_URL, params=params, headers=HTTP_HEADERS, timeout=25)
r = session.get(OPEN_METEO_URL, params=params, headers=HTTP_HEADERS, timeout=(5, 25))
if r.status_code == 400:
# Se 400 e abbiamo minutely_15, riprova senza
if "minutely_15" in params and model == MODEL_AROME:
@@ -230,7 +231,7 @@ def get_forecast(session: requests.Session, lat: float, lon: float, model: str)
params_no_minutely = params.copy()
del params_no_minutely["minutely_15"]
try:
r2 = session.get(OPEN_METEO_URL, params=params_no_minutely, headers=HTTP_HEADERS, timeout=25)
r2 = session.get(OPEN_METEO_URL, params=params_no_minutely, headers=HTTP_HEADERS, timeout=(5, 25))
if r2.status_code == 200:
return r2.json()
except Exception:
@@ -243,7 +244,7 @@ def get_forecast(session: requests.Session, lat: float, lon: float, model: str)
params_no_minutely = params.copy()
del params_no_minutely["minutely_15"]
try:
r2 = session.get(OPEN_METEO_URL, params=params_no_minutely, headers=HTTP_HEADERS, timeout=25)
r2 = session.get(OPEN_METEO_URL, params=params_no_minutely, headers=HTTP_HEADERS, timeout=(5, 25))
if r2.status_code == 200:
return r2.json()
except Exception:
@@ -275,7 +276,7 @@ def get_forecast(session: requests.Session, lat: float, lon: float, model: str)
params_no_minutely = params.copy()
del params_no_minutely["minutely_15"]
try:
r2 = session.get(OPEN_METEO_URL, params=params_no_minutely, headers=HTTP_HEADERS, timeout=25)
r2 = session.get(OPEN_METEO_URL, params=params_no_minutely, headers=HTTP_HEADERS, timeout=(5, 25))
if r2.status_code == 200:
return r2.json()
except Exception:
@@ -289,7 +290,7 @@ def get_forecast(session: requests.Session, lat: float, lon: float, model: str)
params_no_minutely = params.copy()
del params_no_minutely["minutely_15"]
try:
r2 = session.get(OPEN_METEO_URL, params=params_no_minutely, headers=HTTP_HEADERS, timeout=25)
r2 = session.get(OPEN_METEO_URL, params=params_no_minutely, headers=HTTP_HEADERS, timeout=(5, 25))
if r2.status_code == 200:
return r2.json()
except Exception:
@@ -303,7 +304,7 @@ def get_forecast(session: requests.Session, lat: float, lon: float, model: str)
params_no_minutely = params.copy()
del params_no_minutely["minutely_15"]
try:
r2 = session.get(OPEN_METEO_URL, params=params_no_minutely, headers=HTTP_HEADERS, timeout=25)
r2 = session.get(OPEN_METEO_URL, params=params_no_minutely, headers=HTTP_HEADERS, timeout=(5, 25))
if r2.status_code == 200:
return r2.json()
except Exception:
@@ -580,6 +581,7 @@ def main(chat_ids: Optional[List[str]] = None, debug_mode: bool = False) -> None
comparisons: Dict[str, Dict] = {} # point_name -> comparison info
with requests.Session() as session:
configure_open_meteo_session(session, headers=HTTP_HEADERS)
# Trigger: Bologna
bo = POINTS[0]
bo_data_arome = get_forecast(session, bo["lat"], bo["lon"], MODEL_AROME)