Exemplo n.º 1
0
    def push_user_id(cls):
        """
            push user_id into redis
            key: "user_id"
        """
        user_redis = UserRedis()
        id_list = range(1, 300011)

        user_redis.push_user_id(id_list)
Exemplo n.º 2
0
    def push_user_identity(cls):
        """
        push user_identity into redis
        key : "user_identity"


        """
        user_redis = UserRedis()
        identity_list = gen_luck_number()
        user_redis.push_user_identity(identity_list=identity_list)
Exemplo n.º 3
0
    def get_index_moments(cls, page, page_count, user):
        is_show_top = True
        if not user:
            is_pure = [1, 4]
        else:
            is_target = UserRedis.is_target_user(user.id)
            if user.is_video_auth == 1 and not UserRedis.is_pure_anchor(
                    user.id):  # 老主播
                is_show_top = False
                is_pure = [1, 2, 3]
            elif user.is_video_auth != 1 and not is_target:  # 新用户
                is_pure = [1, 4]
            elif user.is_video_auth != 1 and is_target:  # 老用户
                is_pure = [1, 2, 3, 4]
                is_show_top = False
            else:  # 新主播
                return cls.objects.filter(
                    show_status__in=[1, 3, 4], delete_status=1,
                    is_public=1).order_by("-create_time")[(page - 1) *
                                                          page_count:page *
                                                          page_count]

        moment_list = []
        top_ids = []

        if is_show_top:
            # 置顶动态
            top_list = cls.objects.filter(is_top=1).order_by("-top_time")
            if top_list:
                for top in top_list:
                    if int(page) == 1:
                        moment_list.append(top)
                    top_ids.append(str(top.id))
        # 动态
        moments = cls.objects.filter(
            show_status__in=[1, 3, 4],
            id__nin=top_ids,
            delete_status=1,
            is_public=1,
            is_pure__in=is_pure).order_by("-create_time")[(page - 1) *
                                                          page_count:page *
                                                          page_count]
        if moments:
            for moment in moments:
                moment_list.append(moment)

        return moment_list
Exemplo n.º 4
0
    def create(cls, user_id, picture_urls, content):
        user_moment = UserMoment()
        user_moment.user_id = user_id
        user_moment.like_count = 0
        user_moment.like_user_list = []
        user_moment.comment_count = 0
        picture_url_list = picture_urls.split(',')
        if picture_url_list:
            for picture_url in picture_url_list:
                if picture_url:
                    pic_url = User.convert_http_to_https(picture_url)
                    dict = {"url": pic_url, "status": 1}
                    user_moment.img_list.append(dict)
        user_moment.content = content
        user_moment.show_status = 5
        user_moment.delete_status = 1
        user_moment.ispass = 2
        user_moment.type = 1
        user_moment.is_public = 1
        user_moment.create_time = datetime.datetime.now()
        user_moment.save()
        if user_moment.img_list:
            MessageSender.send_picture_detect(pic_url="",
                                              user_id=0,
                                              pic_channel=0,
                                              source=2,
                                              obj_id=str(user_moment.id))
        else:
            user_moment.update(set__show_status=1)

        user = User.objects.filter(id=user_id).first()
        pure_id = "597ef85718ce420b7d46ce11"
        if user.is_video_auth == 1:
            if user.label:
                if pure_id in user.label:
                    user_moment.update(set__is_pure=1)
                else:
                    user_moment.update(set__is_pure=3)
            else:
                user_moment.update(set__is_pure=3)
        else:
            if UserRedis.is_target_user(user.id):
                user_moment.update(set__is_pure=2)
            else:
                user_moment.update(set__is_pure=4)
