Beispiel #1
0
 def show(self, mess, args):
     """timer status, logs, etc"""
     r = re.match("^(?P<cmd>\S+) *(?P<cargs>.+)?$", args, re.I)
     if not r:
         return "What do you wan't me to show you?"
     ret, user = "", User.jid2user(mess.getFrom())
     cmd, cargs = r.group("cmd"), r.group("cargs")
     # timer commands
     if cmd == "timers":
         for desc, timer in user.get_timers():
             ret += "\n- %s: %s (%s)" % (desc, timer.target_str(), timer.remaining_str())
         return ret or "No timers set."
     # log commands
     elif cmd == "logs":
         if not cargs:
             for desc, ulog in user.get_logs():
                 ret += "\n- %s" % desc
             return ret or "No logs available."
         else:
             try:
                 entries = user.get_logs(cargs).entries
             except KeyError:
                 return "Couldn't find log '%s'" % cargs
             else:
                 ret = "%s:" % cargs
                 for entry in entries:
                     ret += "\n* %s: %s" % (entry.timestamp.strftime("%b %d, %T"), entry.logtext)
                 return ret
     else:
         return "I don't know '%s' command." % cmd
Beispiel #2
0
 def timer(self, mess, args):
     """sets an alarm for you (or acks it)"""
     if not args:
         return Timer.help()
     user = User.jid2user(mess.getFrom())
     r = re.match("^ack +(?P<timer>.*)$", args, re.I)
     if r:  # timer ack
         try:
             user.del_timer(r.group("timer"))
         except KeyError:
             return "Timer '%s' not found." % r.group("timer")
         else:
             return "Timer acknowledged."
     else:  # timer set
         try:
             t = user.set_timer(args)
         except (UserError, TimerError) as e:
             return str(e)
         else:
             return "Timer '%s' %s (%s)" % (t.description, t.target_str(), t.remaining_str())
Beispiel #3
0
 def logger(self, mess, args):
     """keeps registers with timestamps"""
     if not args:
         return Logger.help()
     user = User.jid2user(mess.getFrom())
     r = re.match("^del +(?P<log>.*)$", args, re.I)
     if r:  # delete log
         try:
             user.del_log(r.group("log"))
         except KeyError:
             return "Couldn't find log '%s'." % r.group("log")
         else:
             return "Log deleted."
     else:  # append log
         try:
             l = user.log_entry(args)
         except LoggerError as e:
             return str(e)
         else:
             return "logged."
Beispiel #4
0
 def status_type_changed(self, jid, new_status):
     # Use to load users state when they become online and track them
     user = User.jid2user(jid)
     user.status = new_status