From a85e5845425b2be29d28961ebba59f98015570a8 Mon Sep 17 00:00:00 2001 From: Jorge Date: Tue, 13 Oct 2020 21:38:24 +0200 Subject: [PATCH 1/4] Update __init__.py Added option to use private XML feeds by allowing to request a feed with a password attached --- spot_sdk/__init__.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/spot_sdk/__init__.py b/spot_sdk/__init__.py index 08924be..af00a00 100644 --- a/spot_sdk/__init__.py +++ b/spot_sdk/__init__.py @@ -37,10 +37,22 @@ def __init__(self, key): self.key = key self.messages = [] + def __init__(self, key, password): + if not isinstance(key, str): + raise SpotSDKError('key should be string') + if not isinstance(password, str): + raise SpotSDKError('password should be string') + self.key = key + self.password = password + self.messages = [] + BASE_URL = 'https://api.findmespot.com/spot-main-web/consumer/rest-api/2.0/public/feed/' def __request_url(self): - return self.BASE_URL + self.key + '/message.json' + if hasattr(self, 'password'): + return self.BASE_URL + self.key + '/message.json' + else: + return self.BASE_URL + self.key + '/message.json?feedPassword=' + password def first(self): return self.messages[0] From b158d4476ea4a338f8ac0deca0ae9402ffed95b2 Mon Sep 17 00:00:00 2001 From: Jorge Date: Tue, 13 Oct 2020 21:55:27 +0200 Subject: [PATCH 2/4] Update __init__.py Oops, now it should work :-) for private feeds with password --- spot_sdk/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spot_sdk/__init__.py b/spot_sdk/__init__.py index af00a00..420bc11 100644 --- a/spot_sdk/__init__.py +++ b/spot_sdk/__init__.py @@ -52,7 +52,7 @@ def __request_url(self): if hasattr(self, 'password'): return self.BASE_URL + self.key + '/message.json' else: - return self.BASE_URL + self.key + '/message.json?feedPassword=' + password + return self.BASE_URL + self.key + '/message.json?feedPassword=' + self.password def first(self): return self.messages[0] From 16457aa6bb9db76556fea9a5387c38101f293726 Mon Sep 17 00:00:00 2001 From: Jorge Date: Tue, 13 Oct 2020 21:58:45 +0200 Subject: [PATCH 3/4] Update __init__.py Oops #2 ability to provide password for private feeds --- spot_sdk/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spot_sdk/__init__.py b/spot_sdk/__init__.py index 420bc11..e6f52a5 100644 --- a/spot_sdk/__init__.py +++ b/spot_sdk/__init__.py @@ -50,9 +50,9 @@ def __init__(self, key, password): def __request_url(self): if hasattr(self, 'password'): - return self.BASE_URL + self.key + '/message.json' - else: return self.BASE_URL + self.key + '/message.json?feedPassword=' + self.password + else: + return self.BASE_URL + self.key + '/message.json' def first(self): return self.messages[0] From 9a4cba26b177b1f49904fd376fa8308a70506b15 Mon Sep 17 00:00:00 2001 From: Jorge Date: Tue, 13 Oct 2020 22:07:07 +0200 Subject: [PATCH 4/4] Update README.rst Adding basic usage for private feeds that require password. --- README.rst | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/README.rst b/README.rst index 2d6e5cf..ce6b49b 100644 --- a/README.rst +++ b/README.rst @@ -62,6 +62,28 @@ Basic usage datetime(2017, 1, 1, 0, 42, 0) +Basic usage for private feeds (requiring password) +----------- +:: + + >>> from spot_sdk import Feed + >>> api_key = 'abcdefghijklmnopqrstuvwxy01234567' + >>> password = 'your-password' + >>> feed = Feed(api_key, password) + >>> feed.collect() + >>> feed.count() + 6 + >>> foo.messages + [, ... + >>> feed.first().type + 'UNLIMITED-TRACK' + >>> feed.last().battery_state + 'GOOD' + >>> feed.messages[0].latitude + 42.000 + >>> feed.last().datetime + datetime(2017, 1, 1, 0, 42, 0) + Running Test ------------ ::