Exemplo n.º 5
0
def pushredis(self):
    now_time = int(time.time())
    #pre_time = now_time - 120
    pre_time = now_time - 3600
    # heartbeats = UserHeartBeat.objects.filter(last_report_time__gte=pre_time)
    #stuilabel ="598d7a2418ce423b1222d645" #首推标签id
    nvshentuan = "59801c4b18ce4256ceabdd03"
    qingcun = "597ef85718ce420b7d46ce11"
    gaoqing = "59c61e3718ce4216c1c87ab9"
    usersss = User.objects.filter(is_video_auth=1,
                                  is_block__ne=1).order_by("is_vip")
    firstsort = []
    stuiqingchunanchors = []
    for u in usersss:
        if nvshentuan in u.label and qingcun in u.label and gaoqing in u.label:
            firstsort.append(u)
        elif nvshentuan in u.label and qingcun in u.label:
            stuiqingchunanchors.append(u)
    users = []
    user_recommed_id = []
    user_recommed_id_all = []
    usermap = {}

    stuiqingchunanchors = firstsort + stuiqingchunanchors
    randomstui = []
    for stui in stuiqingchunanchors:
        user_heart = UserHeartBeat.objects.get(user=stui)
        if user_heart.last_report_time > pre_time and stui.disturb_mode != 1:
            randomstui.append(stui)
    for user in randomstui:
        if user.id in users:
            continue
        users.append(user.id)
        personal_tags = UserTags.get_usertags(user_id=user.id)
        if not personal_tags:
            personal_tags = []

        user_vip = UserVip.objects.filter(user_id=user.id).first()

        # time = int(time.time())
        # pre_time = time - 120
        user_beat = UserHeartBeat.objects.filter(
            user=user, last_report_time__gte=pre_time).first()
        if user_beat:
            is_online = 1
            # else:
            #     is_online = 0
            user_recommed_id_all.append(user.id)
            if not user_vip:
                dic = {
                    "user": {
                        "_uid": user.sid,
                        "logo_big": user.image,
                        "nickname": user.nickname,
                        "desc": user.desc
                    },
                    "personal_tags": personal_tags,
                    "is_online": is_online
                }
                dic["check_real_video"] = 1
            else:
                vip = Vip.objects.filter(id=user_vip.vip_id).first()
                dic = {
                    "user": {
                        "_uid": user.sid,
                        "logo_big": user.image,
                        "nickname": user.nickname,
                        "desc": user.desc
                    },
                    "personal_tags": personal_tags,
                    "vip": {
                        "vip_type": vip.vip_type,
                        "icon_url": Vip.convert_http_to_https(vip.icon_url)
                    },
                    "is_online": is_online
                }
                dic["check_real_video"] = 1

            self.append(user.id)
            usermap[str(user.id)] = json.dumps(dic)
            user_recommed_id.append(user.id)

    deletetui()
    print "===================self", self
    if user_recommed_id:
        UserRedis.add_user_recommed_id_pure(user_recommed_id)
        UserRedis.add_user_recommed_id_all_pure(user_recommed_id_all)
        UserRedis.add_user_recommed_pure(usermap)
    push_index_anchor(self)
