#!/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()