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
예제 #2
0
 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
예제 #3
0
    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]