def parse_vcard_update(self, stanza): payload = stanza.get_payload(VCardUpdatePayload) if payload is not None: plain_jid = get_email(stanza.from_jid) if payload.photo is not None: if not avatarManager.check_avatar(plain_jid, payload.photo): self.get_vcard(stanza.from_jid)
def vcard_callback(self, stanza): vcard = stanza.get_payload(VCardPayload) if vcard is not None: nickname = vcard.get_nickname() avatar_data = vcard.get_avatar() jid = get_email(stanza.from_jid) if nickname: Friend.update_nickname(jid, nickname) if avatar_data: avatarManager.save_avatar(jid, avatar_data)
def handle_roster_received(self, event): rosters = self.client.roster.values() Friend.create_or_update_roster(rosters) signals.user_roster_received.send(sender=self) # get friend vcard for roster_item in rosters: plain_jid = get_email(roster_item.jid) if not avatarManager.has_avatar(plain_jid): self.get_vcard(roster_item.jid) if self.update_presence_flag: self.client.main_loop.delayed_call(2, self.delayed_update_presence) return True