Esempio n. 1
0
    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)
Esempio n. 2
0
    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])
Esempio n. 3
0
#!/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)