コード例 #1
0
 def _top_medias(self):
     top_list = self.stat_user.gen_stat_tops()
     echo("there are totaly %s top medias"%len(top_list))
     self.dbsession = self.db.open('play_top_medias')
     data = {"seq": "",
             'date':'%s_%s'%(self.config['start'],
                             self.config['end']),
             'mediaid': "",
             'media_name':'',
             'count': 0}
     i = 0
     from common.fetch_media_data import VodMedia
     for mediaid, count in top_list:
         data['seq'] = i
         data['mediaid'] = mediaid
         media = VodMedia(mediaid)
         title = media.get_title()
         print "id: %s, cid: %s, title: %s"%\
               (mediaid, media.get_category_id(), title)
         #print "%s(%s) -- %s"%(title, mediaid, media.get_category_id())
         data['media_name'] = title
         data['count'] = count
         self.dbsession.insert(data)
         i += 1
     self.dbsession.commit()
     self.dbsession.close()
コード例 #2
0
ファイル: mystat.py プロジェクト: wanziforever/statistics
    def _top_media_type(self):
        from common.media_type import media_types
        from common.fetch_media_data import VodMedia
        self.dbsession = self.db.open('play_top_media_types_times')

        data = {"seq": "",
                'date':'%s_%s'%(self.config['start'],
                                self.config['end']),
                'categoryid': "",
                'category_name':'',
                'count': 0}
        media_type_count = {}
        for mediaid, play_info in self.stat_user.users_info.users.items():
            infos = play_info.count_with_index()
            total = 0
            for index, count in infos.items():
                total += count
            media = VodMedia(mediaid)
            title = media.get_title()
            print "id: %s, cid: %s, title: %s"%\
                  (mediaid, media.get_category_id(), unicode(title, 'utf-8'))
            cid = media.get_category_id()
            if cid is None:
                continue

            country = media.get_country()

            self._count_medias_for_category(int(cid))
            self._count_media_for_country(country, total)
            
            # count the media play times
            if cid in media_type_count:
                media_type_count[cid] += total
            else:
                media_type_count[cid] = total
                
        sorted_types = sorted(media_type_count.items(), key=lambda d: d[1], reverse=True)
        for i in range(len(sorted_types)):
            data['seq'] = i
            category_id = sorted_types[i][0]
            data['categoryid'] = category_id
            if category_id in media_types:
                data['category_name'] = media_types[category_id]
            else:
                data['category_name'] = category_id
            data['count'] = sorted_types[i][1]
            self.dbsession.insert(data)
        self.dbsession.commit()
        self.dbsession.close()
コード例 #3
0
ファイル: mystat.py プロジェクト: wanziforever/tools
    def _category_play_duration(self):
        from common.media_type import media_types
        from common.fetch_media_data import VodMedia
        self.dbsession = self.db.open('play_top_media_types_duration')

        data = {
            "seq": "",
            'date': '%s_%s' % (self.config['start'], self.config['end']),
            'categoryid': "",
            'category_name': '',
            'count': 0
        }
        media_type_count = {}
        for mediaid, play_info in self.stat_user.users_info.users.items():
            infos = play_info.count_with_index()
            total = 0
            for index, count in infos.items():
                total += count
            media = VodMedia(mediaid)
            title = media.get_title()
            print "id: %s, cid: %s, title: %s"%\
                  (mediaid, media.get_category_id(), unicode(title, 'utf-8'))
            cid = media.get_category_id()
            if cid is None:
                continue
            cid = int(cid)
            if cid in media_type_count:
                media_type_count[cid] += total
            else:
                media_type_count[cid] = total

        sorted_types = sorted(media_type_count.items(),
                              key=lambda d: d[1],
                              reverse=True)
        for i in range(len(sorted_types)):
            data['seq'] = i
            category_id = sorted_types[i][0]
            data['categoryid'] = category_id
            if category_id in media_types:
                data['category_name'] = media_types[category_id]
            else:
                data['category_name'] = category_id
            data['count'] = sorted_types[i][1]
            self.dbsession.insert(data)
        self.dbsession.commit()
        self.dbsession.close()