Commit ca58ff10 authored by 李小芳's avatar 李小芳

wiki

parent 31e14c85
......@@ -6,7 +6,8 @@ from utils.rpc import get_rpc_invoker
from qa.models.toutiao import by_content_type_id_get_keywords, get_content_star_keywords, get_content_title_keywords, \
get_content_star_first_keyword, has_service
from tags.services.tag import (get_tagv3_analysis_info, get_tag_v3_operators_tags, get_tag_v3_anecdote_tags,
get_tag_v3_anecdote_tag_ids)
get_tag_v3_anecdote_tag_ids, get_tag_v3_names_by_tag_v3_ids, get_gossip_tags,
get_tag_v3_gossip_tag_ids)
from talos.services.convert_service.user_convert_service import UserConvertService
from data_sync.tractate.transfer import get_keynote_sentence
from gm_types.gaia import DOCTOR_TYPE
......@@ -60,6 +61,8 @@ def get_answers(pks):
score = answer.get_search_new_smart_rank_score(answer_id=answer.id)
item['search_new_smr'] = score.get("smart_rank_score", 0)
item['new_goodclicks'] = score.get('new_goodclick', 0)
item['detail_smr'] = score.get('smart_rank_v2', 0)
# 新标签
fresh_tag_result = rpc["api/agile_tag/tuple_new_tags"](old_tag_ids=tags_id_list)
fresh_tag_id_list = list()
......@@ -175,6 +178,19 @@ def get_answers(pks):
# else: # 7天以上强制不保量
# item["is_need_guarantee"] = False
item["has_video"] = Answer.has_video(answer)
item["is_gif"] = answer.cover_is_dynamic
operators_add_tags_names = list()
operators_add_tags_names = get_tag_v3_names_by_tag_v3_ids(item['operators_add_tags'])
# 判断是否有八卦标签
gossip_tag_names = get_gossip_tags()
gossip_inter = list(set(operators_add_tags_names).intersection(set(gossip_tag_names)))
if gossip_inter:
item["is_gossip"] = True
else:
item["is_gossip"] = False
item["gossip_tag_ids"] = get_tag_v3_gossip_tag_ids(content_id=answer.id, content_type="answer")
item["gossip_tags"] = get_tag_v3_gossip_tag_ids(content_id=answer.id, content_type="answer", get_names=True)
data.append(item)
except (Answer.DoesNotExist, Question.DoesNotExist):
pass
......
......@@ -10,7 +10,7 @@ from talos.services.convert_service.user_convert_service import UserConvertServi
from gm_types.gaia import DOCTOR_TYPE, TAG_V3_TYPE, TAG_TYPE
from tags.services.tag import (get_tagv3_analysis_info, get_tag_v3_operators_tags, get_tag_v3_anecdote_tags,
get_tag_v3_anecdote_tag_ids, get_tag_v3_channel_tags_tags,
get_tag_v3_names_by_tag_v3_ids)
get_tag_v3_names_by_tag_v3_ids, get_gossip_tags, get_tag_v3_gossip_tag_ids)
from talos.models.tractate.vote import TractateVote
from talos.models.tractate.reply import TractateReply
from talos.services.tractate.tractate import TractateService
......@@ -218,6 +218,18 @@ def get_tractate(pks):
else:
item['show_by_index'] = tractate.get_show_by_index(tractate.id)
item["has_video"] = TractateService.has_video(tractate.id)
item["is_gif"] = tractate.cover_is_dynamic # 是否是动图
# 判断是否有八卦标签
gossip_tag_names = get_gossip_tags()
gossip_inter = list(set(operators_add_tags_names).intersection(set(gossip_tag_names)))
if gossip_inter:
item["is_gossip"] = True
else:
item["is_gossip"] = False
item["gossip_tag_ids"] = get_tag_v3_gossip_tag_ids(content_id=tractate.id, content_type="tractate")
item["gossip_tags"] = get_tag_v3_gossip_tag_ids(content_id=tractate.id, content_type="tractate",
get_names=True)
data.append(item)
logging.info("get data:%s" % data)
......
......@@ -376,7 +376,7 @@ class QuestionTag(models.Model):
question = models.ForeignKey(Question, related_name='qtags')
tag = fields.MagicField(type=int, manager=TagManager, ttl=60 * 60 * 24, db_column="tag_id")
def get_name_list(self,tag_list):
def get_name_list(self, tag_list):
logging.info("get tag_list:%s" % tag_list)
manager = TagManager()
name = list()
......@@ -965,7 +965,8 @@ class Answer(models.Model):
n_days = today - delta
date_change = str(n_days).replace("-", "")
score = SearchStrategyAnswerSmrScore.objects.using(settings.DORIS_DB_NAME).filter(
answer_id=answer_id).order_by('-create_date').values("smart_rank_score", "new_goodclick").first()
answer_id=answer_id).order_by('-create_date').values("smart_rank_score", "new_goodclick",
"smart_rank_v2").first()
if score:
return score
else:
......@@ -1621,3 +1622,4 @@ class SearchStrategyAnswerSmrScore(models.Model):
smart_rank_score = models.FloatField(verbose_name=u'新的smr_score', blank=True, default=0)
create_date = models.BigIntegerField(max_length=50, verbose_name="时间")
new_goodclick = models.FloatField(verbose_name=u'新的点击分', blank=True, default=0)
smart_rank_v2 = models.FloatField(verbose_name=u'新的smr_score', blank=True, default=0)
......@@ -574,3 +574,39 @@ def get_tag_v3_anecdote_tag_ids(content_id=None, content_type=None):
except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return []
def get_gossip_tags():
"""
:return: [names]
"""
try:
tag_names = list(
TagV3.objects.using(settings.ZHENGXING_DB).filter(tag_type=TAG_V3_TYPE.GOSSIP, is_online=True).values_list(
"name", flat=True))
return tag_names
except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return []
def get_tag_v3_gossip_tag_ids(content_id=None, content_type=None, get_names=False):
try:
if content_type == "answer":
all_tags = list(set(AnswerTagV3.objects.filter(answer_id=content_id).values_list("tag_v3_id", flat=True)))
elif content_type == "tractate":
all_tags = list(
set(TractateTagV3.objects.filter(tractate_id=content_id).values_list("tag_v3_id", flat=True)))
elif content_type == "question":
all_tags = list(
set(QuestionTagV3.objects.filter(question_id=content_id).values_list("tag_v3_id", flat=True)))
if get_names:
all_operators_ids = get_ids_by_names(tags_ids=all_tags, tags_type=TAG_V3_TYPE.GOSSIP)
else:
all_operators_ids = get_ids_by_names(tags_ids=all_tags, tags_type=TAG_V3_TYPE.GOSSIP, get_ids=True)
return all_operators_ids
except:
logging.error("catch exception,err_msg:%s" % traceback.format_exc())
return []
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment