Mercurial > libervia-backend
comparison sat/plugins/plugin_exp_events.py @ 2941:83cbd4545274
plugin events: fixed invitation + set name and thumb_url from event element
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 04 May 2019 00:06:41 +0200 |
parents | 4f600b4ae819 |
children | ab2696e34d29 |
comparison
equal
deleted
inserted
replaced
2940:ef554aca3eb1 | 2941:83cbd4545274 |
---|---|
141 | 141 |
142 def _parseEventElt(self, event_elt): | 142 def _parseEventElt(self, event_elt): |
143 """Helper method to parse event element | 143 """Helper method to parse event element |
144 | 144 |
145 @param (domish.Element): event_elt | 145 @param (domish.Element): event_elt |
146 @return (tupple[int, dict[unicode, unicode]): timestamp, event_data | 146 @return (tuple[int, dict[unicode, unicode]): timestamp, event_data |
147 """ | 147 """ |
148 try: | 148 try: |
149 timestamp = date_utils.date_parse(next(event_elt.elements(NS_EVENT, "date"))) | 149 timestamp = date_utils.date_parse(next(event_elt.elements(NS_EVENT, "date"))) |
150 except StopIteration: | 150 except StopIteration: |
151 timestamp = -1 | 151 timestamp = -1 |
230 raise exceptions.NotFound(_(u"No event element has been found")) | 230 raise exceptions.NotFound(_(u"No event element has been found")) |
231 except IndexError: | 231 except IndexError: |
232 raise exceptions.NotFound(_(u"No event with this id has been found")) | 232 raise exceptions.NotFound(_(u"No event with this id has been found")) |
233 defer.returnValue(event_elt) | 233 defer.returnValue(event_elt) |
234 | 234 |
235 def register(self, client, name, extra, service, node, event_id, event_elt, | 235 def register(self, client, name, extra, service, node, event_id, item_elt, |
236 creator=False): | 236 creator=False): |
237 """register evenement in personal events list | 237 """Register evenement in personal events list |
238 | 238 |
239 @param service(jid.JID): pubsub service of the event | 239 @param service(jid.JID): pubsub service of the event |
240 @param node(unicode): event node | 240 @param node(unicode): event node |
241 @param event_id(unicode): event id | 241 @param event_id(unicode): event id |
242 @param event_elt(domish.Element): event element | 242 @param event_elt(domish.Element): event element |
243 note that this element will be modified in place | 243 note that this element will be modified in place |
244 @param creator(bool): True if client's profile is the creator of the node | 244 @param creator(bool): True if client's profile is the creator of the node |
245 """ | 245 """ |
246 # FIXME: name and extra are unused | 246 event_elt = item_elt.event |
247 link_elt = event_elt.addElement("link") | 247 link_elt = event_elt.addElement("link") |
248 link_elt["service"] = service.full() | 248 link_elt["service"] = service.full() |
249 link_elt["node"] = node | 249 link_elt["node"] = node |
250 link_elt["item"] = event_id | 250 link_elt["item"] = event_id |
251 __, event_data = self._parseEventElt(event_elt) | |
252 name = event_data.get(u'name') | |
253 if u'image' in event_data: | |
254 extra = {u'thumb_url': event_data[u'image']} | |
255 else: | |
256 extra = None | |
251 return self.host.plugins[u'LIST_INTEREST'].registerPubsub( | 257 return self.host.plugins[u'LIST_INTEREST'].registerPubsub( |
252 client, NS_EVENT, service, node, event_id, creator, | 258 client, NS_EVENT, service, node, event_id, creator, |
253 element=event_elt) | 259 name=name, element=event_elt, extra=extra) |
254 | 260 |
255 def _eventGet(self, service, node, id_=u"", profile_key=C.PROF_KEY_NONE): | 261 def _eventGet(self, service, node, id_=u"", profile_key=C.PROF_KEY_NONE): |
256 service = jid.JID(service) if service else None | 262 service = jid.JID(service) if service else None |
257 node = node if node else NS_EVENT | 263 node = node if node else NS_EVENT |
258 client = self.host.getClient(profile_key) | 264 client = self.host.getClient(profile_key) |
429 client, service, node, namespace=NS_EVENT) | 435 client, service, node, namespace=NS_EVENT) |
430 events = [] | 436 events = [] |
431 for item in items: | 437 for item in items: |
432 try: | 438 try: |
433 event_elt = next(item.interest.pubsub.elements(NS_EVENT, u"event")) | 439 event_elt = next(item.interest.pubsub.elements(NS_EVENT, u"event")) |
434 except IndexError: | 440 except StopIteration: |
435 log.warning( | 441 log.warning( |
436 _(u"No event found in item {item_id}").format(item_id=item["id"]) | 442 _(u"No event found in item {item_id}, ignoring").format( |
443 item_id=item["id"]) | |
437 ) | 444 ) |
438 else: | 445 else: |
439 timestamp, data = self._parseEventElt(event_elt) | 446 timestamp, data = self._parseEventElt(event_elt) |
440 events.append((timestamp, data)) | 447 events.append((timestamp, data)) |
441 defer.returnValue(events) | 448 defer.returnValue(events) |
593 client, comments_service, comments_node, {invitee_jid: u"publisher"} | 600 client, comments_service, comments_node, {invitee_jid: u"publisher"} |
594 ) | 601 ) |
595 log.debug(_(u"affiliation set on blog and comments nodes")) | 602 log.debug(_(u"affiliation set on blog and comments nodes")) |
596 | 603 |
597 # now we send the invitation | 604 # now we send the invitation |
598 pubsub_invitation = self.host.plugins[u'PUBSUB_INVITATION'] | 605 pubsub_invitation = self.host.plugins[u'INVITATION'] |
599 pubsub_invitation.sendPubsubInvitation(client, invitee_jid, service, node, | 606 pubsub_invitation.sendPubsubInvitation(client, invitee_jid, service, node, |
600 item_id, name, extra) | 607 item_id, name, extra) |
601 | 608 |
602 def _inviteByEmail(self, service, node, id_=NS_EVENT, email=u"", emails_extra=None, | 609 def _inviteByEmail(self, service, node, id_=NS_EVENT, email=u"", emails_extra=None, |
603 name=u"", host_name=u"", language=u"", url_template=u"", | 610 name=u"", host_name=u"", language=u"", url_template=u"", |
604 message_subject=u"", message_body=u"", | 611 message_subject=u"", message_body=u"", |
605 profile_key=C.PROF_KEY_NONE): | 612 profile_key=C.PROF_KEY_NONE): |