from .plugin import Plugin, botcmd
class Echo(Plugin):
+ """Drop a message to be sent when someone gets online.
+ """
def __init__(self, bot):
Plugin.__init__(self, bot)
bot.add_event_handler("muc::%s::presence" % self.bot.room, self.log_presence)
def log_presence(self, pres):
- self.log.debug('{0}: {1}'.format(pres['muc']['nick'], pres['type']))
+ """Register presence"""
+ self.log.debug('%s: %s', pres['muc']['nick'], pres['type'])
nick = pres['muc']['nick']
self.presence.update({nick: (pres['muc']['role'], pres['type'])})
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
!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
if self.presence[sender][0] == 'moderator':
- self.online = set()
+ self.inbox = dict()
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):
+ """Format and drop message in the inbox"""
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)
+ self.log.debug('%s: %s', recipient, 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
if recipient in self.inbox.keys():
- self.inbox[recipient].append(letter)
+ self.inbox[recipient].append(letter)
else:
- self.inbox[recipient] = [letter]
+ self.inbox[recipient] = [letter]
# VIM MODLINE