Exemple #1
0
    def __onRosterReceived(self, chatAction):
        self.__isRosterReceivedOnce = True
        if self.__replayCtrl is None:
            import BattleReplay
            self.__replayCtrl = BattleReplay.g_replayCtrl
        if self.__replayCtrl.isRecording:
            self.__replayCtrl.cancelSaveCurrMessage()
        data = dict(chatAction)
        result = data.get('data', [])
        flags = data.get('flags', 0)
        if not flags:
            self.usersStorage.removeTags({_TAG.FRIEND, _TAG.IGNORED, _TAG.MUTED}, ProtoFindCriteria(PROTO_TYPE.BW))
        getter = self.usersStorage.getUser
        setter = self.usersStorage.setUser
        for userData in result:
            dbID, name, roster = userData[:3]
            user = getter(dbID, PROTO_TYPE.BW)
            tags = _getTagsByRoster(roster)
            if user:
                user.addTags(tags)
            else:
                setter(entities.BWUserEntity(dbID, name=name, tags=tags))

        g_messengerEvents.users.onUsersListReceived({_TAG.FRIEND, _TAG.IGNORED, _TAG.MUTED})
        return
Exemple #2
0
 def __handleDisconnected(self, reason, description):
     if reason == DISCONNECT_REASON.BY_REQUEST:
         self.__seq.suspend()
     self.__seq.fini()
     self.__tasks.clear()
     self.__subsBatch.clear()
     for contact in self.usersStorage.getList(ProtoFindCriteria(PROTO_TYPE.XMPP)):
         resources = contact.getItem().getResources()
         if not resources.isEmpty():
             resources.clear()
             g_messengerEvents.users.onUserStatusUpdated(contact)
    def __onRosterReceived(self, chatAction):
        self.__isRosterReceivedOnce = True
        data = dict(chatAction)
        result = data.get('data', [])
        flags = data.get('flags', 0)
        if not flags:
            self.usersStorage.removeTags({_TAG.FRIEND, _TAG.IGNORED, _TAG.MUTED}, ProtoFindCriteria(PROTO_TYPE.BW))
        getter = self.usersStorage.getUser
        setter = self.usersStorage.setUser
        for userData in result:
            dbID, name, roster = userData[:3]
            user = getter(dbID, PROTO_TYPE.BW)
            tags = _getTagsByRoster(roster)
            if user:
                user.addTags(tags)
            setter(entities.BWUserEntity(dbID, name=name, tags=tags))

        g_messengerEvents.users.onUsersListReceived({_TAG.FRIEND, _TAG.IGNORED, _TAG.MUTED})