Exemple #1
0
 def _updateGroups(self, response, _):
     self.logger.debug('Received groups list %s' % response)
     groups = response.getGroups()
     for group in groups:
         room = group.getId()
         # ensure self.groups[room] exists
         if room not in self.groups:
             owner = group.getOwner().split('@')[0]
             subjectOwner = group.getSubjectOwner().split('@')[0]
             subject = utils.softToUni(group.getSubject())
             self.groups[room] = Group(room, owner, subject, subjectOwner,
                                       self.backend, self.user)
         # add/update room participants
         self.groups[room].addParticipants(group.getParticipants().keys(),
                                           self.buddies, self.legacyName)
     self.gotGroupList = True
     # join rooms
     while self.joinRoomQueue:
         self.joinRoom(*self.joinRoomQueue.pop(0))
     # deliver queued offline messages
     for room in self.groupOfflineQueue:
         while self.groupOfflineQueue[room]:
             msg = self.groupOfflineQueue[room].pop(0)
             self.backend.handleMessage(self.user, room, msg[1], msg[0], "",
                                        msg[2])
             self.logger.debug("Send queued group message to: %s %s %s" %
                               (msg[0], msg[1], msg[2]))
     # pass update to backend
     self.updateRoomList()
Exemple #2
0
    def _updateGroups(self, response, request):
        self.logger.debug('Received groups list %s', response)
        groups = response.getGroups()
        for group in groups:
            room = group.getId()
            owner = group.getOwner().split('@')[0]
            subjectOwner = group.getSubjectOwner().split('@')[0]
            subject = utils.softToUni(group.getSubject())

            if room in self.groups:
                oroom = self.groups[room]
                oroom.owner = owner
                oroom.subjectOwner = subjectOwner
                oroom.subject = subject
            else:
                self.groups[room] = Group(room, owner, subject, subjectOwner,
                                          self.backend, self.user)
#				self.joinRoom(self._shortenGroupId(room), self.user.split("@")[0])
            self.groups[room].addParticipants(group.getParticipants().keys(),
                                              self.buddies, self.legacyName)

            #self._addParticipantsToRoom(room, group.getParticipants())

            if room in self.groupOfflineQueue:
                while self.groupOfflineQueue[room]:
                    msg = self.groupOfflineQueue[room].pop(0)
                    self.backend.handleMessage(self.user, room, msg[1], msg[0],
                                               "", msg[2])
                    self.logger.debug("Send queued group message to: %s %s %s",
                                      msg[0], msg[1], msg[2])
        self.gotGroupList = True
        for room, nick in self.joinRoomQueue:
            self.joinRoom(room, nick)
        self.joinRoomQueue = []
        self.updateRoomList()
Exemple #3
0
	def onGroupMessageReceived(self, messageId, gjid, jid, messageContent, timestamp, receiptRequested, pushName):
		buddy = jid.split("@")[0]
		room = gjid.split("@")[0]

		self.logger.info("Group message received in  %s from %s: %s", room, buddy, messageContent)

		self.sendGroupMessageToXMPP(room, buddy, utils.softToUni(messageContent), timestamp)
		if receiptRequested: self.call("message_ack", (gjid, messageId))
Exemple #4
0
 def onStatus(self, contacts):
     self.logger.debug("%s received statuses of: %s", self.user, contacts)
     for number, (status, time) in contacts.iteritems():
         buddy = self[number]
         if status is None:
             buddy.statusMsg = ""
         else:
             buddy.statusMsg = utils.softToUni(status)
         self.updateSpectrum(buddy)
Exemple #5
0
	def onStatus(self, contacts):
		self.logger.debug("%s received statuses of: %s" % (self.user, contacts))
		for number, (status, time) in contacts.iteritems():
			try: buddy = self[number]
			except KeyError: self.logger.warn("received status of buddy not in list: %s" % number)
			if status is None:
				buddy.statusMsg = ""
			else:
				buddy.statusMsg = utils.softToUni(status)
			self.updateSpectrum(buddy)
