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 send_presence(self,conn,hash1=None,nick=None):
     presence = Presence()
     if hash1 is not None:
         presence.setTag(name='x',namespace=self.NS_VCARD_UPDATE).setTag(name='photo',namespace=self.NS_VCARD_UPDATE).setData(hash1)
     if nick is not None:
         presence.setTag(name='nick',namespace=self.NS_NICK).setData(nick)
     conn.send(presence)
Esempio n. 4
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)
Esempio n. 5
0
 def presence(self, conn, nod):
     if nod.getType() == 'subscribe':
         conn.send(Presence(to=event.getFrom(), typ='subscribed'))