diff src/plugins/plugin_xep_0249.py @ 1358:bf3f669a6052 frontends_multi_profiles

plugins XEP-0045, XEP-0249, parrot: use JID instead of unicode in many methods + class attributes
author souliane <souliane@mailoo.org>
date Wed, 11 Mar 2015 12:35:21 +0100
parents 291eb8216f6e
children 876c9fbd0b3d
line wrap: on
line diff
--- a/src/plugins/plugin_xep_0249.py	Mon Mar 09 16:37:15 2015 +0100
+++ b/src/plugins/plugin_xep_0249.py	Wed Mar 11 12:35:21 2015 +0100
@@ -120,18 +120,18 @@
         #TODO: check parameters validity
         self.invite(jid.JID(target), jid.JID("%s@%s" % (roomId, service)), options, profile_key)
 
-    def _accept(self, room, profile_key=C.PROF_KEY_NONE):
-        """
-        Accept the invitation to join a MUC
-        @param room: room jid as string
+    def _accept(self, room_jid, profile_key=C.PROF_KEY_NONE):
+        """Accept the invitation to join a MUC.
+
+        @param room (jid.JID): JID of the room
         """
         profile = self.host.memory.getProfileName(profile_key)
         if not profile:
             log.error(_("Profile doesn't exists !"))
             return
-        log.info(_('Invitation accepted for room %(room)s [%(profile)s]') % {'room': room, 'profile': profile})
+        log.info(_('Invitation accepted for room %(room)s [%(profile)s]') % {'room': room_jid.userhost(), 'profile': profile})
         _jid, xmlstream = self.host.getJidNStream(profile)
-        d = self.host.plugins["XEP-0045"].join(jid.JID(room), _jid.user, {}, profile)
+        d = self.host.plugins["XEP-0045"].join(room_jid, _jid.user, {}, profile)
         return d
 
     def onInvitation(self, message, profile):
@@ -141,28 +141,29 @@
         @profile: %(doc_profile)s
         """
         try:
-            room = message.firstChildElement()['jid']
-            log.info(_('Invitation received for room %(room)s [%(profile)s]') % {'room': room, 'profile': profile})
+            room_jid_s = message.firstChildElement()['jid']
+            log.info(_('Invitation received for room %(room)s [%(profile)s]') % {'room': room_jid_s, 'profile': profile})
         except:
             log.error(_('Error while parsing invitation'))
             return
-        from_ = message["from"]
-        if room in self.host.plugins["XEP-0045"].clients[profile].joined_rooms:
+        from_jid_s = message["from"]
+        room_jid = jid.JID(room_jid_s)
+        if room_jid in self.host.plugins["XEP-0045"].clients[profile].joined_rooms:
             log.info(_("Invitation silently discarded because user is already in the room."))
             return
         autojoin = self.host.memory.getParamA(AUTOJOIN_NAME, AUTOJOIN_KEY, profile_key=profile)
 
         def accept_cb(conf_id, accepted, data, profile):
-            if conf_id == room and accepted:
-                self._accept(room, profile)
+            if conf_id == room_jid_s and accepted:
+                self._accept(room_jid, profile)
 
         if autojoin == "always":
-            self._accept(room, profile)
+            self._accept(room_jid, profile)
         elif autojoin == "never":
-            self.host.bridge.newAlert(_("An invitation from %(user)s to join the room %(room)s has been declined according to your personal settings.") % {'user': from_, 'room': room}, _("MUC invitation"), "INFO", profile)
+            self.host.bridge.newAlert(_("An invitation from %(user)s to join the room %(room)s has been declined according to your personal settings.") % {'user': from_jid_s, 'room': room_jid_s}, _("MUC invitation"), "INFO", profile)
         else:  # leave the default value here
-            data = {"message": _("You have been invited by %(user)s to join the room %(room)s. Do you accept?") % {'user': from_, 'room': room}, "title": _("MUC invitation")}
-            self.host.askConfirmation(room, "YES/NO", data, accept_cb, profile)
+            data = {"message": _("You have been invited by %(user)s to join the room %(room)s. Do you accept?") % {'user': from_jid_s, 'room': room_jid_s}, "title": _("MUC invitation")}
+            self.host.askConfirmation(room_jid_s, "YES/NO", data, accept_cb, profile)
 
     def cmd_invite(self, mess_data, profile):
         """invite someone in the room