Ejemplo n.º 1
0
		def iqAvatarReceived(el):
			if not self.alive: return
			LogEvent(INFO, self.jabberID)
			qtype = el.getAttribute("type")
			if qtype == "error":
				LogEvent(INFO, self.jabberID, "That didn't work, let's try an IQ-storage-based avatar")
				d = self.sendStorageAvatarRequest(to=self.jabberID, fro=config.jid)
				d.addCallback(storageAvatarReceived)
				d.addErrback(errback)
				
			query = None
			for e in el.elements():
				if e.name == "query" and e.uri == globals.IQAVATAR:
					query = e
					break
			if not query:
				return
			for e in query.elements():
				if e.name == "data" and self.avatarPri < 3:
					imageData = avatar.parseIQPhotoEl(e)
					if not imageData:
						errback(Exception("Invalid image data")) # Possibly it wasn't in a supported format?
					self.avatar = self.pytrans.avatarCache.setAvatar(imageData)
					self.legacycon.updateAvatar(self.avatar)
					self.avatarPri = 3
Ejemplo n.º 2
0
        def iqAvatarReceived(el):
            if not self.alive: return
            LogEvent(INFO, self.jabberID)
            qtype = el.getAttribute("type")
            if qtype == "error":
                LogEvent(
                    INFO, self.jabberID,
                    "That didn't work, let's try an IQ-storage-based avatar")
                d = self.sendStorageAvatarRequest(to=self.jabberID,
                                                  fro=config.jid)
                d.addCallback(storageAvatarReceived)
                d.addErrback(errback)

            query = None
            for e in el.elements():
                if e.name == "query" and e.uri == globals.IQAVATAR:
                    query = e
                    break
            if not query:
                return
            for e in query.elements():
                if e.name == "data" and self.avatarPri < 3:
                    imageData = avatar.parseIQPhotoEl(e)
                    if not imageData:
                        errback(Exception("Invalid image data")
                                )  # Possibly it wasn't in a supported format?
                    self.avatar = self.pytrans.avatarCache.setAvatar(imageData)
                    self.legacycon.updateAvatar(self.avatar)
                    self.avatarPri = 3
Ejemplo n.º 3
0
		def storageAvatarReceived(el):
			if not self.alive: return
			LogEvent(INFO, self.jabberID)
			qtype = el.getAttribute("type")
			if qtype == "error": return
			query = None
			for e in el.elements():
				if e.name == "query" and e.uri == globals.STORAGEAVATAR:
					query = e
					break
			if not query:
				return
			for e in query.elements():
				if e.name == "data" and self.avatarPri < 3:
					imageData = avatar.parseIQPhotoEl(e)
					if not imageData:
						errback(Exception("Invalid image data")) # Possibly it wasn't in a supported format?
					self.avatar = self.pytrans.avatarCache.setAvatar(imageData)
					self.legacycon.updateAvatar(self.avatar)
					self.avatarPri = 3
Ejemplo n.º 4
0
 def storageAvatarReceived(el):
     if not self.alive: return
     LogEvent(INFO, self.jabberID)
     qtype = el.getAttribute("type")
     if qtype == "error": return
     query = None
     for e in el.elements():
         if e.name == "query" and e.uri == globals.STORAGEAVATAR:
             query = e
             break
     if not query:
         return
     for e in query.elements():
         if e.name == "data" and self.avatarPri < 3:
             imageData = avatar.parseIQPhotoEl(e)
             if not imageData:
                 errback(Exception("Invalid image data")
                         )  # Possibly it wasn't in a supported format?
             self.avatar = self.pytrans.avatarCache.setAvatar(imageData)
             self.legacycon.updateAvatar(self.avatar)
             self.avatarPri = 3