@@ -38,6 +38,8 @@ def __init__(self, token, key, public=False) -> None:
38
38
self ._data_token = None
39
39
self ._date_type = None
40
40
self ._public = public
41
+ self ._data_status = False
42
+ self ._update_time = 0
41
43
42
44
def set (self , value , is_file = False ):
43
45
if self ._public :
@@ -63,12 +65,15 @@ def _set(self, value):
63
65
rsp = urequests .post (url , json = payload , headers = {})
64
66
if rsp .status_code == 200 :
65
67
rsp_data = json .loads (rsp .text )
68
+ rsp .close ()
66
69
if rsp_data ["code" ] == 200 :
67
70
self ._value = value
68
71
return self ._value
69
72
return None
70
73
else :
71
74
return None
75
+ except :
76
+ return None
72
77
finally :
73
78
del url , payload
74
79
@@ -96,16 +101,32 @@ def _set_file(self, path: str):
96
101
rsp = urequests .post (url , headers = headers , data = form .content ())
97
102
if rsp .status_code == 200 :
98
103
rsp_data = json .loads (rsp .text )
104
+ rsp .close ()
99
105
if rsp_data ["code" ] == 200 :
100
106
self ._value = path .split ("/" )[- 1 ]
101
107
return self ._value
102
108
return None
103
109
else :
104
110
return None
111
+ except :
112
+ return None
105
113
finally :
106
114
del url
107
115
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
+
108
127
def get (self ):
128
+ if self ._data_status :
129
+ return self ._value
109
130
url = None
110
131
if self ._public :
111
132
url = "{0}/{1}/data" .format (_server , self ._device_token )
@@ -116,13 +137,17 @@ def get(self):
116
137
rsp = urequests .get (url , headers = {})
117
138
if rsp .status_code == 200 :
118
139
rsp_data = json .loads (rsp .text )
140
+ rsp .close ()
119
141
if rsp_data ["code" ] == 200 :
120
142
self ._value = rsp_data ["data" ]["value" ]
121
143
self ._date_type = rsp_data ["data" ]["dataType" ]
144
+ self ._update_time = int (rsp_data ["data" ]["updateTime" ])
122
145
return self ._value
123
146
return None
124
147
else :
125
148
return None
149
+ except :
150
+ return None
126
151
finally :
127
152
del url
128
153
@@ -134,6 +159,8 @@ def get_file(self, path):
134
159
f = open (path , "wb" )
135
160
f .write (rsp .content )
136
161
f .close ()
162
+ except :
163
+ return None
137
164
finally :
138
165
pass
139
166
@@ -149,11 +176,13 @@ def history(self) -> list:
149
176
rsp = urequests .get (url , headers = {})
150
177
if rsp .status_code == 200 :
151
178
rsp_data = json .loads (rsp .text )
179
+ rsp .close ()
152
180
if rsp_data ["code" ] == 200 :
153
181
for i in rsp_data ["data" ]["rows" ]:
154
182
res .append (i ["value" ])
155
- rsp .close ()
156
183
return res
184
+ except :
185
+ return None
157
186
finally :
158
187
del url , res
159
188
@@ -168,8 +197,10 @@ def delete(self):
168
197
)
169
198
if rsp .status_code == 200 :
170
199
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
173
204
finally :
174
205
del url
175
206
@@ -184,6 +215,7 @@ def get_key_list(device_token=None):
184
215
rsp = urequests .get (url , headers = {})
185
216
if rsp .status_code == 200 :
186
217
rsp_data = json .loads (rsp .text )
218
+ rsp .close ()
187
219
if rsp_data ["code" ] == 200 :
188
220
for iterm in rsp_data ["data" ]["rows" ]:
189
221
DEBUG and print ("key:" , iterm ["name" ])
@@ -193,5 +225,7 @@ def get_key_list(device_token=None):
193
225
return None
194
226
else :
195
227
return None
228
+ except :
229
+ return None
196
230
finally :
197
231
del url
0 commit comments