Total Complexity | 10 |
Total Lines | 29 |
Duplicated Lines | 0 % |
1 | from event import Event |
||
16 | class Seen(BaseModule): |
||
17 | def mem_store_init(self): |
||
18 | if not "seen" in self.bot.mem_store: |
||
19 | self.bot.mem_store['seen'] = dict() |
||
20 | |||
21 | def post_init(self): |
||
22 | self.interests = ['__privmsg__'] # should be first event in the listing.. so lines being added is a priority |
||
23 | for event in self.events: |
||
24 | if event._type in self.interests: |
||
25 | event.subscribe(self) |
||
26 | |||
27 | self.help = ".seen <nickname>. describes when the bot last saw <nickname> active in channel" |
||
28 | |||
29 | self.mem_store_init() |
||
30 | |||
31 | def handle(self, event): |
||
32 | self.mem_store_init() |
||
33 | |||
34 | if event.msg.startswith(".seen"): |
||
35 | try: |
||
36 | nick = strip_nick(event.msg.split()[1].lower()) # store all nicks in lowercase |
||
37 | except IndexError: |
||
38 | return |
||
39 | if nick in (n.lower() for n in self.bot.mem_store['seen']): |
||
40 | self.say(event.channel, "Last saw " + nick + " " + prettydate(self.bot.mem_store['seen'][nick])) |
||
41 | else: |
||
42 | self.say(event.channel, "haven't seen " + nick) |
||
43 | |||
44 | self.bot.mem_store['seen'][strip_nick(event.user).lower()] = datetime.now() |
||
45 | |||
46 |