def privmsg(self, client, user, channel, message): """ Recieves private messages, and quits things if asked to. """ message_info = message.split(' ', 1) if len(message_info) >= 2: quit_message = message_info[1] else: quit_message = config.load('settings')['core']['default_quit_message'].encode('UTF-8') if message_info[0].lower() == get_command_string('quit'): client.quit(quit_message)
def __init__(self, *args, **kwargs): nicknames = config.load('settings')['nicknames'] self.nicknames = [] for nickname in nicknames: self.nicknames.append(nickname.encode('UTF-8')) self.original_nicknames = self.nicknames self.original_channels = self.channels for kwarg in kwargs: setattr(self, kwarg, kwargs[kwarg])
#!/usr/bin/env python from twisted.words.protocols import irc from twisted.internet import protocol from jinzou.util import config import jinzou.plugins.loader plugin_exports = config.load('plugins')['exports'] class JinzouClient(irc.IRCClient): def call_plugins(self, method, *args, **kwargs): """ Receives an attribute name as well as args and kwargs, and calls the specified method on each plugin registered with this client. """ # Every plugin is passed a referece to the client as it's first arg args = list(args) args.insert(0, self) for plugin in self.plugins: plugin_method = getattr(plugin, method, False) # If we've found a callable in the plugin - call it. if plugin_method is not False and callable(plugin_method): if plugin_method(*args, **kwargs) is False: return False inherited_method = getattr(irc.IRCClient, method, False) if inherited_method is not False: return inherited_method(*args, **kwargs)