41
41
AOD_WIND_DIRECTION ,
42
42
AOD_WIND_SPEED ,
43
43
AOD_WIND_SPEED_MAX ,
44
+ API_HDR_REQ_COUNT ,
44
45
API_MIN_STATION_DISTANCE_KM ,
45
46
API_MIN_TOWN_DISTANCE_KM ,
46
47
API_URL ,
54
55
HTTP_MAX_REQUESTS ,
55
56
RAW_FORECAST_DAILY ,
56
57
RAW_FORECAST_HOURLY ,
58
+ RAW_REQ_COUNT ,
57
59
RAW_STATIONS ,
58
60
RAW_TOWNS ,
59
61
)
@@ -105,6 +107,7 @@ def __init__(
105
107
self ._api_raw_data = {
106
108
RAW_FORECAST_DAILY : {},
107
109
RAW_FORECAST_HOURLY : {},
110
+ RAW_REQ_COUNT : None ,
108
111
RAW_STATIONS : {},
109
112
RAW_TOWNS : {},
110
113
}
@@ -122,9 +125,7 @@ def __init__(
122
125
self .station = None
123
126
self .town = None
124
127
125
- async def set_api_raw_data (
126
- self , key : str , subkey : str | None , data : dict [str , Any ] | None
127
- ) -> None :
128
+ async def set_api_raw_data (self , key : str , subkey : str | None , data : Any ) -> None :
128
129
"""Save API raw data if not empty."""
129
130
if data is not None :
130
131
async with self ._api_raw_data_lock :
@@ -150,6 +151,10 @@ async def api_call(self, cmd: str, fetch_data: bool = False) -> dict[str, Any]:
150
151
except ClientError as err :
151
152
raise AemetError (err ) from err
152
153
154
+ req_count = resp .headers .get (API_HDR_REQ_COUNT )
155
+ if req_count is not None :
156
+ await self .set_api_raw_data (RAW_REQ_COUNT , None , req_count )
157
+
153
158
_LOGGER .debug (
154
159
"api_call: cmd=%s status=%s content_type=%s" ,
155
160
cmd ,
@@ -208,6 +213,10 @@ async def api_data(self, url: str) -> dict[str, Any]:
208
213
except ClientError as err :
209
214
raise AemetError (err ) from err
210
215
216
+ req_count = resp .headers .get (API_HDR_REQ_COUNT )
217
+ if req_count is not None :
218
+ await self .set_api_raw_data (RAW_REQ_COUNT , None , req_count )
219
+
211
220
_LOGGER .debug (
212
221
"api_data: url=%s status=%s content_type=%s" ,
213
222
url ,
0 commit comments