Ejemplo n.º 1
0
    def get_user_profile_by_id(self, userid):
        self.__base = self.__base or BaseDao()
        op          = UserProfile(self.__base)
        rows        = op.get_user_profile_by_id(userid)

        if (len(rows) > 0):
            return rows[0].toDict()
Ejemplo n.º 2
0
    def get_fans(self, user_id=0, page_num=0, page_size=10):
        self.__base = BaseDao()
        op = UserProfile(self.__base)
        (total, rows) = op.get_fans_by_user(user_id, page_size, page_num)

        is_big_v = False
        result = []
        for row in rows:
            u = row.toDict()

            u['is_big_v'] = is_big_v
            if (is_big_v):
                is_big_v = False
            else:
                is_big_v = True

            (play_count, icons) = op.get_user_content(u['userid'])
            u['total_play_count'] = play_count
            u['games'] = icons

            result.append(u)

        data = {}
        data['fans'] = result
        data['total'] = total
        return data
Ejemplo n.º 3
0
    def get_dancers_by_work_id(self, work_id=0, dance_id=0, tp=0, user_id=0):
        from dao.user_profile import UserProfile
        dance = Dance(self.__base)
        user_dao = UserProfile(self.__base)
        if not work_id:
            work_obj = dance.get_work_by_dance_id(dance_id=dance_id)
            work_id = work_obj.id
            user_id = user_id or work_obj.user_id

        followings = user_dao.get_all_followings(user_id)
        follow_ids = [user.no for user in followings]

        rows = dance.get_dancers_by_work_id(work_id=work_id, tp=tp)

        arr = []
        for row in rows:
            dic = row.toDict()
            dic['isWatch'] = False
            if row.user_id in follow_ids:
                dic['isWatch'] = True
            arr.append(dic)

        data = {}
        data['data'] = arr
        data['total'] = len(arr)
        if dance_id:
            dancer = dance.get_dancer_by_dance_id(dance_id=dance_id,
                                                  work_id=work_id)
            data['myself'] = dancer.toDict()
        return data
Ejemplo n.º 4
0
    def watch(self, watch_id, watched_id, status):
        self.__base = BaseDao()
        op = UserProfile(self.__base)
        op.watch(watch_id, watched_id, status)

        data = {}
        data['op_result'] = '成功'
        return data
Ejemplo n.º 5
0
    def get_watch_all(self, user_id=0):
        self.__base = self.__base or BaseDao()
        op = UserProfile(self.__base)
        (total, rows) = op.get_watch_by_user_all(user_id)

        result = []
        for row in rows:
            result.append(row.no)

        return result
Ejemplo n.º 6
0
    def get_master_list(self, page_num):
        # 获取应用列表
        #service  = ApplicationService()
        #app_list = service.get_all_app()
        #service.close()

        self.__base = self.__base or BaseDao()
        op            = UserProfile(self.__base)
        (total, rows) = op.get_master_list(5, page_num)
      
        data = {}
        data['masters'] = rows
        data['total']   = total
        data['name']    = '猜你喜欢'
        return data
Ejemplo n.º 7
0
    def get_watch(self, user_id=0, page_num=0, page_size=10):
        self.__base = BaseDao()
        op = UserProfile(self.__base)
        (total, rows) = op.get_watch_by_user(user_id, 30, page_num)

        is_big_v = False
        result = []
        for row in rows:
            u = row.toDict()
            u['is_big_v'] = is_big_v
            result.append(u)

        data = {}
        data['users'] = result
        data['total'] = len(rows)
        return data
Ejemplo n.º 8
0
 def add_invalid_icon(self, userid):
     from commonlib.service.session_service import SessionService
     from service.video_service import VideoService
     sessionS = SessionService(self.__base)
     isExit = sessionS.get_session(pool='invalid_icon', k=userid)
     if not isExit:
         #一个小时内不会重复请求
         sessionS.add_session(pool='invalid_icon', k=userid, v='.', expire=60*60)
         #sessionS.add_session(pool='invalid_icon', k=userid, v='.', expire=6)
         videoS = VideoService(self.__base)
         datas  = videoS.get_video_by_user(user_id=userid,req_user_id=userid,batch_num=1)
         videos = datas['videos']
         if videos and len(videos):
             video_obj = videos[0]
             user_icon = video_obj['usericon']
             if user_icon:
                 logger.info('get new user_icon:%s, now update db'%user_icon)
                 self.__base = self.__base or BaseDao()
                 op          = UserProfile(self.__base)
                 op.update_user_icon(user_icon, userid)
     else:
         logger.info('userid:%s has already in cache, do not update now'%userid)
Ejemplo n.º 9
0
    def get_user_profile(self, uid):
        self.__base = self.__base or BaseDao()
        op          = UserProfile(self.__base)
        rows        = op.get_user_profile(uid)

        dic = {}        
        if (len(rows) > 0):
            dic = rows[0].toDict()
            dic['followers_num'] = op.get_followers_num(uid) or 0
            dic['following_num'] = op.get_following_num(uid) or 0
        
        data = {}
        data['profile'] = dic
        data['message'] = op.get_message_number(uid)
        return data
