Ejemplo n.º 1
0
class Bot:
    
    def __init__(self):
        config = ConfigParser.ConfigParser()
        print "Parsing config"
        config.read('config.ini')
        self.admin = config.get('connect', 'admin')
        self.login = config.get('connect', 'jid')
        self.password = config.get('connect', 'password')
        self.nick = config.get('connect', 'nick')
        self.conference = config.get('connect', 'conference')
        self.presence = xmpp.Presence(to = self.conference + '/' + self.nick)
        self.bot = None
        self.manager = Manager()
        
        print "Loading plugins"
        self.loadPlugins()
        self.connect()
        print "Bot started"
        self.process()
        
        
    def connect(self):
        jid = xmpp.JID(self.login)
        self.client = xmpp.Client(jid.getDomain(),debug=[])
        print "Connecting"
        self.client.connect()
        self.client.auth(jid.getNode(), self.password)
        self.client.sendInitPresence()
        self.client.RegisterHandler('message', self.message)
        self.client.send(self.presence)
        print self.presence.getStatusCode()
    
    def loadPlugins(self):
        for fname in os.listdir('plugins/'):
            if fname.endswith('.py'):
                plugin_name = fname.rsplit('.', 1)[0]
                if plugin_name != '__init__':
                    print "Loading " + plugin_name
                    try:
                        self.manager.load('plugins.%s' % plugin_name)
                    except Exception, e:
                        "Could not load %s: %s" % (plugin_name, e)
        self.manager.update_functions()