Ver código fonte

score_list 历史查询使用ghId

wangyunpeng 6 meses atrás
pai
commit
38b79cc0e8
2 arquivos alterados com 20 adições e 18 exclusões
  1. 10 10
      applications/articleTools.py
  2. 10 8
      routes/accountServer.py

+ 10 - 10
applications/articleTools.py

@@ -98,7 +98,7 @@ class ArticleDBTools(object):
         """
         self.mysql_client = mysql_client
 
-    async def getAccountAvgInfo(self, account_name):
+    async def getAccountAvgInfo(self, gh_id):
         """
         获取单个账号历史均值
         """
@@ -121,7 +121,7 @@ class ArticleDBTools(object):
         sql = f"""
             SELECT {", ".join(keys)}
             FROM account_avg_info_v3
-            WHERE account_name = '{account_name}'
+            WHERE gh_id = '{gh_id}'
             and position = 1;"""
         result = await self.mysql_client.async_select(sql=sql)
         account_avg_info_list = [AccountAvgInfo(*row) for row in result] if result else []
@@ -149,7 +149,7 @@ class ArticleDBTools(object):
 
         return account_avg_info_map.get(closest_date) if closest_date else None
 
-    async def getSingleAccountArticles(self, account_name):
+    async def getSingleAccountArticles(self, gh_id):
         """
         获取单个账号的历史文章
         :param gh_id:
@@ -169,13 +169,13 @@ class ArticleDBTools(object):
         sql = f"""
             SELECT {", ".join(keys)}
             FROM official_articles_v2
-            WHERE accountName = '{account_name}';"""
+            WHERE ghId = '{gh_id}';"""
         result = await self.mysql_client.async_select(sql=sql)
         return DataFrame(result, columns=keys)
 
     async def getArticleByFilter(
             self,
-            account_name,
+            gh_id,
             view_count_filter=None,
             index_list=None,
             min_time=None,
@@ -183,7 +183,7 @@ class ArticleDBTools(object):
             msg_type=None,
     ):
         """
-        :param account_name:
+        :param gh_id:
         :param index_list: index ranges from 1 to 8
         :param min_time: earliest time
         :param max_time: latest time
@@ -199,7 +199,7 @@ class ArticleDBTools(object):
         if not max_time:
             # 2099年
             max_time = 4088051123
-        articleDataFrame = await self.getSingleAccountArticles(account_name=account_name)
+        articleDataFrame = await self.getSingleAccountArticles(gh_id=gh_id)
         filterDataFrame = articleDataFrame[
             (articleDataFrame["Type"] == msg_type)
             & (min_time < articleDataFrame["updateTime"])
@@ -211,7 +211,7 @@ class ArticleDBTools(object):
         return filterDataFrame
 
     async def get_good_bad_articles(self,
-                                    account_name,
+                                    gh_id,
                                     interest_type,
                                     view_count_filter,
                                     rate=0.1,
@@ -225,7 +225,7 @@ class ArticleDBTools(object):
         :return:
         """
         article_data_frame = await self.getArticleByFilter(
-            account_name=account_name,
+            gh_id=gh_id,
             view_count_filter=view_count_filter,
             index_list=index_list,
             min_time=min_time,
@@ -248,7 +248,7 @@ class ArticleDBTools(object):
                     return good_df, bad_df
                 case "account_avg":
                     account_read_avg_list = await self.getAccountAvgInfo(
-                        account_name=account_name
+                        gh_id=gh_id
                     )
                     account_avg_info_map = {info.update_time: info for info in account_read_avg_list}
                     # 获取所有可用日期并排序

+ 10 - 8
routes/accountServer.py

@@ -15,6 +15,7 @@ class AccountServer(object):
 
     def __init__(self, mysql_client, params):
         self.account_name_list = None
+        self.gh_id_list = None
         self.sim_type = None
         self.interest_type = None
         self.min_time = None
@@ -58,6 +59,7 @@ class AccountServer(object):
         try:
             self.title_list = self.params["text_list"]
             self.account_name_list = self.params.get("account_nickname_list", [])
+            self.gh_id_list = self.params.get("gh_id_list", [])
             self.rate = self.params.get("rate", 0.1)
             self.max_time = self.params.get("max_time")
             self.min_time = self.params.get("min_time")
@@ -71,7 +73,7 @@ class AccountServer(object):
 
     async def get_account_interest(
         self,
-        account_name,
+        gh_id,
         interest_type,
         view_count_filter,
         rate=None,
@@ -82,7 +84,7 @@ class AccountServer(object):
     ):
         """
         获取账号的兴趣类型
-        :param account_name:
+        :param gh_id:
         :param max_time:
         :param min_time:
         :param index_list:
@@ -93,7 +95,7 @@ class AccountServer(object):
         :return:
         """
         good_df, bad_df = await self.AT.get_good_bad_articles(
-            account_name=account_name,
+            gh_id=gh_id,
             interest_type=interest_type,
             msg_type=msg_type,
             index_list=index_list,
@@ -114,14 +116,14 @@ class AccountServer(object):
         print(extend_dicts)
         return account_interest, extend_dicts
 
-    async def get_each_account_score_list(self, account_name):
+    async def get_each_account_score_list(self, gh_id):
         """
         获取和单个账号的相关性分数
         :return:
         """
         try:
             account_interest, extend_dicts = await self.get_account_interest(
-                account_name=account_name,
+                gh_id=gh_id,
                 interest_type=self.interest_type,
                 rate=self.rate,
                 view_count_filter=self.view_count_filter,
@@ -154,11 +156,11 @@ class AccountServer(object):
         :return:
         """
         response = {}
-        for accountName in self.account_name_list:
-            if response.get(accountName):
+        for gh_id in self.gh_id_list:
+            if response.get(gh_id):
                 continue
             else:
-                response[accountName] = await self.get_each_account_score_list(account_name=accountName)
+                response[gh_id] = await self.get_each_account_score_list(gh_id=gh_id)
         return response
 
     async def deal(self):