Ejemplo n.º 10
0
 def is_watch(self, userid1, userid2):
     self.__base = BaseDao()
     op = UserProfile(self.__base)
     return op.is_watch(userid1, userid2)
Ejemplo n.º 11
0
    def get_video_by_users(self, user_id=0, req_user_ids=[], batch_num=30):
        import time
        from adjuster.hero_adjuster import HeroAdjuster
        from dao.common import assemble_adjuster
        from dao.user_profile import UserProfile

        self.__base = self.__base or BaseDao()
        if not req_user_ids:
            req_user_ids = _get_watch_users(user_id)
        if not req_user_ids:
            return None

        udp_client = self._get_herotime_client()
        arr = []
        data = {}
        data['videos'] = arr
        data['total'] = 0
        data['user_info'] = []

        try:
            video = Video(self.__base)
            user = UserProfile(self.__base)
            uid_tmps = []
            userid_tmps = []
            uid_time_map = {}
            uid_user_id_map = {}
            user_id_uid_map = {}
            user_id_profile_map = {}
            for user_item in req_user_ids:
                #req_user_id is chuanchuan id
                #uid     is chuanchuan openid
                req_user_id = user_item['req_user_id']
                if not req_user_id:
                    logger.warn('req_user_id is null, continue')
                    continue
                uid = user.get_uid_by_userid(req_user_id)
                if not uid:
                    logger.error('uid is null, req_user_id:%s' % req_user_id)
                    continue
                    #return None

                uid_user_id_map[uid] = req_user_id
                user_id_uid_map[req_user_id] = uid
                uid_tmps.append(uid)
                userid_tmps.append(req_user_id)
                uid_time_map[uid] = (user_item.get('begin_sec')
                                     or 0, user_item.get('begin_usec') or 0)
            if not len(uid_tmps):
                logger.warn('uid_tmps is null, return None')
                return None

            res = self._convert_openid(uid_tmps)

            openids = []
            openid_user_id_map = {}
            for uid_tmp in uid_tmps:
                lp_openid = res.get(uid_tmp)
                if not lp_openid:
                    logger.warn(
                        'convert uid:%s to lp uid fail, maybe it is qq openid'
                        % uid)
                    continue
                userid = uid_user_id_map.get(uid_tmp)
                openid_user_id_map[lp_openid] = userid
                begin_sec, begin_usec = uid_time_map.get(uid_tmp)
                openids.append({
                    'uid': lp_openid.encode("utf-8"),
                    'begin_sec': begin_sec,
                    'begin_usec': begin_usec
                })

            if not len(openids):
                logger.warn(
                    'lp openids is null, maybe it is all qq openid:%s' %
                    uid_tmps)
                return None

            logger.info('convert openid success %s->%s, start get videos' %
                        (uid_tmps, openids))

            adjuster = HeroAdjuster(udp_client)
            logger.info('[Time]:get_videos_by_batch_users,start:%s' %
                        time.time())
            res_obj = adjuster.get_videos_by_batch_users(openids=openids,
                                                         batch_num=batch_num)
            logger.info('[Time]:get_videos_by_batch_users,end:%s' %
                        time.time())

            obj_tmp = []
            for item in res_obj:
                datas = item.get('datas')
                req_userid = openid_user_id_map.get(item.get('uid'))
                for info in datas:
                    #logger.info('debug:info:%s'%info)
                    obj = assemble_adjuster(info)

                    row_id = video.add_video(video_obj=obj)
                    if row_id:
                        video.add_video_game(video_obj=obj)
                        user.update_user_profile(obj=obj)

                    obj.uid = user_id_uid_map[req_userid]
                    obj.userid = req_userid
                    obj_tmp.append(obj)
                    #logger.info('get_video_by_users, add video info:%s'%obj.toDict())
                end_sec = item.get('end_sec') or 0
                end_usec = item.get('end_usec') or 0
                #end_sec 0 represent has no more datas, so do not response to client.
                if not end_sec:
                    continue
                data['user_info'].append({
                    'req_user_id': req_userid,
                    'begin_sec': end_sec,
                    'begin_usec': end_usec
                })

            for user_profile in user.get_user_profile_by_ids(userid_tmps):
                user_id_profile_map[user_profile.no] = user_profile

            for obj in obj_tmp:
                profile = user_id_profile_map[obj.userid]
                obj.nickname = profile.nickname
                obj.usericon = profile.user_icon
                arr.append(obj.toDict())

            data['total'] = len(arr)
        except:
            logger.error(traceback.format_exc())
        finally:
            udp_client.close()
            return data
Ejemplo n.º 12
0
 def update_user_profile_diy(self, user_id=0, signature='', nickname='', user_icon='', user_pics=[]):
     self.__base = self.__base or BaseDao()
     op          = UserProfile(self.__base)
     op.update_user_profile_diy(user_id=user_id, signature=signature,
                                nickname=nickname, user_icon=user_icon, user_pics=user_pics)
Ejemplo n.º 13
0
    def get_uid_by_userid(self, userid):
        self.__base = self.__base or BaseDao()
        op          = UserProfile(self.__base)
        uid         = op.get_uid_by_userid(userid)

        return uid