From 51d65c33118d3f6adb82aeeff8c20ae4a1a41789 Mon Sep 17 00:00:00 2001 From: Ryan Hartlage Date: Sat, 17 Jul 2021 16:52:34 -0400 Subject: [PATCH 1/2] Allow group feeds to be subscribed to `IO_MQTT#subscribe` always checks `feed_key` even though it is not required. When `group_key` is provided instead of `feed_key`, `feed_key` should not be required to be valid. This change only validates `feed_key` when one is provided and adds validation for `group_key` when it is provided. --- adafruit_io/adafruit_io.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/adafruit_io/adafruit_io.py b/adafruit_io/adafruit_io.py index 943f23f..d2f638f 100755 --- a/adafruit_io/adafruit_io.py +++ b/adafruit_io/adafruit_io.py @@ -253,12 +253,14 @@ def subscribe(self, feed_key=None, group_key=None, shared_user=None): client.subscribe([('temperature'), ('humidity')]) """ - validate_feed_key(feed_key) if shared_user is not None and feed_key is not None: + validate_feed_key(feed_key) self._client.subscribe("{0}/f/{1}".format(shared_user, feed_key)) elif group_key is not None: + validate_feed_key(group_key) self._client.subscribe("{0}/g/{1}".format(self._user, group_key)) elif feed_key is not None: + validate_feed_key(feed_key) self._client.subscribe("{0}/f/{1}".format(self._user, feed_key)) else: raise AdafruitIO_MQTTError("Must provide a feed_key or group_key.") From 8749175f393c0ef86880174f0436416e5b4d8e33 Mon Sep 17 00:00:00 2001 From: Ryan Hartlage Date: Sat, 17 Jul 2021 17:20:19 -0400 Subject: [PATCH 2/2] Allow groups to be unsubscribed from --- adafruit_io/adafruit_io.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/adafruit_io/adafruit_io.py b/adafruit_io/adafruit_io.py index d2f638f..ab43d0b 100755 --- a/adafruit_io/adafruit_io.py +++ b/adafruit_io/adafruit_io.py @@ -335,12 +335,14 @@ def unsubscribe(self, feed_key=None, group_key=None, shared_user=None): client.unsubscribe('temperature', shared_user='adabot') """ - validate_feed_key(feed_key) if shared_user is not None and feed_key is not None: + validate_feed_key(feed_key) self._client.unsubscribe("{0}/f/{1}".format(shared_user, feed_key)) elif group_key is not None: + validate_feed_key(group_key) self._client.unsubscribe("{0}/g/{1}".format(self._user, feed_key)) elif feed_key is not None: + validate_feed_key(feed_key) self._client.unsubscribe("{0}/f/{1}".format(self._user, feed_key)) else: raise AdafruitIO_MQTTError("Must provide a feed_key or group_key.")