Exemplo n.º 6
0
def pushredis(self):
    now_time = int(time.time())
    #pre_time = now_time - 120
    pre_time = now_time - 3600
    # heartbeats = UserHeartBeat.objects.filter(last_report_time__gte=pre_time)
    stuilabel = "598d7a2418ce423b1222d645"  #首推标签id
    usersss = User.objects.filter(is_video_auth=1,
                                  is_block__ne=1).order_by("is_vip")
    stuianchors = []
    for u in usersss:
        if stuilabel in u.label:
            stuianchors.append(u)
    hots = []
    users = []
    user_recommed_id = []
    user_recommed_id_all = []
    usermap = {}
    anchors = Anchor.objects.filter().order_by("seq")

    for anchor in anchors:
        user = User.objects.get(id=anchor.sid)
        user_heart = UserHeartBeat.objects.get(user=user)
        if user_heart.last_report_time > pre_time and user.disturb_mode != 1:
            hots.append(user)
    randomstui = []
    for stui in stuianchors:
        user_heart = UserHeartBeat.objects.get(user=stui)
        if user_heart.last_report_time > pre_time and stui.disturb_mode != 1:
            randomstui.append(stui)
    # hot 和 stulist
    # random.shuffle(hots)
    random.shuffle(randomstui)

    hots = hots + randomstui

    for user in hots:
        if user.id in users:
            continue
        users.append(user.id)
        personal_tags = UserTags.get_usertags(user_id=user.id)
        if not personal_tags:
            personal_tags = []

        user_vip = UserVip.objects.filter(user_id=user.id).first()

        # time = int(time.time())
        # pre_time = time - 120
        user_beat = UserHeartBeat.objects.filter(
            user=user, last_report_time__gte=pre_time).first()
        if user_beat:
            is_online = 1
            # else:
            #     is_online = 0
            user_recommed_id_all.append(user.id)
            roomrecord = AudioRoomRecord.objects.filter(
                user_id=user.id).order_by("-open_time").first()
            if not user_vip:
                dic = {
                    "user": {
                        "_uid": user.sid,
                        "logo_big": user.image,
                        "nickname": user.nickname,
                        "desc": user.desc
                    },
                    "personal_tags": personal_tags,
                    "is_online": is_online
                }
            else:
                vip = Vip.objects.filter(id=user_vip.vip_id).first()
                dic = {
                    "user": {
                        "_uid": user.sid,
                        "logo_big": user.image,
                        "nickname": user.nickname,
                        "desc": user.desc
                    },
                    "personal_tags": personal_tags,
                    "vip": {
                        "vip_type": vip.vip_type,
                        "icon_url": Vip.convert_http_to_https(vip.icon_url)
                    },
                    "is_online": is_online
                }

            show_video = RealVideoVerify.objects(
                user_id=user.id, status=1).order_by("-update_time").first()
            if show_video:
                dic["check_real_video"] = show_video.status
            else:
                real_video = RealVideoVerify.objects(
                    user_id=user.id,
                    status__ne=2).order_by("-update_time").first()
                if real_video:
                    dic["check_real_video"] = real_video.status
                else:
                    dic["check_real_video"] = 3

            self.append(user.id)
            usermap[str(user.id)] = json.dumps(dic)
            if not roomrecord or roomrecord.status == 1:
                user_recommed_id.append(user.id)
    deletetui()
    if user_recommed_id:
        UserRedis.add_user_recommed_id_v3(user_recommed_id)
        UserRedis.add_user_recommed_id_all(user_recommed_id_all)
        UserRedis.add_user_recommed_v3(usermap)
    push_index_anchor(self)
Exemplo n.º 7
0
def deleteanchor():
    UserRedis.delete_index_anchor_v3()
    UserRedis.delete_index_anchor_id_v3()
    UserRedis.delete_index_anchor_id_all()
Exemplo n.º 8
0
def deletetui():
    UserRedis.delete_user_recommed_v3()
    UserRedis.delete_user_recommed_id_v3()
    UserRedis.delete_user_recommed_id_all()
Exemplo n.º 9
0
                    if show_video:
                        dic["check_real_video"] = show_video.status
                    else:
                        if real_video:
                            dic["check_real_video"] = real_video.status
                        else:
                            dic["check_real_video"] = 3

                    usermap[str(user.id)] = json.dumps(dic)
                    if not roomrecord or roomrecord.status == 1:
                        index_id.append(user.id)
        except Exception, e:
            print e
            #UserRedis.add_index_anchor(str(user.id),json.dumps(dic))
    deleteanchor()
    UserRedis.add_index_id_v3(index_id)
    UserRedis.add_index_id_all(index_id_all)
    UserRedis.add_index_anchor_v3(usermap)
    print "=============首页数据入redis完毕"


def deletetui():
    UserRedis.delete_user_recommed_v3()
    UserRedis.delete_user_recommed_id_v3()
    UserRedis.delete_user_recommed_id_all()


def deleteanchor():
    UserRedis.delete_index_anchor_v3()
    UserRedis.delete_index_anchor_id_v3()
    UserRedis.delete_index_anchor_id_all()