Exemple #6
0
    def onGroupMessageReceived(self, messageId, gjid, jid, messageContent,
                               timestamp, receiptRequested, pushName):
        buddy = jid.split("@")[0]
        room = gjid.split("@")[0]

        self.logger.info("Group message received in  %s from %s: %s", room,
                         buddy, messageContent)

        self.sendGroupMessageToXMPP(room, buddy,
                                    utils.softToUni(messageContent), timestamp)
        if receiptRequested: self.call("message_ack", (gjid, messageId))
Exemple #7
0
	def onMessageReceived(self, messageId, jid, messageContent, timestamp, receiptRequested, pushName, isBroadCast):
		buddy = jid.split("@")[0]
		messageContent = utils.softToUni(messageContent)

		if isBroadCast:
			self.logger.info("Broadcast received from %s to %s: %s (at ts=%s)", buddy, self.legacyName, messageContent, timestamp)
			messageContent = "[Broadcast] " + messageContent
		else:
			self.logger.info("Message received from %s to %s: %s (at ts=%s)", buddy, self.legacyName, messageContent, timestamp)

		self.sendMessageToXMPP(buddy, messageContent, timestamp)
		if receiptRequested: self.call("message_ack", (jid, messageId))
Exemple #8
0
    def onAddedToGroup(self, group):
        self.logger.debug("Added to group: %s" % group)
        room = group.getGroupId()
        owner = group.getCreatorJid(full=False)
        subjectOwner = group.getSubjectOwnerJid(full=False)
        subject = utils.softToUni(group.getSubject())

        self.groups[room] = Group(room, owner, subject, subjectOwner,
                                  self.backend, self.user)
        self.groups[room].addParticipants(group.getParticipants(),
                                          self.buddies, self.legacyName)
        self.bot.send(
            "You have been added to group: %s@%s (%s)" %
            (self._shortenGroupId(room), subject, self.backend.spectrum_jid))
Exemple #9
0
    def onMessageReceived(self, messageId, jid, messageContent, timestamp,
                          receiptRequested, pushName, isBroadCast):
        buddy = jid.split("@")[0]
        messageContent = utils.softToUni(messageContent)

        if isBroadCast:
            self.logger.info("Broadcast received from %s to %s: %s (at ts=%s)",
                             buddy, self.legacyName, messageContent, timestamp)
            messageContent = "[Broadcast] " + messageContent
        else:
            self.logger.info("Message received from %s to %s: %s (at ts=%s)",
                             buddy, self.legacyName, messageContent, timestamp)

        self.sendMessageToXMPP(buddy, messageContent, timestamp)
        if receiptRequested: self.call("message_ack", (jid, messageId))
Exemple #10
0
 def onTextMessage(self, _id, _from, to, notify, timestamp, participant,
                   offline, retry, body):
     self.logger.debug('received TextMessage' + ' '.join(
         map(str, [
             _id, _from, to, notify, timestamp, participant, offline, retry,
             body
         ])))
     buddy = _from.split('@')[0]
     messageContent = utils.softToUni(body)
     self.sendReceipt(_id, _from, None, participant)
     self.logger.info("Message received from %s to %s: %s (at ts=%s)",
                      buddy, self.legacyName, messageContent, timestamp)
     if participant is not None:
         partname = participant.split('@')[0]
         message = partname + ': ' + messageContent
         self.sendMessageToXMPP(buddy, message, timestamp)
     else:
         self.sendMessageToXMPP(buddy, messageContent, timestamp)
Exemple #11
0
    def onTextMessage(self, _id, _from, to, notify, timestamp, participant,
                      offline, retry, body):
        buddy = _from.split('@')[0]
        messageContent = utils.softToUni(body)
        self.sendReceipt(_id, _from, None, participant)
        self.recvMsgIDs.append((_id, _from, participant, timestamp))
        self.logger.info("Message received from %s to %s: %s (at ts=%s)" %
                         (buddy, self.legacyName, messageContent, timestamp))

        if participant is not None:  # Group message or broadcast
            partname = participant.split('@')[0]
            if _from.split('@')[1] == 'broadcast':  # Broadcast message
                message = self.broadcast_prefix + messageContent
                self.sendMessageToXMPP(partname, message, timestamp)
            else:  # Group message
                if notify is None:
                    notify = ""
                self.sendGroupMessageToXMPP(buddy, partname, messageContent,
                                            timestamp, notify)
        else:
            self.sendMessageToXMPP(buddy, messageContent, timestamp)