| Total Complexity | 9 |
| Total Lines | 29 |
| Duplicated Lines | 0 % |
| Changes | 2 | ||
| Bugs | 1 | Features | 2 |
| 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 |