Exemplo n.º 10
0
    def create_user2(cls,
                     openid,
                     source,
                     nickname,
                     platform=0,
                     phone=None,
                     gender=1,
                     ip='',
                     image="",
                     channel="",
                     guid=guid):
        from app.customer.models.account import Account
        from app.customer.models.benifit import TicketAccount
        try:
            user = cls.objects.get(source=source, openid=openid)
            if user.complete_info == 1:
                is_new = False
            else:
                is_new = True

        except User.DoesNotExist:
            if image and source == User.SOURCE_TWITTER:
                image = User.convert_http_to_https(
                    cls.upload_logo(image, gender))

            if source == cls.SOURCE_PHONE:
                complete_info = 1
            else:
                complete_info = 0

            user = User(openid=openid,
                        complete_info=complete_info,
                        is_block=0,
                        user_type=0,
                        guid=guid,
                        nickname=nickname,
                        desc=_(u"等待一通电话,连接你我的心。"),
                        phone=phone,
                        gender=gender,
                        image=User.convert_http_to_https(image),
                        constellation=_(u'摩羯座'),
                        occupation="",
                        blood_type="",
                        birth_date=datetime.date(1995, 1, 1),
                        emotional="",
                        total_time=0,
                        total_call_time=0,
                        total_income=0,
                        total_amount=0,
                        audio_room_id="",
                        now_price=100,
                        listen_url="",
                        is_video_auth=3,
                        url_duration=0,
                        video_time=0,
                        video_call_time=0,
                        video_income=0,
                        video_amount=0,
                        video_price=100,
                        created_at=datetime.datetime.now(),
                        ip=ip,
                        channel=channel,
                        platform=platform,
                        source=source,
                        experience=0,
                        ticket=0,
                        ticket_bonus=0,
                        cost=0,
                        wealth_value=0,
                        charm_value=0,
                        bottle_switch=1,
                        disturb_mode=0,
                        online_status=1,
                        current_score=-1,
                        last_guid=guid)

            user.id = UserRedis.pop_user_id()
            user.identity = UserRedis.pop_user_identity()
            user.save()

            # create account
            account = Account(
                user=user,
                diamond=0,
                last_diamond=0,
                update_time=datetime.datetime.now(),
                diamond_bonus=0,
                charge=0,
            )
            account.save()

            ticket_account = TicketAccount(user=user,
                                           total_ticket=0,
                                           gift_ticket=0,
                                           call_ticket=0,
                                           friend_charge_ticket=0,
                                           friend_benifit_ticket=0,
                                           money_requesting=0,
                                           money=0,
                                           money_withdrawed=0,
                                           bonus_ticket=0,
                                           last_ticket=0,
                                           update_time=datetime.datetime.now())

            ticket_account.save()

            ###########添加用户时间上报#####################
            user_heart_beat = UserHeartBeat()
            user_heart_beat.user = user
            user_heart_beat.last_report_time = int(time.time())
            user_heart_beat.current_score = user_heart_beat.last_report_time
            user_heart_beat.save()
            if complete_info == 1:
                is_new = False
            else:
                is_new = True
        except Exception, e:
            logging.error("create user error " + str(e))
Exemplo n.º 11
0
def deletetui():
    UserRedis.delete_user_recommed()
    UserRedis.delete_user_recommed_id()
Exemplo n.º 12
0
                            }

                        if show_video:
                            dic["check_real_video"] = show_video.status
                        else:
                            if real_video:
                                dic["check_real_video"] = real_video.status
                            else:
                                dic["check_real_video"] = 3
                        index_id.append(user.id)
                        usermap[str(user.id)] = json.dumps(dic)
        except Exception, e:
            print e
            #UserRedis.add_index_anchor(str(user.id),json.dumps(dic))
    deleteanchor()
    UserRedis.add_index_id(index_id)
    UserRedis.add_index_anchor(usermap)
    print "=============首页数据入redis完毕"


def deletetui():
    UserRedis.delete_user_recommed()
    UserRedis.delete_user_recommed_id()


