From dec939c32f5f4de366a8f72eaa85fbc827996041 Mon Sep 17 00:00:00 2001 From: Jon Bergli Heier Date: Wed, 26 May 2010 18:38:52 +0200 Subject: Added privmsg callback. --- fot.py | 8 ++++++++ modules/url_titles.py | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/fot.py b/fot.py index 64939d4..1c1ef43 100755 --- a/fot.py +++ b/fot.py @@ -57,6 +57,7 @@ class Bot(irc.IRCClient): bots.append(self) self.modules = {} self.keywords = {} + self.msg_callbacks = [] def __repr__(self): return '' % (self.nickname, self.factory.server) @@ -66,6 +67,10 @@ class Bot(irc.IRCClient): raise Exception('Keyword "%s" already in use' % kw) self.keywords[kw] = mod + def register_callback(self, mod): + if not mod in self.msg_callbacks: + self.msg_callbacks.append(mod) + def apply_modules(self): # Call stop() for each module if neccessary (can't rely on __del__ here) for m in self.modules.itervalues(): @@ -86,6 +91,9 @@ class Bot(irc.IRCClient): self.join(chan) def privmsg(self, nick, channel, msg): + for mod in self.msg_callbacks: + mod.privmsg(nick, channel, msg) + msg = msg.split(None, 1) if not len(msg): return diff --git a/modules/url_titles.py b/modules/url_titles.py index d5408ce..3172fac 100644 --- a/modules/url_titles.py +++ b/modules/url_titles.py @@ -15,6 +15,7 @@ class Module: def __init__(self, bot): self.irc = bot + self.irc.register_callback(self) def spotify(self, s): try: @@ -137,7 +138,7 @@ class Module: s += '\002[%d]\002 %s ' % (i+1, format_text(titles[i])) return s.strip() - def __call__(self, nick, channel, msg): + def privmsg(self, nick, channel, msg): titles = self.get_titles(msg) if titles: self.irc.msg(channel if not channel == self.irc.nickname else nick.split('!')[0], titles) -- cgit v1.2.3