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