diff --git a/pyhon/connection/api.py b/pyhon/connection/api.py index 2cb7dfe..07bc528 100644 --- a/pyhon/connection/api.py +++ b/pyhon/connection/api.py @@ -24,12 +24,14 @@ class HonAPI: email: str = "", password: str = "", anonymous: bool = False, + mobile_id: str = "", session: Optional[ClientSession] = None, ) -> None: super().__init__() self._email: str = email self._password: str = password self._anonymous: bool = anonymous + self._mobile_id: str = mobile_id self._hon_handler: Optional[HonConnectionHandler] = None self._hon_anonymous_handler: Optional[HonAnonymousConnectionHandler] = None self._session: Optional[ClientSession] = session @@ -69,7 +71,7 @@ class HonAPI: ).create() if not self._anonymous: self._hon_handler = await HonConnectionHandler( - self._email, self._password, self._session + self._email, self._password, self._session, mobile_id=self._mobile_id ).create() return self diff --git a/pyhon/connection/device.py b/pyhon/connection/device.py index 730ef72..0923aae 100644 --- a/pyhon/connection/device.py +++ b/pyhon/connection/device.py @@ -1,16 +1,15 @@ -import secrets from typing import Dict from pyhon import const class HonDevice: - def __init__(self) -> None: + def __init__(self, mobile_id: str = "") -> None: self._app_version: str = const.APP_VERSION self._os_version: int = const.OS_VERSION self._os: str = const.OS self._device_model: str = const.DEVICE_MODEL - self._mobile_id: str = secrets.token_hex(8) + self._mobile_id: str = mobile_id or const.MOBILE_ID @property def app_version(self) -> str: diff --git a/pyhon/connection/handler/hon.py b/pyhon/connection/handler/hon.py index 8fbeca9..997fb5b 100644 --- a/pyhon/connection/handler/hon.py +++ b/pyhon/connection/handler/hon.py @@ -19,10 +19,14 @@ _LOGGER = logging.getLogger(__name__) class HonConnectionHandler(ConnectionHandler): def __init__( - self, email: str, password: str, session: Optional[aiohttp.ClientSession] = None + self, + email: str, + password: str, + mobile_id: str = "", + session: Optional[aiohttp.ClientSession] = None, ) -> None: super().__init__(session=session) - self._device: HonDevice = HonDevice() + self._device: HonDevice = HonDevice(mobile_id) self._email: str = email self._password: str = password if not self._email: diff --git a/pyhon/const.py b/pyhon/const.py index 8ea749f..0bc1a02 100644 --- a/pyhon/const.py +++ b/pyhon/const.py @@ -6,8 +6,9 @@ CLIENT_ID = ( "3MVG9QDx8IX8nP5T2Ha8ofvlmjLZl5L_gvfbT9." "HJvpHGKoAS_dcMN8LYpTSYeVFCraUnV.2Ag1Ki7m4znVO6" ) -APP_VERSION = "2.4.7" -OS_VERSION = 31 +APP_VERSION = "2.6.5" +OS_VERSION = 999 OS = "android" -DEVICE_MODEL = "exynos9820" -USER_AGENT = "Chrome/110.0.5481.153" +DEVICE_MODEL = "pyhOn" +USER_AGENT = "Chrome/999.999.999.999" +MOBILE_ID = "pyhOn" diff --git a/pyhon/hon.py b/pyhon/hon.py index b8d25e2..c52d6eb 100644 --- a/pyhon/hon.py +++ b/pyhon/hon.py @@ -21,6 +21,7 @@ class Hon: email: Optional[str] = "", password: Optional[str] = "", session: Optional[ClientSession] = None, + mobile_id: str = "", test_data_path: Optional[Path] = None, ): self._email: Optional[str] = email @@ -29,6 +30,7 @@ class Hon: self._appliances: List[HonAppliance] = [] self._api: Optional[HonAPI] = None self._test_data_path: Path = test_data_path or Path().cwd() + self._mobile_id: str = mobile_id async def __aenter__(self) -> Self: return await self.create()