]> kaliko git repositories - sid.git/blobdiff - sid/echo.py
Now handles private msg in MUC
[sid.git] / sid / echo.py
index cbf2eabf272f098be976327fb760d3d3286a5a57..f0e05b8e9d35cfedd93ff3fc72c0233b4447b28d 100644 (file)
@@ -37,7 +37,9 @@ class Echo(Plugin):
         self.log.debug(self.presence)
         if pres['type'] == 'available':
             while self.inbox.get(nick, []):
-                self.send(self.inbox.get(nick).pop())
+                self.send(self.bot.room,
+                          self.inbox.get(nick).pop(),
+                          mtype='groupchat')
             self.inbox.pop(nick)
 
     @botcmd
@@ -46,12 +48,14 @@ class Echo(Plugin):
         !tell queue        : messages in queue
         !tell <nick> <msg> : append <msg> to <nick> in queue"""
         if not len(args):
-            self.send('Missing arguments:\n{}'.format(self.tell.__doc__))
+            msg = 'Missing arguments:\n{}'.format(self.tell.__doc__)
+            self.reply(message, msg)
             return
         if len(args) == 1:
             if args[0] == 'queue':
-                self.send('\n'.join(['{0}:\n\t{1}'.format(k, '\n'.join(v))
-                                      for k, v in self.inbox.items()]))
+                msg = '\n'.join(['{0}:\n\t{1}'.format(k, '\n'.join(v))
+                                for k, v in self.inbox.items()])
+                self.reply(message, msg)
                 return
             if args[0] == 'purge':
                 sender = message['from'].resource
@@ -59,13 +63,17 @@ class Echo(Plugin):
                     self.online = set()
                 return
         if len(args) < 2:
-            self.send('Please provide a message:\n{}'.format(self.tell.__doc__))
+            msg = 'Please provide a message:\n{}'.format(self.tell.__doc__)
+            self.reply(message, msg)
             return
+        self._handle_msg(message)
+
+    def _handle_msg(self, message):
         sender = message['from'].resource
         recipient = message['body'].split()[1]
         tell_msg = ' '.join(message['body'].split()[2:])
         self.log.debug('{0}: {1}'.format(recipient, tell_msg))
-        letter = '{0}, {1} told me to tell you: {2}'.format(recipient, sender, tell_msg)
+        letter = '{0}, {1} wanted you to know: {2}'.format(recipient, sender, tell_msg)
         if (self.presence.get(recipient) and
                 self.presence[recipient][1] == 'available'):
             return