def deleteanchor():
    UserRedis.delete_index_anchor()
    UserRedis.delete_index_anchor_id()


if __name__ == "__main__":
Exemplo n.º 13
0
def deleteanchor():
    UserRedis.delete_index_anchor_pure()
    UserRedis.delete_index_anchor_id_pure()
    UserRedis.delete_index_anchor_id_all_pure()
Exemplo n.º 14
0
def deletetui():
    UserRedis.delete_user_recommed_pure()
    UserRedis.delete_user_recommed_id_pure()
    UserRedis.delete_user_recommed_id_all_pure()
Exemplo n.º 15
0
def push_index_anchor(self):
    users = []
    usermap = {}
    qingcun = "597ef85718ce420b7d46ce11"

    randomvalist1 = []
    index_id_all = []
    anchors = User.objects.filter(is_video_auth=1,
                                  is_block__ne=1).order_by("is_vip")
    for anchor in anchors:
        if qingcun in anchor.label:
            randomvalist1.append(anchor)

    index_id = []
    for qingcun in randomvalist1:
        if qingcun not in users:
            users.append(qingcun)

    zaixianbururao = []
    zaixiancall = []
    zaixianwurao = []
    lixian = []
    for user in users:
        if user.id == 1 or user.id == 2:
            continue
        import time
        time = int(time.time())
        pre_time = time - 3600
        user_beat = UserHeartBeat.objects.filter(
            user=user, last_report_time__gte=pre_time).first()
        if user_beat:
            if user.audio_status == 2:
                if user.disturb_mode == 0:
                    zaixianbururao.append(user)
                else:
                    zaixianwurao.append(user)
            else:
                zaixiancall.append(user)
        else:
            lixian.append(user)
    finalusers = zaixianbururao + zaixiancall
    for user in finalusers:
        if user.id not in self:
            index_id_all.append(user.id)
            personal_tags = UserTags.get_usertags(user_id=user.id)
            if not personal_tags:
                personal_tags = []
            user_vip = UserVip.objects.filter(user_id=user.id).first()

            is_online = 1
            if user_vip:
                vip = Vip.objects.filter(id=user_vip.vip_id).first()
                dic = {
                    "user": {
                        "_uid": user.sid,
                        "logo_big": user.image,
                        "nickname": user.nickname,
                        "desc": user.desc
                    },
                    "personal_tags": personal_tags,
                    "vip": {
                        "vip_type": vip.vip_type,
                        "icon_url": Vip.convert_http_to_https(vip.icon_url)
                    },
                    "is_online": is_online
                }
                dic["check_real_video"] = 1
            else:
                dic = {
                    "user": {
                        "_uid": user.sid,
                        "logo_big": user.image,
                        "nickname": user.nickname,
                        "desc": user.desc
                    },
                    "personal_tags": personal_tags,
                    "is_online": is_online
                }
                dic["check_real_video"] = 1
            usermap[str(user.id)] = json.dumps(dic)
            index_id.append(user.id)
    lixian = zaixianwurao + lixian
    for user in lixian:
        if user.id not in self:
            index_id_all.append(user.id)
            personal_tags = UserTags.get_usertags(user_id=user.id)
            if not personal_tags:
                personal_tags = []
            user_vip = UserVip.objects.filter(user_id=user.id).first()

            is_online = 0
            # 视频认证状态
            real_video = RealVideoVerify.objects(
                user_id=user.id,
                status__ne=2).order_by("-update_time").first()
            show_video = RealVideoVerify.objects(
                user_id=user.id, status=1).order_by("-update_time").first()

            if user_vip:
                vip = Vip.objects.filter(id=user_vip.vip_id).first()
                dic = {
                    "user": {
                        "_uid": user.sid,
                        "logo_big": user.image,
                        "nickname": user.nickname,
                        "desc": user.desc
                    },
                    "personal_tags": personal_tags,
                    "vip": {
                        "vip_type": vip.vip_type,
                        "icon_url": Vip.convert_http_to_https(vip.icon_url)
                    },
                    "is_online": is_online
                }
                dic["check_real_video"] = 1
            else:
                dic = {
                    "user": {
                        "_uid": user.sid,
                        "logo_big": user.image,
                        "nickname": user.nickname,
                        "desc": user.desc
                    },
                    "personal_tags": personal_tags,
                    "is_online": is_online
                }
                dic["check_real_video"] = 1
            usermap[str(user.id)] = json.dumps(dic)
            index_id.append(user.id)
    deleteanchor()
    print "==================index_id", index_id
    UserRedis.add_index_id_pure(index_id)
    UserRedis.add_index_id_all_pure(index_id_all)
    UserRedis.add_index_anchor_pure(usermap)
    print "=============首页清纯数据入redis完毕"
