Skip to content

Commit 71fb828

Browse files
committed
prefect/ezdata: Add get_update_time and has_new_data methods
Signed-off-by: lbuque <[email protected]>
1 parent b190d87 commit 71fb828

File tree

1 file changed

+37
-3
lines changed

1 file changed

+37
-3
lines changed

m5stack/libs/ezdata/__init__.py

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ def __init__(self, token, key, public=False) -> None:
3838
self._data_token = None
3939
self._date_type = None
4040
self._public = public
41+
self._data_status = False
42+
self._update_time = 0
4143

4244
def set(self, value, is_file=False):
4345
if self._public:
@@ -63,12 +65,15 @@ def _set(self, value):
6365
rsp = urequests.post(url, json=payload, headers={})
6466
if rsp.status_code == 200:
6567
rsp_data = json.loads(rsp.text)
68+
rsp.close()
6669
if rsp_data["code"] == 200:
6770
self._value = value
6871
return self._value
6972
return None
7073
else:
7174
return None
75+
except:
76+
return None
7277
finally:
7378
del url, payload
7479

@@ -96,16 +101,32 @@ def _set_file(self, path: str):
96101
rsp = urequests.post(url, headers=headers, data=form.content())
97102
if rsp.status_code == 200:
98103
rsp_data = json.loads(rsp.text)
104+
rsp.close()
99105
if rsp_data["code"] == 200:
100106
self._value = path.split("/")[-1]
101107
return self._value
102108
return None
103109
else:
104110
return None
111+
except:
112+
return None
105113
finally:
106114
del url
107115

116+
def get_update_time(self):
117+
if self._update_time == 0:
118+
self.get()
119+
return self._update_time
120+
121+
def has_new_data(self):
122+
last_time = self._update_time
123+
self.get()
124+
self._data_status = True if self._update_time > last_time else False
125+
return self._data_status
126+
108127
def get(self):
128+
if self._data_status:
129+
return self._value
109130
url = None
110131
if self._public:
111132
url = "{0}/{1}/data".format(_server, self._device_token)
@@ -116,13 +137,17 @@ def get(self):
116137
rsp = urequests.get(url, headers={})
117138
if rsp.status_code == 200:
118139
rsp_data = json.loads(rsp.text)
140+
rsp.close()
119141
if rsp_data["code"] == 200:
120142
self._value = rsp_data["data"]["value"]
121143
self._date_type = rsp_data["data"]["dataType"]
144+
self._update_time = int(rsp_data["data"]["updateTime"])
122145
return self._value
123146
return None
124147
else:
125148
return None
149+
except:
150+
return None
126151
finally:
127152
del url
128153

@@ -134,6 +159,8 @@ def get_file(self, path):
134159
f = open(path, "wb")
135160
f.write(rsp.content)
136161
f.close()
162+
except:
163+
return None
137164
finally:
138165
pass
139166

@@ -149,11 +176,13 @@ def history(self) -> list:
149176
rsp = urequests.get(url, headers={})
150177
if rsp.status_code == 200:
151178
rsp_data = json.loads(rsp.text)
179+
rsp.close()
152180
if rsp_data["code"] == 200:
153181
for i in rsp_data["data"]["rows"]:
154182
res.append(i["value"])
155-
rsp.close()
156183
return res
184+
except:
185+
return None
157186
finally:
158187
del url, res
159188

@@ -168,8 +197,10 @@ def delete(self):
168197
)
169198
if rsp.status_code == 200:
170199
rsp_data = json.loads(rsp.text)
171-
if rsp_data["code"] == 200:
172-
rsp.close()
200+
rsp.close()
201+
return True if rsp_data["code"] == 200 else False
202+
except:
203+
return False
173204
finally:
174205
del url
175206

@@ -184,6 +215,7 @@ def get_key_list(device_token=None):
184215
rsp = urequests.get(url, headers={})
185216
if rsp.status_code == 200:
186217
rsp_data = json.loads(rsp.text)
218+
rsp.close()
187219
if rsp_data["code"] == 200:
188220
for iterm in rsp_data["data"]["rows"]:
189221
DEBUG and print("key:", iterm["name"])
@@ -193,5 +225,7 @@ def get_key_list(device_token=None):
193225
return None
194226
else:
195227
return None
228+
except:
229+
return None
196230
finally:
197231
del url

0 commit comments

Comments
 (0)