1
|
|
|
# utility class for Tell |
2
|
|
|
class Notice: |
3
|
|
|
def __init__(self, subj, obj, message): |
4
|
|
|
self.subject = subj |
5
|
|
|
self.obj = obj |
6
|
|
|
#self.message = u' ' |
7
|
|
|
#for word in message: |
8
|
|
|
# self.message = word.encode('utf-8','ignore') |
9
|
|
|
# we no longer need to worry about encoding it, because the bot is receiving and decoding everything for us now |
10
|
|
|
self.message = message |
11
|
|
|
|
12
|
|
|
class Tell: |
13
|
|
|
def __init__(self, events=None, printer_handle=None, bot=None, say=None): |
14
|
|
|
self.events = events |
15
|
|
|
self.printer = printer_handle |
16
|
|
|
self.bot = bot |
17
|
|
|
self.say = say |
18
|
|
|
self.interests = ['__privmsg__'] |
19
|
|
|
self.say = say |
20
|
|
|
|
21
|
|
|
self.cmd = ".tell" |
22
|
|
|
self.help = ".tell <nick> <thing to tell when they're back>" |
23
|
|
|
|
24
|
|
|
for event in events: |
25
|
|
|
if event._type in self.interests: |
26
|
|
|
event.subscribe(self) |
27
|
|
|
|
28
|
|
|
def handle(self, event): |
29
|
|
|
if event.msg.startswith(".tell"): |
30
|
|
|
target = event.msg.split()[1] |
31
|
|
|
if target.lower() == self.bot.conf.getNick(self.bot.network).lower(): |
32
|
|
|
self.say(event.channel, "I can't tell myself; gtfo") |
33
|
|
|
return |
34
|
|
|
thing = event.msg.split()[2:] # all the way to the end |
35
|
|
|
n = Notice(event.user, target, thing) |
36
|
|
|
|
37
|
|
|
if not "tell" in self.bot.mem_store: |
38
|
|
|
self.bot.mem_store["tell"] = list() |
39
|
|
|
|
40
|
|
|
# add it to the list of things to tell people |
41
|
|
|
self.bot.mem_store["tell"].append(n) |
42
|
|
|
self.say(event.channel, "I'll let " + n.obj + " know when they're back.") |
43
|
|
|
|
44
|
|
|
else: |
45
|
|
|
if "tell" in self.bot.mem_store: |
46
|
|
|
for n in self.bot.mem_store["tell"]: |
47
|
|
|
if event.user.lower() == n.obj.lower(): |
48
|
|
|
self.say(event.channel, "Hey " + n.obj + ", " + n.subject + " says \""+ u" ".join(n.message)+"\"") |
49
|
|
|
# we've said it, now delete it. |
50
|
|
|
self.bot.mem_store["tell"].remove(n) |
51
|
|
|
|