diff --git a/.coverage b/.coverage index cbd66c9..3476c12 100644 Binary files a/.coverage and b/.coverage differ diff --git a/src/solarlog_cli/solarlog_client.py b/src/solarlog_cli/solarlog_client.py index f5c4a75..b3549b2 100644 --- a/src/solarlog_cli/solarlog_client.py +++ b/src/solarlog_cli/solarlog_client.py @@ -41,6 +41,7 @@ def __init__(self, host: str, session: ClientSession | None, password: str = "") self._hashed_pwd: bool = False self._close_session: bool = True + self._token = "" #required for older firmware, where cookie is not sufficient async def test_connection(self) -> bool: """Test the connection to Solar-Log.""" @@ -114,6 +115,9 @@ async def login(self) -> bool: self.session.cookie_jar.update_cookies( {"SolarLog": response.cookies["SolarLog"].value}) + if not self._hashed_pwd: + self._token = response.cookies["SolarLog"].value + _LOGGER.debug("response: %s", text) _LOGGER.debug("cookies: %s", response.cookies) _LOGGER.debug("Login successful, token: %s", @@ -131,6 +135,9 @@ async def execute_http_request(self, body: str, path: str = "getjp", timeout: fl header = {"Content-Type": "text/html", "X-SL-CSRF-PROTECTION": "1"} + if self._token != "": + body = f"token={self._token}; " + body + _LOGGER.debug("HTTP-request header: %s", header) _LOGGER.debug("HTTP-request body: %s", body)