import sys
from util import __prettyDate as prettydate
from util import strip_nick
from datetime import datetime
try:
if sys.version_info > (3, 0, 0):
from .basemodule import BaseModule
else:
from basemodule import BaseModule
except (ImportError, SystemError):
from modules.basemodule import BaseModule
[docs]class Seen(BaseModule):
[docs] def mem_store_init(self):
if not "seen" in self.bot.mem_store:
self.bot.mem_store['seen'] = dict()
[docs] def post_init(self):
# should be first event in the listing.. so lines being added is a
# priority
self.interests = ['__privmsg__']
for event in self.events:
if event._type in self.interests:
event.subscribe(self)
self.help = ".seen <nickname>. describes when the bot last saw <nickname> active on server"
self.mem_store_init()
[docs] def handle(self, event):
self.mem_store_init()
if event.msg.startswith(".seen"):
try:
# store all nicks in lowercase
nick = strip_nick(event.msg.split()[1].lower())
except IndexError:
return
if nick in (n.lower() for n in self.bot.mem_store['seen']):
self.say(event.channel, "Last saw " + nick + " " +
prettydate(self.bot.mem_store['seen'][nick]))
else:
self.say(event.channel, "haven't seen " + nick)
self.bot.mem_store['seen'][strip_nick(
event.user).lower()] = datetime.now()