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

@@ -9,6 +9,7 @@ import time
from typing import Optional, List
from zoneinfo import ZoneInfo
from dateutil import parser as date_parser
from open_meteo_client import open_meteo_get
# Setup logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
@@ -161,7 +162,7 @@ def get_icon_set(prec, snow, code, is_day, cloud, vis, temp, rain, gust, cape, c
def get_coordinates(city_name: str):
params = {"name": city_name, "count": 1, "language": "it", "format": "json"}
try:
r = requests.get(GEOCODING_URL, params=params, headers=HTTP_HEADERS, timeout=10)
r = open_meteo_get(GEOCODING_URL, params=params, headers=HTTP_HEADERS, timeout=(5, 15))
data = r.json()
if "results" in data and data["results"]:
res = data["results"][0]
@@ -223,7 +224,7 @@ def get_forecast(lat, lon, model=None, is_home=False, timezone=None, retry_after
try:
t0 = time.time()
# Timeout ridotto a 20s per fallire più velocemente in caso di problemi
r = requests.get(OPEN_METEO_URL, params=params, headers=HTTP_HEADERS, timeout=20)
r = open_meteo_get(OPEN_METEO_URL, params=params, headers=HTTP_HEADERS, timeout=(5, 20))
if r.status_code != 200:
# Dettagli errore più specifici
error_details = f"Status {r.status_code}"
@@ -276,7 +277,7 @@ def get_visibility_forecast(lat, lon):
try:
t0 = time.time()
# Timeout ridotto a 12s per fallire più velocemente
r = requests.get(OPEN_METEO_URL, params=params_ecmwf, headers=HTTP_HEADERS, timeout=12)
r = open_meteo_get(OPEN_METEO_URL, params=params_ecmwf, headers=HTTP_HEADERS, timeout=(5, 12))
if r.status_code == 200:
data = r.json()
hourly = data.get("hourly", {})
@@ -299,7 +300,7 @@ def get_visibility_forecast(lat, lon):
try:
t0 = time.time()
# Timeout ridotto a 12s per fallire più velocemente
r = requests.get(OPEN_METEO_URL, params=params_best, headers=HTTP_HEADERS, timeout=12)
r = open_meteo_get(OPEN_METEO_URL, params=params_best, headers=HTTP_HEADERS, timeout=(5, 12))
if r.status_code == 200:
data = r.json()
hourly = data.get("hourly", {})