Exemplo n.º 16
0
def pushredis(self):
    now_time = int(time.time())
    # pre_time = now_time - 120
    pre_time = now_time - 3600
    # heartbeats = UserHeartBeat.objects.filter(last_report_time__gte=pre_time)
    stuilabel = "598d7a2418ce423b1222d645"
    usersss = User.objects.filter(is_video_auth=1,
                                  is_block__ne=1).order_by("is_vip")
    stuianchors = []
    for u in usersss:
        if stuilabel in u.label:
            stuianchors.append(u)
    hots = []
    users = []
    user_recommed_id = []
    usermap = {}
    anchors = Anchor.objects.filter().order_by("seq")

    for anchor in anchors:
        user = User.objects.get(id=anchor.sid)
        user_heart = UserHeartBeat.objects.get(user=user)
        if user_heart.last_report_time > pre_time and user.disturb_mode != 1:
            hots.append(user)
            print "===================在线的热门主播", user.id
    stuilist = []
    for stui in stuianchors:
        user_heart = UserHeartBeat.objects.get(user=stui)
        if user_heart.last_report_time > pre_time and stui.disturb_mode != 1:
            show_video = RealVideoVerify.objects(
                user_id=stui.id, status=1).order_by("-update_time").first()
            if show_video:
                stuilist.insert(0, stui)
            else:
                stuilist.append(stui)

    hots = hots + stuilist

    # for heartbeat in heartbeats:
    #     if heartbeat.user.charm_value > 3500 and heartbeat.user.disturb_mode != 1 \
    #             and heartbeat.user.id not in hot_ids and heartbeat.user.is_video_auth == 1:
    #         hots.append(heartbeat.user)

    # if not hots:
    #     hots = User.objects.filter(is_video_auth=1).order_by("-charm_value")[0:4]
    for h in hots:
        roomrecord = AudioRoomRecord.objects.filter(
            user_id=h.id).order_by("-open_time").first()
        if h not in users:
            if not roomrecord or roomrecord.status == 1:
                users.append(h)

    for user in users:
        personal_tags = UserTags.get_usertags(user_id=user.id)
        if not personal_tags:
            personal_tags = []

        user_vip = UserVip.objects.filter(user_id=user.id).first()

        # time = int(time.time())
        # pre_time = time - 120
        user_beat = UserHeartBeat.objects.filter(
            user=user, last_report_time__gte=pre_time).first()
        if user_beat:
            is_online = 1
        else:
            is_online = 0

        if not user_vip:
            dic = {
                "user": convert_user(user),
                "personal_tags": personal_tags,
                "time_stamp": int(time.time()),
                "is_online": is_online
            }
        else:
            vip = Vip.objects.filter(id=user_vip.vip_id).first()
            dic = {
                "user": convert_user(user),
                "personal_tags": personal_tags,
                "time_stamp": int(time.time()),
                "vip": convert_vip(vip),
                "is_online": is_online
            }

        show_video = RealVideoVerify.objects(
            user_id=user.id, status=1).order_by("-update_time").first()
        if show_video:
            dic["check_real_video"] = show_video.status
        else:
            real_video = RealVideoVerify.objects(
                user_id=user.id,
                status__ne=2).order_by("-update_time").first()
            if real_video:
                dic["check_real_video"] = real_video.status
            else:
                dic["check_real_video"] = 3
        user_recommed_id.append(user.id)
        self.append(user.id)
        usermap[str(user.id)] = json.dumps(dic)
    deletetui()
    if user_recommed_id:
        UserRedis.add_user_recommed_id(user_recommed_id)
        UserRedis.add_user_recommed(usermap)
    push_index_anchor(self)
