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()
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()