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
def _initData(self): kwargs = dict(subscription="both", isSelf=False) if self.groupId is not None: kwargs["group"] = self.groupId friends = list( map(lambda item: FriendWrapper(item), Friend.filter(**kwargs))) self.setAll(friends)
def save_rosters(self): # save rosters to db. Friend.create_or_update_roster_sleek(self.client_roster) # send signal. xmpp_signals.user_roster_received.send(sender=self) logger.debug("user roster have received") # request vcard infos. jids = list(self.client_roster.keys()) jids.insert(0, self.boundjid.bare) for jid in jids: # if not avatarManager.has_avatar(jid): save_photo_flag = not avatarManager.has_avatar(jid) self.request_vcard(jid, save_photo_flag)
def doSearch(self, text): self.clear() if text == "": return qs = Friend.select().where(Friend.jid ** "%{0}%".format(text), Friend.isSelf == False) friends = [ FriendWrapper(item, parent=self) for item in qs ] self.setAll(friends)
def loadUnreadedMessages(self): qs = ReceivedMessage.select().where( ReceivedMessage.readed == False, ReceivedMessage.friend == Friend.get(jid=self._toJid) ) objs = list(map(lambda item: MessageWrapper(item), qs)) self.setAll(objs) with disable_auto_commit(): for ins in qs: if ins.readed != True: ins.readed = True ins.save(update_fields=["readed"])
def doSearch(self, text): self.clear() if text == "": return qs = Friend.select().where(Friend.jid**"%{0}%".format(text), Friend.isSelf == False) friends = [FriendWrapper(item, parent=self) for item in qs] self.setAll(friends)
def loadUnreadedMessages(self): qs = ReceivedMessage.select().where( ReceivedMessage.readed == False, ReceivedMessage.friend == Friend.get(jid=self._toJid)) objs = list(map(lambda item: MessageWrapper(item), qs)) self.setAll(objs) with disable_auto_commit(): for ins in qs: if ins.readed != True: ins.readed = True ins.save(update_fields=['readed'])
def getJidInfo(jid): if not jid: return None if isinstance(jid, string_types): try: obj = Friend.get(jid=jid) except Friend.DoesNotExist: return None else: obj = jid return FriendWrapper(obj)
def doSearch(self, text): self.clear() if text == "": self._jid = "" return if "@" not in text: jid = "{0}@{1}".format(text, xmppClient.boundjid.domain) else: jid = text try: _parse_jid(jid) except InvalidJID: return self._jid = jid try: Friend.get(jid=self._jid) except Friend.DoesNotExist: self.asyncRequestVCard(self._jid)
def handle_roster_updated(self, event): item = event.item Friend.create_or_update_roster([item]) return True
def _save_display_name(self, jid, vcard_temp): nickname = xmpp_utils.get_vcard_nickname(vcard_temp) if nickname is not None: Friend.update_nickname(jid, nickname)
def _initData(self): kwargs = dict(subscription="both", isSelf=False) if self.groupId is not None: kwargs["group"] = self.groupId friends = list(Friend.filter(**kwargs)) self.setAll(friends)
def load(self): kwargs = dict(subscription="both", isSelf=False) if self.group_id is not None: kwargs["group"] = self.group_id friends = Friend.filter(**kwargs) return friends
def handle_roster_updated(self, event): item = event.item Friend.create_or_update_roster([ item ]) return True