diff --git a/src/freebox_api/aiofreepybox.py b/src/freebox_api/aiofreepybox.py index e4f0e0f3..a3fb59e4 100644 --- a/src/freebox_api/aiofreepybox.py +++ b/src/freebox_api/aiofreepybox.py @@ -11,7 +11,7 @@ from typing import Union from urllib.parse import urljoin -from aiohttp import ClientSession +from aiohttp import ClientSession, ClientTimeout from aiohttp import TCPConnector import freebox_api @@ -59,6 +59,8 @@ "device_name": socket.gethostname(), } +DEFAULT_TIMEOUT = 10 + logger = logging.getLogger(__name__) @@ -68,7 +70,7 @@ def __init__( app_desc: Dict[str, str] = DEFAULT_APP_DESC, token_file: str = DEFAULT_TOKEN_FILE, api_version: str = "v3", - timeout: int = 10, + timeout: int = DEFAULT_TIMEOUT, ): self.app_desc: Dict[str, str] = app_desc self.token_file: str = token_file @@ -159,7 +161,7 @@ async def _get_freebox_access( api_version: str, token_file: str, app_desc: Dict[str, str], - timeout: int = 10, + timeout: int = DEFAULT_TIMEOUT, ) -> Access: """ Returns an access object used for HTTP requests. @@ -231,12 +233,12 @@ async def _get_authorization_status( denied: the user denied the authorization request """ url = urljoin(base_url, f"login/authorize/{track_id}") - resp = await self._session.get(url, timeout=timeout) + resp = await self._session.get(url, timeout=ClientTimeout(total=timeout)) resp_data = await resp.json() return str(resp_data["result"]["status"]) async def _get_app_token( - self, base_url: str, app_desc: Dict[str, str], timeout: int = 10 + self, base_url: str, app_desc: Dict[str, str], timeout: int = DEFAULT_TIMEOUT ) -> Tuple[str, int]: """ Get the application token from the freebox @@ -245,7 +247,9 @@ async def _get_app_token( # Get authentification token url = urljoin(base_url, "login/authorize/") data = json.dumps(app_desc) - resp = await self._session.post(url, data=data, timeout=timeout) + resp = await self._session.post( + url, data=data, timeout=ClientTimeout(total=timeout) + ) resp_data = await resp.json() # raise exception if resp.success != True diff --git a/src/freebox_api/api/remote.py b/src/freebox_api/api/remote.py index beba1027..ccb20c41 100644 --- a/src/freebox_api/api/remote.py +++ b/src/freebox_api/api/remote.py @@ -10,7 +10,7 @@ from typing import List from typing import Optional -from aiohttp import ServerDisconnectedError +from aiohttp import ClientTimeout, ServerDisconnectedError from freebox_api.access import Access @@ -181,7 +181,7 @@ async def set_key( long_press=key_data.get("long"), # type: ignore repeat=key_data.get("repeat"), # type: ignore ), - timeout=_DEFAULT_TIMEOUT, + timeout=ClientTimeout(total=_DEFAULT_TIMEOUT), skip_auto_headers=[ "Accept", "Accept-Encoding",