|
@@ -1,6 +1,7 @@
|
|
|
"""
|
|
|
@author: luojunhui
|
|
|
"""
|
|
|
+
|
|
|
from applications.functions import ArticleRank
|
|
|
from applications.functions import title_sim_v2_by_list
|
|
|
from applications.functions import get_article_title_url_list
|
|
@@ -22,6 +23,7 @@ def has_same(title, account_nickname):
|
|
|
return True
|
|
|
return False
|
|
|
|
|
|
+
|
|
|
class AccountArticleRank(object):
|
|
|
"""
|
|
|
文章排序
|
|
@@ -47,20 +49,20 @@ class AccountArticleRank(object):
|
|
|
:return:
|
|
|
"""
|
|
|
try:
|
|
|
- self.accountId = self.params['accountId']
|
|
|
- self.accountName = self.params['accountName']
|
|
|
- self.ghId = self.params['ghId']
|
|
|
- self.strategy = self.params['strategy']
|
|
|
- self.publishNum = self.params['publishNum']
|
|
|
- self.publishArticleList = self.params['publishArticleList']
|
|
|
- self.title_list = [i['title'] for i in self.publishArticleList]
|
|
|
- self.content_list = [i['content'] for i in self.publishArticleList]
|
|
|
+ self.accountId = self.params["accountId"]
|
|
|
+ self.accountName = self.params["accountName"]
|
|
|
+ self.ghId = self.params["ghId"]
|
|
|
+ self.strategy = self.params["strategy"]
|
|
|
+ self.publishNum = self.params["publishNum"]
|
|
|
+ self.publishArticleList = self.params["publishArticleList"]
|
|
|
+ self.title_list = [i["title"] for i in self.publishArticleList]
|
|
|
+ self.content_list = [i["content"] for i in self.publishArticleList]
|
|
|
return None
|
|
|
except Exception as e:
|
|
|
response = {
|
|
|
"msg": "params error",
|
|
|
"info": "params check failed, params : {} is not correct".format(e),
|
|
|
- "code": 0
|
|
|
+ "code": 0,
|
|
|
}
|
|
|
return response
|
|
|
|
|
@@ -70,24 +72,35 @@ class AccountArticleRank(object):
|
|
|
:return:
|
|
|
"""
|
|
|
try:
|
|
|
- rank_info = ArticleRank().rank(account_list=[self.accountName], text_list=self.title_list)
|
|
|
- score_list = rank_info[self.accountName]['score_list']
|
|
|
+ rank_info = ArticleRank().rank(
|
|
|
+ account_list=[self.accountName], text_list=self.title_list
|
|
|
+ )
|
|
|
+ score_list = rank_info[self.accountName]["score_list"]
|
|
|
title_score_dict = {}
|
|
|
+
|
|
|
for index, item in enumerate(self.title_list):
|
|
|
title_score_dict[item] = score_list[index]
|
|
|
+
|
|
|
result_list = []
|
|
|
for obj in self.publishArticleList:
|
|
|
- if title_score_dict.get(obj['title']):
|
|
|
- obj['score'] = title_score_dict[obj['title']]
|
|
|
+ if title_score_dict.get(obj["title"]):
|
|
|
+ produce_plan_name = obj["producePlanName"]
|
|
|
+ if "【1】" in produce_plan_name:
|
|
|
+ obj["score"] = title_score_dict[obj["title"]] + 1000
|
|
|
+ elif "【2】" in produce_plan_name:
|
|
|
+ obj["score"] = title_score_dict[obj["title"]] + 100
|
|
|
+ else:
|
|
|
+ obj["score"] = title_score_dict[obj["title"]]
|
|
|
result_list.append(obj)
|
|
|
- sorted_list = sorted(result_list, key=lambda x: x['score'], reverse=True)
|
|
|
+
|
|
|
+ sorted_list = sorted(result_list, key=lambda x: x["score"], reverse=True)
|
|
|
result = {
|
|
|
"accountId": self.accountId,
|
|
|
"accountName": self.accountName,
|
|
|
"ghId": self.ghId,
|
|
|
"strategy": self.strategy,
|
|
|
"publishNum": self.publishNum,
|
|
|
- "rank_list": sorted_list[:self.publishNum]
|
|
|
+ "rank_list": sorted_list[: self.publishNum],
|
|
|
}
|
|
|
except Exception as e:
|
|
|
result = {
|
|
@@ -96,13 +109,9 @@ class AccountArticleRank(object):
|
|
|
"ghId": self.ghId,
|
|
|
"strategy": self.strategy,
|
|
|
"publishNum": self.publishNum,
|
|
|
- "rank_list": self.publishArticleList[:self.publishNum]
|
|
|
+ "rank_list": self.publishArticleList[: self.publishNum],
|
|
|
}
|
|
|
- response = {
|
|
|
- "status": "Rank Success",
|
|
|
- "data": result,
|
|
|
- "code": 1
|
|
|
- }
|
|
|
+ response = {"status": "Rank Success", "data": result, "code": 1}
|
|
|
return response
|
|
|
|
|
|
async def rank_v2(self):
|
|
@@ -160,11 +169,10 @@ class AccountArticleRank(object):
|
|
|
return error_params
|
|
|
else:
|
|
|
try:
|
|
|
- self.title_list = [i for i in self.title_list if not has_same(i, self.accountName)]
|
|
|
+ self.title_list = [
|
|
|
+ i for i in self.title_list if not has_same(i, self.accountName)
|
|
|
+ ]
|
|
|
return await self.choose_strategy()
|
|
|
except Exception as e:
|
|
|
- result = {
|
|
|
- "code": 2,
|
|
|
- "info": "account is not exist"
|
|
|
- }
|
|
|
+ result = {"code": 2, "info": "account is not exist"}
|
|
|
return result
|