Total Complexity | 9 |
Total Lines | 29 |
Duplicated Lines | 0 % |
1 | from event import Event |
||
11 | class Seen(BaseModule): |
||
12 | def mem_store_init(self): |
||
13 | if not "seen" in self.bot.mem_store: |
||
14 | self.bot.mem_store['seen'] = dict() |
||
15 | |||
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 | |||
22 | self.help = ".seen <nickname>. describes when the bot last saw <nickname> active on server" |
||
23 | |||
24 | self.mem_store_init() |
||
25 | |||
26 | def handle(self, event): |
||
27 | self.mem_store_init() |
||
28 | |||
29 | if event.msg.startswith(".seen"): |
||
30 | try: |
||
31 | nick = strip_nick(event.msg.split()[1].lower()) # store all nicks in lowercase |
||
32 | except IndexError: |
||
33 | return |
||
34 | if nick in (n.lower() for n in self.bot.mem_store['seen']): |
||
35 | self.say(event.channel, "Last saw " + nick + " " + prettydate(self.bot.mem_store['seen'][nick])) |
||
36 | else: |
||
37 | self.say(event.channel, "haven't seen " + nick) |
||
38 | |||
39 | self.bot.mem_store['seen'][strip_nick(event.user).lower()] = datetime.now() |
||
40 | |||
41 |