Esempio n. 1
0
    def run(self):
        user = self.config['user']['jid']
        password = self.config['user']['password']

        # connect to server
        self.client = client = Client(JID(user).getDomain(), debug=[])
        client.connect()
        if not client.auth(JID(user).getNode(), password,
                           resource=JID(user).getResource()):
            raise Exception('Unable to authorize.')

        # register handlers
        client.RegisterHandler('message', self.message_callback)
        client.RegisterHandler('presence', self.presence_callback)

        # send presence
        client.sendInitPresence()

        # join room(s)
        for room in self.config['room']:
            presence = Presence(to='%s/%s' % (room['jid'], room['nick']))
            presence.setTag('x', namespace=NS_MUC)\
                    .setTagData('password', room['password'])
            presence.getTag('x')\
                    .addChild('history', {'maxchars': '0', 'maxstanzas': '0'})
            client.send(presence)
            self.rooms.append(room['jid'])

        # process incoming messages
        while True:
            client.Process(1)
Esempio n. 2
0
 def connect_to_rooms(self, connection, configuration):
     for room in configuration.rooms:
         p = Presence(to='%s@%s/%s' % (room, configuration.conference_server,
                                       self.bot.name,))
         p.setTag('x', namespace=NS_MUC).setTagData('password', '')
         p.getTag('x').addChild('history', {'maxchars': '0', 'maxstanzas': '0'})
         connection.send(p)
Esempio n. 3
0
def join_room(extension=None):
    if extension:
        presence = Presence(to='%s/%s+%s' % (room, nick, extension))
    else:
        presence = Presence(to='%s/%s' % (room, nick))
    presence.setTag('x', namespace=NS_MUC).setTagData('password', room_password)
    presence.getTag('x').addChild('history',{'maxchars':'0','maxstanzas':'0'})
    client.send(presence)