From 336af8e0308b1cf0f5f7e02f9e58eaca12e80d72 Mon Sep 17 00:00:00 2001 From: Dennis Hemker Date: Thu, 19 Jun 2025 11:47:29 +0200 Subject: [PATCH 1/2] Fix safe encoding for passwords with exclamation mark (#93) Co-authored-by: Dennis Hemker --- reolinkapi/mixins/stream.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reolinkapi/mixins/stream.py b/reolinkapi/mixins/stream.py index 3b3a516..76dc239 100644 --- a/reolinkapi/mixins/stream.py +++ b/reolinkapi/mixins/stream.py @@ -40,7 +40,7 @@ def get_snap(self, timeout: float = 3, proxies: Any = None) -> Optional[Image]: 'user': self.username, 'password': self.password, } - parms = parse.urlencode(data).encode("utf-8") + parms = parse.urlencode(data, safe="!").encode("utf-8") try: response = requests.get(self.url, proxies=proxies, params=parms, timeout=timeout) From 87cd38263a37bf859f264ced18876ead6a55a1bf Mon Sep 17 00:00:00 2001 From: Matt <50885599+MJPye@users.noreply.github.com> Date: Thu, 19 Jun 2025 11:49:51 +0200 Subject: [PATCH 2/2] Add PtzPreset to SetPtzPreset POST data (#94) --- reolinkapi/mixins/ptz.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reolinkapi/mixins/ptz.py b/reolinkapi/mixins/ptz.py index 17ed2cb..fd11dfc 100644 --- a/reolinkapi/mixins/ptz.py +++ b/reolinkapi/mixins/ptz.py @@ -51,8 +51,8 @@ def _send_noparm_operation(self, operation: str) -> Dict: return self._execute_command('PtzCtrl', data) def _send_set_preset(self, enable: float, preset: float = 1, name: str = 'pos1') -> Dict: - data = [{"cmd": "SetPtzPreset", "action": 0, "param": { - "channel": 0, "enable": enable, "id": preset, "name": name}}] + data = [{"cmd": "SetPtzPreset", "action": 0, "param": { "PtzPreset": { + "channel": 0, "enable": enable, "id": preset, "name": name}}}] return self._execute_command('PtzCtrl', data) def go_to_preset(self, speed: float = 60, index: float = 1) -> Dict: