seen.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. from event import Event
  2. from util import __prettyDate as prettydate
  3. from datetime import datetime
  4. class UserHistory():
  5. def __init__(self, user=None, timestamp=None):
  6. self.user = user
  7. self.timestamp = timestamp
  8. try:
  9. from basemodule import BaseModule
  10. except ImportError:
  11. from modules.basemodule import BaseModule
  12. class Seen(BaseModule):
  13. def mem_store_init(self):
  14. if not "tell" in self.bot.mem_store:
  15. self.bot.mem_store['tell'] = dict()
  16. def post_init(self):
  17. self.interests = ['__privmsg__'] # should be first event in the listing.. so lines being added is a priority
  18. for event in self.events:
  19. if event._type in self.interests:
  20. event.subscribe(self)
  21. self.help = ".seen <nickname>. describes when the bot last saw <nickname> active in channel"
  22. self.mem_store_init()
  23. def handle(self, event):
  24. self.mem_store_init()
  25. if event.msg.startswith(".seen"):
  26. try:
  27. nick = event.msg.split()[1]
  28. except IndexError:
  29. return
  30. if nick in self.bot.mem_store['tell']:
  31. self.say(event.channel, "Last saw " + nick + " " + prettydate(self.bot.mem_store['tell'][nick]))
  32. else:
  33. self.say(event.channel, "haven't seen " + nick)
  34. self.bot.mem_store['tell'][event.user] = datetime.now()