def __handleModifiedInvitesList(self, added, changed, deleted, inviteDataReceiver, callback): allChangedInvites = set(added) | set(changed) | set(deleted) arenaUniqueID = avatar_getter.getArenaUniqueID() if len(allChangedInvites) > 0: for invite in inviteDataReceiver(allChangedInvites): if invite.isSameBattle(arenaUniqueID) and invite.isActive(): callback(invite)
def _getDynamicSquadData( self, userDBID, currentAccountDBID, isInSquad, inviteSendingProhibited, invitesReceivingProhibited ): INVITE_DISABLED = 0 IN_SQUAD = 1 INVITE_AVAILABLE = 2 INVITE_SENT = 3 INVITE_RECEIVED = 4 INVITE_RECEIVED_FROM_SQUAD = 5 state = INVITE_AVAILABLE if inviteSendingProhibited: state = INVITE_DISABLED arenaUniqueID = getArenaUniqueID() for invite in self.prbInvites.getInvites(): if invite.type == PREBATTLE_TYPE.SQUAD and invite.isActive() and invite.isSameBattle(arenaUniqueID): if ( invite.creatorDBID == userDBID and invite.receiverDBID == currentAccountDBID and not invitesReceivingProhibited ): state = INVITE_RECEIVED elif ( not inviteSendingProhibited and invite.creatorDBID == currentAccountDBID and userDBID == invite.receiverDBID ): state = INVITE_SENT if isInSquad: if state == INVITE_RECEIVED: state = INVITE_RECEIVED_FROM_SQUAD else: state = IN_SQUAD return state
def __handleModifiedInvitesList(self, added, changed, deleted, inviteDataReceiver, callback): allChangedInvites = set(added) | set(changed) | set(deleted) arenaUniqueID = avatar_getter.getArenaUniqueID() if allChangedInvites: for invite in inviteDataReceiver(allChangedInvites): if invite.isSameBattle(arenaUniqueID) and invite.isActive(): callback(invite)
def __getNotificationStr(self): timeLeft, priority = self.__getTimeLeftPriority() if priority == self.CURFEW: banTime = time.strftime('%H:%M', time.localtime(getArenaStartTime(getArenaUniqueID()) + timeLeft + self.TIME_RESERVE)) return backport.text(R.strings.messenger.chat.koreaMessage.curfew(), curfewTime=banTime, timeLeft=self.__minutesCount) if priority == self.WEEKLY: return backport.text(R.strings.messenger.chat.koreaMessage.weeklyLimit(), timeLeft=self.__minutesCount) return backport.text(R.strings.messenger.chat.koreaMessage.dailyLimit(), timeLeft=self.__minutesCount) if priority == self.DAILY else None
def __getClosestSessionTimeNotification(self): timeOnArena = getTimeOnArena(getArenaUniqueID()) timeLeft = self.__getTimeLeft() - timeOnArena if timeLeft < 0: return banTimeLeft = 0 self.__minutesCount = 1 for timeNotify in (self.THREE_MIN, self.TWO_MIN, self.ONE_MIN): if timeLeft > timeNotify + 1: banTimeLeft = timeLeft - timeNotify self.__minutesCount = int(timeNotify // time_utils.ONE_MINUTE) break return banTimeLeft
def _get_battle(self): arenaUniqueID = avatar_getter.getArenaUniqueID() if arenaUniqueID is None or arenaUniqueID != self.arenaId: self.arenaId = arenaUniqueID self.players = {} # update players self._loadingClanIconsCount = 0 vehicles = avatar_getter.getArena().vehicles for (vehicleID, vData) in vehicles.iteritems(): if vehicleID not in self.players: pl = _Player(vehicleID, vData) self._load_clanIcon(pl) # cleanup same player with different vehicleID (bug?) self.players = { k: v for k, v in self.players.iteritems() if v.accountDBID != pl.accountDBID } self.players[vehicleID] = pl self.players[vehicleID].update(vData) # sleepCounter = 0 while self._loadingClanIconsCount > 0: time.sleep(0.01) # # FIX: temporary workaround # sleepCounter += 1 # if sleepCounter > 1000: # 10 sec # log('WARNING: icons loading too long') # break; self._load_stat(avatar_getter.getPlayerVehicleID()) players = {} for (vehicleID, pl) in self.players.iteritems(): cacheKey = "%d=%d" % (pl.accountDBID, pl.vehCD) if cacheKey not in self.cacheBattle: cacheKey2 = "%d" % pl.accountDBID if cacheKey2 not in self.cacheBattle: self.cacheBattle[cacheKey] = self._get_battle_stub(pl) stat = self.cacheBattle[cacheKey] self._fix(stat) players[pl.name] = stat # pprint(players) with self.lock: self.resp = {'players': players}
def _get_battle(self): arenaUniqueID = avatar_getter.getArenaUniqueID() if arenaUniqueID is None or arenaUniqueID != self.arenaId: self.arenaId = arenaUniqueID self.players = {} # update players self._loadingClanIconsCount = 0 vehicles = avatar_getter.getArena().vehicles for (vehicleID, vData) in vehicles.iteritems(): if vehicleID not in self.players: pl = _Player(vehicleID, vData) self._load_clanIcon(pl) # cleanup same player with different vehicleID (bug?) self.players = {k:v for k,v in self.players.iteritems() if v.accountDBID != pl.accountDBID} self.players[vehicleID] = pl self.players[vehicleID].update(vData) # sleepCounter = 0 while self._loadingClanIconsCount > 0: time.sleep(0.01) # # FIX: temporary workaround # sleepCounter += 1 # if sleepCounter > 1000: # 10 sec # log('WARNING: icons loading too long') # break; self._load_stat(avatar_getter.getPlayerVehicleID()) players = {} for (vehicleID, pl) in self.players.iteritems(): cacheKey = "%d=%d" % (pl.accountDBID, pl.vehCD) if cacheKey not in self.cacheBattle: cacheKey2 = "%d" % pl.accountDBID if cacheKey2 not in self.cacheBattle: self.cacheBattle[cacheKey] = self._get_battle_stub(pl) stat = self.cacheBattle[cacheKey] self._fix(stat) players[pl.name] = stat # pprint(players) with self.lock: self.resp = {'players': players}
def _getDynamicSquadData(self, userDBID, currentAccountDBID, isInSquad, inviteSendingProhibited, invitesReceivingProhibited): INVITE_DISABLED = 0 IN_SQUAD = 1 INVITE_AVAILABLE = 2 INVITE_SENT = 3 INVITE_RECEIVED = 4 INVITE_RECEIVED_FROM_SQUAD = 5 state = INVITE_AVAILABLE if inviteSendingProhibited: state = INVITE_DISABLED arenaUniqueID = getArenaUniqueID() for invite in self.prbInvites.getInvites(): if invite.type == PREBATTLE_TYPE.SQUAD and invite.isActive() and invite.isSameBattle(arenaUniqueID): if invite.creatorDBID == userDBID and invite.receiverDBID == currentAccountDBID and not invitesReceivingProhibited: state = INVITE_RECEIVED elif not inviteSendingProhibited and invite.creatorDBID == currentAccountDBID and userDBID == invite.receiverDBID: state = INVITE_SENT if isInSquad: if state == INVITE_RECEIVED: state = INVITE_RECEIVED_FROM_SQUAD else: state = IN_SQUAD return state