Completed
Push — master ( cb28ba...729f8e )
by Matt
58s
created

Seen   A

Complexity

Total Complexity 9

Size/Duplication

Total Lines 29
Duplicated Lines 0 %
Metric Value
dl 0
loc 29
rs 10
wmc 9

3 Methods

Rating   Name   Duplication   Size   Complexity  
A post_init() 0 9 3
A handle() 0 14 4
A mem_store_init() 0 3 2
1
from event import Event
2
from util import __prettyDate as prettydate
3
from datetime import datetime
4
5
class UserHistory():
6
  def __init__(self, user=None, timestamp=None):
7
    self.user = user
8
    self.timestamp = timestamp
9
10
try:
11
  from basemodule import BaseModule
12
except ImportError:
13
  from modules.basemodule import BaseModule
14
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