Mercurial > libervia-backend
comparison src/tools/common/data_objects.py @ 2464:8788c217a49e
tools (common/data_objects): added classes for messages
author | Goffi <goffi@goffi.org> |
---|---|
date | Wed, 03 Jan 2018 00:21:21 +0100 |
parents | 8b37a62336c3 |
children | adcc35625e17 |
comparison
equal
deleted
inserted
replaced
2463:65a6d2496504 | 2464:8788c217a49e |
---|---|
131 | 131 |
132 | 132 |
133 class BlogItems(object): | 133 class BlogItems(object): |
134 | 134 |
135 def __init__(self, mb_data): | 135 def __init__(self, mb_data): |
136 self.mb_data = mb_data | |
137 self.items = [BlogItem(i) for i in mb_data[0]] | 136 self.items = [BlogItem(i) for i in mb_data[0]] |
138 self.metadata = mb_data[1] | 137 self.metadata = mb_data[1] |
139 | 138 |
140 @property | 139 @property |
141 def service(self): | 140 def service(self): |
164 def __reversed__(self): | 163 def __reversed__(self): |
165 return self.items.__reversed__() | 164 return self.items.__reversed__() |
166 | 165 |
167 def __contains__(self, item): | 166 def __contains__(self, item): |
168 return self.items.__contains__(item) | 167 return self.items.__contains__(item) |
168 | |
169 | |
170 class Message(object): | |
171 | |
172 def __init__(self, msg_data): | |
173 self._uid = msg_data[0] | |
174 self._timestamp = msg_data[1] | |
175 self._from_jid = msg_data[2] | |
176 self._to_jid = msg_data[3] | |
177 self._message_data = msg_data[4] | |
178 self._subject_data = msg_data[5] | |
179 self._type = msg_data[6] | |
180 self._extra = msg_data[7] | |
181 self._html = dict(data_format.getSubDict('xhtml', self._extra)) | |
182 | |
183 @property | |
184 def id(self): | |
185 return self._uid | |
186 | |
187 @property | |
188 def timestamp(self): | |
189 return self._timestamp | |
190 | |
191 @property | |
192 def from_(self): | |
193 return self._from_jid | |
194 | |
195 @property | |
196 def text(self): | |
197 try: | |
198 return self._message_data[''] | |
199 except KeyError: | |
200 return next(self._message_data.itervalues()) | |
201 | |
202 @property | |
203 def subject(self): | |
204 try: | |
205 return self._subject_data[''] | |
206 except KeyError: | |
207 return next(self._subject_data.itervalues()) | |
208 | |
209 @property | |
210 def type(self): | |
211 return self._type | |
212 | |
213 @property | |
214 def thread(self): | |
215 return self._extra.get('thread') | |
216 | |
217 @property | |
218 def thread_parent(self): | |
219 return self._extra.get('thread_parent') | |
220 | |
221 @property | |
222 def received(self): | |
223 return self._extra.get('received_timestamp', self._timestamp) | |
224 | |
225 @property | |
226 def delay_sender(self): | |
227 return self._extra.get('delay_sender') | |
228 | |
229 @property | |
230 def info_type(self): | |
231 return self._extra.get('info_type') | |
232 | |
233 @property | |
234 def html(self): | |
235 if not self._html: | |
236 return None | |
237 try: | |
238 return safe(self._html['']) | |
239 except KeyError: | |
240 return safe(next(self._html.itervalues())) | |
241 | |
242 | |
243 class Messages(object): | |
244 | |
245 def __init__(self, msgs_data): | |
246 self.messages = [Message(m) for m in msgs_data] | |
247 | |
248 def __len__(self): | |
249 return self.messages.__len__() | |
250 | |
251 def __missing__(self, key): | |
252 return self.messages.__missing__(key) | |
253 | |
254 def __getitem__(self, key): | |
255 return self.messages.__getitem__(key) | |
256 | |
257 def __iter__(self): | |
258 return self.messages.__iter__() | |
259 | |
260 def __reversed__(self): | |
261 return self.messages.__reversed__() | |
262 | |
263 def __contains__(self, item): | |
264 return self.messages.__contains__(item) | |
169 | 265 |
170 | 266 |
171 class Identity(object): | 267 class Identity(object): |
172 | 268 |
173 def __init__(self, jid_str, data=None): | 269 def __init__(self, jid_str, data=None): |