pictorial_transfer.py 3.77 KB
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
import logging
import traceback
from libs.tools import tzlc
from trans2es.models.topic import Topic
from trans2es.models.portrait_stat import LikePictorialStat


class PictorialTransfer(object):

    def __init__(self):
        pass

    @classmethod
    def get_offline_score(cls, instance, topic_id_list):
        try:
            total_offline_score = 0
            topic_image_num = 0
            for topic_id in topic_id_list:
                topic_image_num += Topic.get_topic_image_num(topic_id)

            if topic_image_num >= 6 and topic_image_num <= 10:
                total_offline_score += 30
            elif topic_image_num > 10 and topic_image_num <= 20:
                total_offline_score += 60
            elif topic_image_num > 20 and topic_image_num <= 50:
                total_offline_score += 80
            elif topic_image_num > 50:
                total_offline_score += 100

            total_offline_score += instance.add_score
            if instance.is_recommend:
                total_offline_score += 100

            return total_offline_score
        except:
            logging.error("catch exception,err_msg:%s" % traceback.format_exc())
            return 0

    @classmethod
    def get_poctorial_data(cls, instance):
        try:
            res = dict()

            res["id"] = instance.id
            res["is_online"] = instance.is_online
            res["is_deleted"] = instance.is_deleted
            res["is_recommend"] = instance.is_recommend
            res["name"] = instance.name
            res["description"] = instance.description
            res["topic_num"] = instance.topic_num
            res["creator_id"] = instance.creator_id
            res["icon"] = instance.icon
            create_time = instance.create_time
            tzlc_create_time = tzlc(create_time)
            res["create_time"] = tzlc_create_time
            update_time = instance.update_time
            tzlc_udpate_time = tzlc(update_time)
            res["update_time"] = tzlc_udpate_time
            res["high_quality_topic_num"] = instance.get_high_quality_topic_num_pictorial()
            tag_id_list = instance.get_tag_by_id()
            res["tag_id"] = tag_id_list
            res["tag_name"] = instance.get_tag_by_name(tag_id_list)
            res["topic_id_list"] = instance.get_topic_id()
            res["effective"] = instance.get_effective(res["topic_id_list"])
            res["offline_score"] = cls.get_offline_score(instance, res["topic_id_list"])
            res["is_default"] = instance.is_default
            res["is_cover"] = instance.get_is_cover(res["topic_id_list"])
            res["topic_vote_number"] = instance.get_topic_vote_number()
            res["activity_join"] = instance.get_activity_join()
            res["latest_real_reply_time"] = instance.get_latest_real_reply_time()
            res["latest_real_topic_time"] = instance.get_latest_real_topic_time()
            res["real_user_activate_time"] = instance.get_real_user_activate_time()
            res["edit_tag_id"] = instance.get_edit_tag_id()
            res["edit_tag_name"] = instance.get_edit_tag_name(res["edit_tag_id"])
            res["is_new_pictorial"] = LikePictorialStat.get_pictorial_is_new(instance.id)
            res["pictorial_ctr_30"] = LikePictorialStat.get_pictorial_ctr_30(instance.id)
            res["like_rate_30"] = LikePictorialStat.get_pictorial_like_rate_30(instance.id)
            res["pictorial_ctr_all"] = LikePictorialStat.get_pictorial_ctr_all(instance.id)
            res["like_rate_all"] = LikePictorialStat.get_pictorial_like_rate_all(instance.id)
            logging.info("get data:%s" % res)
            return res
        except:
            logging.error("catch exception,err_msg:%s" % traceback.format_exc())
            return dict()