def __requestInvites(self, offset, count, isReset, callback): ctx = AccountInvitesCtx(accountDbID=self.__accountDbID, offset=offset, limit=count, statuses=self.__statuses, getTotalCount=isReset) result = yield self._requester.sendRequest(ctx, allowDelay=True) invites = ctx.getDataObj(result.data) self.__lastStatus = result.isSuccess() if isReset: self.__totalCount = ctx.getTotalCount(result.data) if result.isSuccess(): if len(invites) == 0 and not isReset: self.revertOffset() if len(invites) > 0: clansIDs = [item.getClanDbID() for item in invites] ctx = ClanRatingsCtx(clansIDs) result = yield self._requester.sendRequest(ctx, allowDelay=True) clanRatings = dict(((item.getClanDbID(), item) for item in ctx.getDataObj(result.data))) ctx = ClansInfoCtx(clansIDs) result = yield self._requester.sendRequest(ctx, allowDelay=True) clanInfo = dict(((item.getDbID(), item) for item in ctx.getDataObj(result.data))) for item in clanInfo.itervalues(): self.getUserName(item.getLeaderDbID()) def getSenderID(inviteItem): changerDbID = inviteItem.getChangerDbID() if changerDbID == 0: return inviteItem.getSenderDbID() return changerDbID for item in invites: senderID = getSenderID(item) temp = self.__senderNameMapping.get(senderID, set()) temp.add(item.getDbID()) self.__senderNameMapping[senderID] = temp self.__invitesCache = [ ClanPersonalInviteWrapper( invite, clanInfo.get(invite.getClanDbID(), items.ClanExtInfoData()), clanRatings.get(invite.getClanDbID(), items.ClanRatingsData()), self.getUserName(getSenderID(invite))) for invite in invites ] else: self.__invitesCache = [] else: self.__invitesCache = [] self.revertOffset() self.__rebuildMapping() self.syncUsersInfo() self.__isSynced = self.__lastStatus callback((self.__lastStatus, self.__invitesCache))
def getClanInfo(self): self.resyncClanInfo() cachedValue = self.__webCache.get(CLAN_REQUESTED_DATA_TYPE.CLAN_INFO, None) if cachedValue is not None: return cachedValue.getCachedValue() else: return items.ClanExtInfoData()
def getDefDataObj(self): return items.ClanExtInfoData()
def getDataObj(self, incomeData): return makeTupleByDict(items.ClanExtInfoData, incomeData[0]) if incomeData else items.ClanExtInfoData()
def getClanInfo(self): self.resyncClanInfo() cachedValue = self.__webCache.get(WebRequestDataType.CLAN_INFO, None) return cachedValue.getCachedValue( ) if cachedValue is not None else items.ClanExtInfoData()
def getDataObj(self, incomeData): if incomeData is not None and len(incomeData) > 0: return makeTupleByDict(items.ClanExtInfoData, incomeData[0]) else: return items.ClanExtInfoData()