def __onPeriodicTimer(self): self.__timerID = BigWorld.callback(_PERIODIC_TIMER_SEC, self.__onPeriodicTimer) currTime = BigWorld.time() reqs = self.__reqs if reqs: toTimeout = [] for reqID, descr in reqs.iteritems(): if descr[0] <= currTime: toTimeout.append(reqID) for reqID in toTimeout: callback = reqs.pop(reqID)[1] if callback is not None: try: callback( False, makeArgs( int32Arg1=MESSENGER_ACTION_ERRORS.TIMEOUT)) except: LOG_CURRENT_EXCEPTION() reqs = self.__nicknameReqs if reqs: delay, maxNum = _NICKNAME_BY_ID_REQ_CONFIG maxNum = int(maxNum * _PERIODIC_TIMER_SEC) maxNum = min(maxNum, len(reqs)) send = BigWorld.player().base.messenger_onActionByClient while maxNum and reqs[0][1] <= currTime - delay: maxNum -= 1 send(MESSENGER_ACTION_IDS.GET_NICKNAME_BY_ID, 0, makeArgs(int64Arg1=reqs.popleft()[0])) return
def requestUserlistByName(self, name, maxCount, callback): reqID = self.__addRequest(MESSENGER_TIMEOUTS.GET_USERLIST_BY_NAME, partial(_onUserlistResult, callback)) BigWorld.player().base.messenger_onActionByClient( MESSENGER_ACTION_IDS.GET_USERLIST_BY_NAME, reqID, makeArgs(int32Arg1=maxCount, strArg1=name))
def getInitParams(self): BigWorld.player().base.messenger_onActionByClient( MESSENGER_ACTION_IDS.GET_INIT_PARAMS, 0, makeArgs())
def syncClanChatChannel(self, callback): reqID = self.__addRequest(MESSENGER_TIMEOUTS.SYNC_CLAN_CHAT_CHANNEL, partial(_onInt32Result, callback)) BigWorld.player().base.messenger_onActionByClient( MESSENGER_ACTION_IDS.SYNC_CLAN_CHAT_CHANNEL, reqID, makeArgs())
def requestXmppPassword(self, callback): reqID = self.__addRequest(MESSENGER_TIMEOUTS.XMPP_GET_PASSWORD, partial(_onStringResult, callback)) BigWorld.player().base.messenger_onActionByClient( MESSENGER_ACTION_IDS.XMPP_GET_PASSWORD, reqID, makeArgs())