Mercurial > libervia-backend
comparison src/plugins/plugin_misc_groupblog.py @ 1409:3265a2639182
massive (preventive) addition of 'u' (unicode) before the strings passed to logging functions
author | souliane <souliane@mailoo.org> |
---|---|
date | Thu, 16 Apr 2015 14:57:57 +0200 |
parents | 069ad98b360d |
children | be2df1ddea8e |
comparison
equal
deleted
inserted
replaced
1408:8a7145138330 | 1409:3265a2639182 |
---|---|
162 #we don't have any pubsub server featuring item access yet | 162 #we don't have any pubsub server featuring item access yet |
163 item_access_pubsubs = yield self.host.findFeaturesSet((NS_PUBSUB_AUTO_CREATE, NS_PUBSUB_CREATOR_JID_CHECK), "pubsub", "service", profile_key=profile) | 163 item_access_pubsubs = yield self.host.findFeaturesSet((NS_PUBSUB_AUTO_CREATE, NS_PUBSUB_CREATOR_JID_CHECK), "pubsub", "service", profile_key=profile) |
164 # item_access_pubsubs = yield self.host.findFeaturesSet((NS_PUBSUB_ITEM_ACCESS, NS_PUBSUB_AUTO_CREATE, NS_PUBSUB_CREATOR_JID_CHECK), "pubsub", "service", profile_key=profile) | 164 # item_access_pubsubs = yield self.host.findFeaturesSet((NS_PUBSUB_ITEM_ACCESS, NS_PUBSUB_AUTO_CREATE, NS_PUBSUB_CREATOR_JID_CHECK), "pubsub", "service", profile_key=profile) |
165 try: | 165 try: |
166 client.item_access_pubsub = item_access_pubsubs.pop() | 166 client.item_access_pubsub = item_access_pubsubs.pop() |
167 log.info(_("item-access powered pubsub service found: [%s]") % client.item_access_pubsub.full()) | 167 log.info(_(u"item-access powered pubsub service found: [%s]") % client.item_access_pubsub.full()) |
168 except KeyError: | 168 except KeyError: |
169 client.item_access_pubsub = None | 169 client.item_access_pubsub = None |
170 | 170 |
171 if not client.item_access_pubsub: | 171 if not client.item_access_pubsub: |
172 log.error(_("No item-access powered pubsub server found, can't use group blog")) | 172 log.error(_(u"No item-access powered pubsub server found, can't use group blog")) |
173 raise NoCompatiblePubSubServerFound | 173 raise NoCompatiblePubSubServerFound |
174 | 174 |
175 defer.returnValue((profile, client)) | 175 defer.returnValue((profile, client)) |
176 | 176 |
177 def pubSubItemsReceivedTrigger(self, event, profile): | 177 def pubSubItemsReceivedTrigger(self, event, profile): |
185 #FIXME: basic origin check, must be improved | 185 #FIXME: basic origin check, must be improved |
186 #TODO: automatic security test | 186 #TODO: automatic security test |
187 if (not (origin_host) | 187 if (not (origin_host) |
188 or len(event_host) < len(origin_host) | 188 or len(event_host) < len(origin_host) |
189 or event_host[-len(origin_host):] != origin_host): | 189 or event_host[-len(origin_host):] != origin_host): |
190 log.warning("Host incoherence between %s and %s (hack attempt ?)" % (unicode(event.sender), | 190 log.warning(u"Host incoherence between %s and %s (hack attempt ?)" % (unicode(event.sender), |
191 unicode(publisher))) | 191 unicode(publisher))) |
192 return False | 192 return False |
193 | 193 |
194 client = self.host.getClient(profile) | 194 client = self.host.getClient(profile) |
195 | 195 |
396 node = self.getNodeName(client.jid) | 396 node = self.getNodeName(client.jid) |
397 if comments: | 397 if comments: |
398 # remove the associated comments node | 398 # remove the associated comments node |
399 comments_service, comments_node = self.host.plugins["XEP-0277"].parseCommentUrl(comments) | 399 comments_service, comments_node = self.host.plugins["XEP-0277"].parseCommentUrl(comments) |
400 d = self.host.plugins["XEP-0060"].deleteNode(comments_service, comments_node, profile_key=profile) | 400 d = self.host.plugins["XEP-0060"].deleteNode(comments_service, comments_node, profile_key=profile) |
401 d.addErrback(lambda failure: log.error("Deletion of node %s failed: %s" % (comments_node, failure.getErrorMessage()))) | 401 d.addErrback(lambda failure: log.error(u"Deletion of node %s failed: %s" % (comments_node, failure.getErrorMessage()))) |
402 # remove the item itself | 402 # remove the item itself |
403 d = self.host.plugins["XEP-0060"].retractItems(service_jid, node, [item_id], profile_key=profile) | 403 d = self.host.plugins["XEP-0060"].retractItems(service_jid, node, [item_id], profile_key=profile) |
404 d.addErrback(lambda failure: log.error("Deletion of item %s from %s failed: %s" % (item_id, node, failure.getErrorMessage()))) | 404 d.addErrback(lambda failure: log.error(u"Deletion of item %s from %s failed: %s" % (item_id, node, failure.getErrorMessage()))) |
405 return d | 405 return d |
406 | 406 |
407 def notify(d): | 407 def notify(d): |
408 # TODO: this works only on the same host, and notifications for item deletion should be | 408 # TODO: this works only on the same host, and notifications for item deletion should be |
409 # implemented according to http://xmpp.org/extensions/xep-0060.html#publisher-delete-success-notify | 409 # implemented according to http://xmpp.org/extensions/xep-0060.html#publisher-delete-success-notify |
448 # XXX: use the item identifier? http://bugs.goffi.org/show_bug.cgi?id=63 | 448 # XXX: use the item identifier? http://bugs.goffi.org/show_bug.cgi?id=63 |
449 entry_id = comments_node.split('_')[1].split('__')[0] | 449 entry_id = comments_node.split('_')[1].split('__')[0] |
450 self.__fillCommentsElement(mblog_data, entry_id, node, service_jid) | 450 self.__fillCommentsElement(mblog_data, entry_id, node, service_jid) |
451 entry_d = self.host.plugins["XEP-0277"].data2entry(mblog_data, profile) | 451 entry_d = self.host.plugins["XEP-0277"].data2entry(mblog_data, profile) |
452 entry_d.addCallback(lambda mblog_item: self.host.plugins["XEP-0060"].publish(service_jid, node, items=[mblog_item], profile_key=profile)) | 452 entry_d.addCallback(lambda mblog_item: self.host.plugins["XEP-0060"].publish(service_jid, node, items=[mblog_item], profile_key=profile)) |
453 entry_d.addErrback(lambda failure: log.error("Modification of %s failed: %s" % (pub_data, failure.getErrorMessage()))) | 453 entry_d.addErrback(lambda failure: log.error(u"Modification of %s failed: %s" % (pub_data, failure.getErrorMessage()))) |
454 return entry_d | 454 return entry_d |
455 | 455 |
456 return self._initialise(profile_key).addCallback(initialised) | 456 return self._initialise(profile_key).addCallback(initialised) |
457 | 457 |
458 def sendGroupBlogComment(self, node_url, message, extra, profile_key=C.PROF_KEY_NONE): | 458 def sendGroupBlogComment(self, node_url, message, extra, profile_key=C.PROF_KEY_NONE): |
492 @defer.inlineCallbacks | 492 @defer.inlineCallbacks |
493 def cb(gbdata): | 493 def cb(gbdata): |
494 try: | 494 try: |
495 gbdata['service'] = client.item_access_pubsub.full() | 495 gbdata['service'] = client.item_access_pubsub.full() |
496 except AttributeError: | 496 except AttributeError: |
497 log.warning(_("Pubsub service is unknown for blog entry %s") % gbdata['id']) | 497 log.warning(_(u"Pubsub service is unknown for blog entry %s") % gbdata['id']) |
498 # every comments node must be subscribed, except if we are the publisher (we are already subscribed in this case) | 498 # every comments node must be subscribed, except if we are the publisher (we are already subscribed in this case) |
499 if "comments_node" in gbdata and pub_jid.userhostJID() != client.jid.userhostJID(): | 499 if "comments_node" in gbdata and pub_jid.userhostJID() != client.jid.userhostJID(): |
500 try: | 500 try: |
501 service = jid.JID(gbdata["comments_service"]) | 501 service = jid.JID(gbdata["comments_service"]) |
502 node = gbdata["comments_node"] | 502 node = gbdata["comments_node"] |
503 except KeyError: | 503 except KeyError: |
504 log.error(_("Missing key for blog comment %s") % gbdata['id']) | 504 log.error(_(u"Missing key for blog comment %s") % gbdata['id']) |
505 defer.returnValue(gbdata) | 505 defer.returnValue(gbdata) |
506 # TODO: see if it is really needed to check for not subscribing twice to the node | 506 # TODO: see if it is really needed to check for not subscribing twice to the node |
507 # It previously worked without this check, but the pubsub service logs were polluted | 507 # It previously worked without this check, but the pubsub service logs were polluted |
508 # or, if in debug mode, it made sat-pubsub very difficult to debug. | 508 # or, if in debug mode, it made sat-pubsub very difficult to debug. |
509 subscribed_nodes = yield self.host.plugins['XEP-0060'].listSubscribedNodes(service, profile=client.profile) | 509 subscribed_nodes = yield self.host.plugins['XEP-0060'].listSubscribedNodes(service, profile=client.profile) |
764 | 764 |
765 def cb(nodes): | 765 def cb(nodes): |
766 d_list = [] | 766 d_list = [] |
767 for node in [node for node in nodes if node.endswith(main_node)]: | 767 for node in [node for node in nodes if node.endswith(main_node)]: |
768 d = self.host.plugins["XEP-0060"].deleteNode(service, node, profile_key=profile) | 768 d = self.host.plugins["XEP-0060"].deleteNode(service, node, profile_key=profile) |
769 d.addErrback(lambda failure: log.error(_("Deletion of node %(node)s failed: %(message)s") % | 769 d.addErrback(lambda failure: log.error(_(u"Deletion of node %(node)s failed: %(message)s") % |
770 {'node': node, 'message': failure.getErrorMessage()})) | 770 {'node': node, 'message': failure.getErrorMessage()})) |
771 d_list.append(d) | 771 d_list.append(d) |
772 return defer.DeferredList(d_list) | 772 return defer.DeferredList(d_list) |
773 | 773 |
774 d = self.host.plugins["XEP-0060"].listNodes(service, profile=profile) | 774 d = self.host.plugins["XEP-0060"].listNodes(service, profile=profile) |
775 d.addCallback(cb) | 775 d.addCallback(cb) |
776 d.addCallback(lambda dummy: log.info(_("All microblog's main items from %s have been deleted!") % jid_.userhost())) | 776 d.addCallback(lambda dummy: log.info(_(u"All microblog's main items from %s have been deleted!") % jid_.userhost())) |
777 return d | 777 return d |
778 | 778 |
779 return self._initialise(profile_key).addCallback(initialised) | 779 return self._initialise(profile_key).addCallback(initialised) |
780 | 780 |
781 def deleteAllGroupBlogsComments(self, profile_key=C.PROF_KEY_NONE): | 781 def deleteAllGroupBlogsComments(self, profile_key=C.PROF_KEY_NONE): |
795 if jid_ == client.jid.userhostJID(): | 795 if jid_ == client.jid.userhostJID(): |
796 continue # do not remove the comments on our own node | 796 continue # do not remove the comments on our own node |
797 main_node = self.getNodeName(jid_) | 797 main_node = self.getNodeName(jid_) |
798 d = self.host.plugins["XEP-0060"].getItems(service, main_node, profile_key=profile) | 798 d = self.host.plugins["XEP-0060"].getItems(service, main_node, profile_key=profile) |
799 d.addCallback(lambda res: getComments(res[0], client)) | 799 d.addCallback(lambda res: getComments(res[0], client)) |
800 d.addErrback(lambda failure, main_node: log.error(_("Retrieval of items for node %(node)s failed: %(message)s") % | 800 d.addErrback(lambda failure, main_node: log.error(_(u"Retrieval of items for node %(node)s failed: %(message)s") % |
801 {'node': main_node, 'message': failure.getErrorMessage()}), main_node) | 801 {'node': main_node, 'message': failure.getErrorMessage()}), main_node) |
802 blogs.append(d) | 802 blogs.append(d) |
803 | 803 |
804 return defer.DeferredList(blogs) | 804 return defer.DeferredList(blogs) |
805 | 805 |
818 continue | 818 continue |
819 href = link.getAttribute('href') | 819 href = link.getAttribute('href') |
820 service, node = self.host.plugins['XEP-0277'].parseCommentUrl(href) | 820 service, node = self.host.plugins['XEP-0277'].parseCommentUrl(href) |
821 d = self.host.plugins["XEP-0060"].getItems(service, node, profile_key=profile_key) | 821 d = self.host.plugins["XEP-0060"].getItems(service, node, profile_key=profile_key) |
822 d.addCallback(lambda items: (service, node, items[0])) | 822 d.addCallback(lambda items: (service, node, items[0])) |
823 d.addErrback(lambda failure, node: log.error(_("Retrieval of comments for node %(node)s failed: %(message)s") % | 823 d.addErrback(lambda failure, node: log.error(_(u"Retrieval of comments for node %(node)s failed: %(message)s") % |
824 {'node': node, 'message': failure.getErrorMessage()}), node) | 824 {'node': node, 'message': failure.getErrorMessage()}), node) |
825 comments.append(d) | 825 comments.append(d) |
826 dlist = defer.DeferredList(comments) | 826 dlist = defer.DeferredList(comments) |
827 dlist.addCallback(deleteComments, client) | 827 dlist.addCallback(deleteComments, client) |
828 return dlist | 828 return dlist |
850 if name.children[0] == user_jid_s: | 850 if name.children[0] == user_jid_s: |
851 item_ids.append(comment_item.getAttribute('id')) | 851 item_ids.append(comment_item.getAttribute('id')) |
852 deletions = [] | 852 deletions = [] |
853 if item_ids: # remove the comments of the user on the given post | 853 if item_ids: # remove the comments of the user on the given post |
854 d = self.host.plugins['XEP-0060'].retractItems(service, node_id, item_ids, profile_key=profile_key) | 854 d = self.host.plugins['XEP-0060'].retractItems(service, node_id, item_ids, profile_key=profile_key) |
855 d.addCallback(lambda dummy, node_id: log.debug(_('Comments of user %(user)s in node %(node)s have been retracted') % | 855 d.addCallback(lambda dummy, node_id: log.debug(_(u'Comments of user %(user)s in node %(node)s have been retracted') % |
856 {'user': user_jid_s, 'node': node_id}), node_id) | 856 {'user': user_jid_s, 'node': node_id}), node_id) |
857 d.addErrback(lambda failure, node_id: log.error(_("Retraction of comments from %(user)s in node %(node)s failed: %(message)s") % | 857 d.addErrback(lambda failure, node_id: log.error(_(u"Retraction of comments from %(user)s in node %(node)s failed: %(message)s") % |
858 {'user': user_jid_s, 'node': node_id, 'message': failure.getErrorMessage()}), node_id) | 858 {'user': user_jid_s, 'node': node_id, 'message': failure.getErrorMessage()}), node_id) |
859 deletions.append(d) | 859 deletions.append(d) |
860 return defer.DeferredList(deletions) | 860 return defer.DeferredList(deletions) |
861 | 861 |
862 return self._initialise(profile_key).addCallback(initialised) | 862 return self._initialise(profile_key).addCallback(initialised) |