Exemplo n.º 17
0
def deleteanchor():
    UserRedis.delete_index_anchor()
    UserRedis.delete_index_anchor_id()
Exemplo n.º 18
0
    def get(self):
        user_id = self.current_user_id
        picture_urls = self.arg('picture_urls')
        picture_url_list = picture_urls.split(',')
        picture_ids = []
        type = self.arg_int("type", 1)
        publish_status = self.arg_int("publish_status", 1)
        """
        发布相册规则:
        vip 认证用户可以发精美相册
        最多每天发9张
        精华照片在 精华相册中展示,并且同步到动态.
        """
        new_count = len(picture_url_list)
        user = User.objects.filter(id=user_id).first()

        code, message = PictureInfo.check_count(new_count, user, type)

        if code == 2:
            return self.write({"status": "failed", "error": _(message)})

        moment_pic_ids = []
        if picture_url_list:
            created_at = datetime.datetime.now()
            for temp_pic_url in picture_url_list:
                pic_info = PictureInfo()
                pic_url = User.convert_http_to_https(temp_pic_url)
                pic_info.picture_url = pic_url
                pic_info.picture_real_url = pic_url
                pic_info.user_id = user_id
                pic_info.lock_type = 0
                pic_info.created_at = created_at
                pic_info.type = 1
                pic_info.status = 0
                pic_info.show_status = 3
                pic_info.save()

                if type == 2:
                    # 精华相册
                    pic_info.update(set__type=2)
                    moment_pic_ids.append(str(pic_info.id))
                    # PictureInfo.generate_blurred_picture(pic_url, str(pic_info.id))
                else:
                    pic_info.update(set__type=1)
                    moment_pic_ids.append(str(pic_info.id))

                picture_ids.append(str(pic_info.id))

        MessageSender.send_picture_detect(pic_url=picture_urls,
                                          user_id=user_id,
                                          pic_channel=0,
                                          source=3,
                                          obj_id=None,
                                          pic_type=type)

        # 同步到动态
        if publish_status == 2:
            picture_url_list = []
            for moment_pic_id in moment_pic_ids:
                moment_pic = PictureInfo.objects.filter(
                    id=moment_pic_id, show_status__ne=2).first()
                if moment_pic:
                    picture_url_list.append(moment_pic.picture_real_url)

            code, message = UserMoment.check_moment_count(user)
            if code == 2:
                return self.write({'status': "fail", 'error': _(message)})

            user_moment = UserMoment()
            user_moment.user_id = user_id
            user_moment.like_count = 0
            user_moment.like_user_list = []
            user_moment.comment_count = 0

            if picture_url_list:
                for picture_url in picture_url_list:
                    if picture_url:
                        pic_url = User.convert_http_to_https(picture_url)
                        if type == 2:
                            dict = {
                                "url": pic_url,
                                "status": 1,
                                "is_essence": 1,
                            }
                            user_moment.content = ""
                            user_moment.type = 2
                        else:
                            dict = {"url": pic_url, "status": 1}
                            user_moment.content = ""
                            user_moment.type = 4
                        user_moment.img_list.append(dict)

            user_moment.show_status = 1
            user_moment.delete_status = 1
            user_moment.ispass = 2
            user_moment.is_public = 1
            user_moment.create_time = datetime.datetime.now()

            user_moment.save()

            from app_redis.user.models.user import UserRedis
            pure_id = "597ef85718ce420b7d46ce11"
            if user.is_video_auth == 1:
                if user.label:
                    if pure_id in user.label:
                        user_moment.update(set__is_pure=1)
                    else:
                        user_moment.update(set__is_pure=3)
                else:
                    user_moment.update(set__is_pure=3)
            else:
                if UserRedis.is_target_user(user.id):
                    user_moment.update(set__is_pure=2)
                else:
                    user_moment.update(set__is_pure=4)

            MessageSender.send_picture_detect(pic_url="",
                                              user_id=0,
                                              pic_channel=0,
                                              source=2,
                                              obj_id=str(user_moment.id))

        if picture_ids:
            self.write({"status": "success", "picture_ids": picture_ids})
        else:
            self.write({
                "status": "failed",
            })
