def getOrgPntFromRedis(self, org, date): scoreSum = 0 for curDate in util.getMonthSpan(date): date_str = util.getDateStrFormat(curDate) keyname = "{}:{}".format(self.keyDay, date_str) data = self.serv_redis_db.zscore(keyname, org) if data is None: data = 0 scoreSum += data return scoreSum
def getCategPerContribFromRedis(self, date): topNum = 0 # all contrib_org = self.getTopContributorFromRedis(date) for dic in contrib_org: org = dic['org'] for categ in self.categories_in_datatable: categ_score = 0 for curDate in util.getMonthSpan(date): keyname = "{}:{}:{}".format(self.keyCateg, util.getDateStrFormat(curDate), categ) temp = self.serv_redis_db.zscore(keyname, org) if temp is None: temp = 0 categ_score += temp dic[categ] = categ_score return contrib_org
def getTopContributorFromRedis(self, date, maxNum=100): orgDicoPnts = {} for curDate in util.getMonthSpan(date): topNum = 0 # all contrib_org = getZrange(self.serv_redis_db, self.keyDay, curDate, topNum) for org, pnts in contrib_org: if org not in orgDicoPnts: orgDicoPnts[org] = 0 orgDicoPnts[org] += pnts data = [] for org, pnts in orgDicoPnts.items(): dic = {} dic['rank'] = self.getTrueRank(pnts) dic['orgRank'] = self.getOrgContributionRank(org)['final_rank'] dic['honorBadge'] = self.getOrgHonorBadges(org) dic['logo_path'] = self.getOrgLogoFromMISP(org) dic['org'] = org dic['pnts'] = pnts data.append(dic) data.sort(key=lambda x: x['pnts'], reverse=True) return data[:maxNum]