Exemplo n.º 19
0
    def get(self):
        user_id = self.current_user_id
        user = self.current_user
        cover_url = self.arg('cover_url')
        video_url = self.arg('video_url')
        publish_status = self.arg_int('publish_status', 1)
        desc = self.arg('desc', "")
        file_id = self.arg('file_id', "")
        price = self.arg_int('price', 0)

        real_video_auth = RealVideoVerify.get_status(user_id)

        if int(real_video_auth) != 1:
            return self.write({
                "status": "fail",
                'error': _(u"视频认证通过后才可发布私房视频")
            })

        code, message = PrivateVideo.check_video_count(user)
        if code == 2:
            return self.write({"status": "fail", 'error': _(message)})

        if desc:
            # 文本内容鉴黄
            ret, duration = shumei_text_spam(text=desc,
                                             timeout=1,
                                             user_id=user.id,
                                             channel="DYNAMIC_COMMENT",
                                             nickname=user.nickname,
                                             phone=user.phone,
                                             ip=self.user_ip)
            print ret
            is_pass = 0
            if ret["code"] == 1100:
                if ret["riskLevel"] == "PASS":
                    is_pass = 1
                if ret["riskLevel"] == "REJECT":
                    is_pass = 0
                if ret["riskLevel"] == "REVIEW":
                    # todo +人工审核逻辑
                    is_pass = 1
            if not is_pass:
                return self.write({
                    'status': "fail",
                    'error': _(u"经系统检测,您的内容涉及违规因素,请重新编辑")
                })

        video = PrivateVideo()
        video.desc = desc
        video.user_id = int(user_id)
        video.cover_url = cover_url
        video.video_url = video_url
        video.price = price
        video.create_time = datetime.datetime.now()
        video.delete_status = 1
        video.show_status = 3
        video.is_valid = 1
        video.file_id = file_id
        video.save()

        user_moment = UserMoment()
        user_moment.user_id = user_id
        user_moment.like_count = 0
        user_moment.like_user_list = []
        user_moment.comment_count = 0

        user_moment.img_list = []
        user_moment.content = desc
        user_moment.create_time = datetime.datetime.now()
        user_moment.show_status = 5  # 1:展示  2:数美屏蔽  3:举报  4:数美部分屏蔽  5:数美鉴定中
        user_moment.delete_status = 1  # 1:未删除  2:删除
        user_moment.ispass = 2
        user_moment.type = 3
        user_moment.video_id = str(video.id)
        user_moment.cover_url = cover_url
        user_moment.video_url = video_url
        user_moment.price = video.price
        # 同步到动态
        if publish_status == 2:
            code, message = UserMoment.check_moment_count(user)
            if code == 2:
                return self.write({'status': "fail", 'error': _(message)})
            user_moment.is_public = 1
        else:
            user_moment.is_public = 2

        user_moment.save()

        from app_redis.user.models.user import UserRedis
        pure_id = "597ef85718ce420b7d46ce11"
        if user.is_video_auth == 1:
            if user.label:
                if pure_id in user.label:
                    user_moment.update(set__is_pure=1)
                else:
                    user_moment.update(set__is_pure=3)
            else:
                user_moment.update(set__is_pure=3)
        else:
            if UserRedis.is_target_user(user.id):
                user_moment.update(set__is_pure=2)
            else:
                user_moment.update(set__is_pure=4)

        return self.write({"status": "success"})