ソースを参照

response优化

增加新code
luojunhui 4 ヶ月 前
コミット
b16ef3c7c3
2 ファイル変更101 行追加78 行削除
  1. 37 0
      applications/const/server_const.py
  2. 64 78
      server/api/response.py

+ 37 - 0
applications/const/server_const.py

@@ -26,4 +26,41 @@ class ServerConst:
     # 任务最大处理次数
     TASK_MAX_PROCESS_TIMES = 3
 
+    # 默认返回小程序appid, 设置为票圈视频的appid
+    DEFAULT_APP_ID = 25
+
+    # 业务类型const
+    # daily发布文章
+    DAILY_CODE = 1
+    DAILY_PREFIX = 'longArticles'
+
+    # 投流账号发布文章
+    TOULIU_CODE = 2
+    TOULIU_PREFIX = 'touliu_tencentGzhArticle'
+
+    # 企微发布文章
+    WECOM_CODE = 3
+    WECOM_PREFIX = 'WeCom'
+
+    # 代投发布文章
+    DAITOU_CODE = 4
+    DAITOU_PREFIX = 'DaiTou'
+
+    # 公众号代运营合作
+    COOPERATION_CODE = 5
+    COOPERATION_PREFIX = 'gzhhzdx'
+
+    #  任务状态码
+    TASK_INIT_CODE = 0
+    TASK_KIMI_FINISHED_CODE = 1
+    TASK_SPIDER_FINISHED_CODE = 2
+    TASK_ETL_FINISHED_CODE = 3
+    TASK_PUBLISHED_CODE = 4
+    TASK_ILLEGAL_CODE = 95
+    TASK_BAD_CATEGORY_CODE = 96
+    TASK_EXIT_CODE = 97
+    TASK_FAIL_CODE = 99
+    TASK_PROCESSING_CODE = 101
+
+
 

+ 64 - 78
server/api/response.py

@@ -37,7 +37,20 @@ class Response(object):
         try:
             self.mini_program_type = self.params['miniprogramUseType']
             self.trace_id = self.params['traceId']
-            return None
+            if self.mini_program_type in [
+                server_const.DAILY_CODE,
+                server_const.TOULIU_CODE,
+                server_const.WECOM_CODE,
+                server_const.DAITOU_CODE,
+                server_const.COOPERATION_CODE
+            ]:
+                return None
+            else:
+                return {
+                    "error": "params error",
+                    "message": "mini_program_type error",
+                    "info": self.params
+                }
         except Exception as e:
             return {
                 "error": "params error",
@@ -82,21 +95,24 @@ class Response(object):
             return hashlib.md5(hash_input.encode()).hexdigest()
 
         root_share_id = str(uuid.uuid4())
-        if self.mini_program_type == 2:
-            source_id = (
-                    "touliu_tencentGzhArticle_{}_".format(gh_id) + generate_source_id()
-            )
-        elif self.mini_program_type == 1:
-            source_id = "longArticles_" + generate_source_id()
-        elif self.mini_program_type == 3:
-            source_id = "WeCom_" + generate_source_id()
-        elif self.mini_program_type == 4:
-            source_id = "DaiTou_{}_".format(gh_id) + generate_source_id()
-        else:
-            source_id = "Error mini_program_type {}".format(self.mini_program_type)
+
+        match self.mini_program_type:
+            case server_const.DAILY_CODE:
+                source_id = "{}_{}".format(server_const.DAILY_PREFIX, generate_source_id())
+
+            case server_const.TOULIU_CODE:
+                source_id = "{}_{}_{}".format(server_const.TOULIU_PREFIX, gh_id, generate_source_id())
+
+            case server_const.WECOM_CODE:
+                source_id = "{}_{}".format(server_const.WECOM_PREFIX, generate_source_id())
+
+            case server_const.DAITOU_CODE:
+                source_id = "{}_{}_{}".format(server_const.DAITOU_PREFIX, gh_id, generate_source_id())
+
+            case server_const.COOPERATION_CODE:
+                source_id = "{}_{}".format(server_const.COOPERATION_PREFIX, generate_source_id())
+
         url = f"pages/user-videos?id={video_id}&su={shared_uid}&fromGzh=1&rootShareId={root_share_id}&shareId={root_share_id}&rootSourceId={source_id}"
-        # 自动把 root_share_id 加入到白名单
-        # auto_white(root_share_id)
         return (
             root_share_id,
             source_id,
@@ -155,86 +171,56 @@ class Response(object):
         """
         gh_id = result['gh_id']
         response = json.loads(result['response'])
-        long_articles_mini_program_id = 25
-        touliu_mini_program_id = 33
-        we_com_mini_program_id = 27
-        daitou_mini_program_id = 25
-        match self.mini_program_type:
-            case 1:
-                L = []
-                new_item_list = []
-                for index, item in enumerate(response, 1):
-                    card, new_item = await self.generate_single_card(index, gh_id, long_articles_mini_program_id, item)
-                    L.append(card)
-                    new_item_list.append(new_item)
-                return L, new_item_list
-            case 2:
-                L = []
-                new_item_list = []
-                for index, item in enumerate(response, 1):
-                    card, new_item = await self.generate_single_card(index, gh_id, touliu_mini_program_id, item)
-                    L.append(card)
-                    new_item_list.append(new_item)
-                return L, new_item_list
-            case 3:
-                L = []
-                new_item_list = []
-                for index, item in enumerate(response, 1):
-                    card, new_item = await self.generate_single_card(index, gh_id, we_com_mini_program_id, item)
-                    L.append(card)
-                    new_item_list.append(new_item)
-                return L, new_item_list
-            case 4:
-                L = []
-                new_item_list = []
-                for index, item in enumerate(response, 1):
-                    card, new_item = await self.generate_single_card(index, gh_id, daitou_mini_program_id, item)
-                    L.append(card)
-                    new_item_list.append(new_item)
-                return L, new_item_list
+        card_list = []
+        new_item_list = []
+        for index, item in enumerate(response, 1):
+            card, new_item = await self.generate_single_card(index, gh_id, server_const.DEFAULT_APP_ID, item)
+            card_list.append(card)
+            new_item_list.append(new_item)
+        return card_list, new_item_list
 
     async def job(self):
         """
         执行方法
         :return:
         """
-        response = await self.get_videos_result()
-        status_code = response.get('content_status')
-        process_times = response.get('process_times')
+        video_result = await self.get_videos_result()
+        status_code = video_result.get('content_status')
+        process_times = video_result.get('process_times')
         match status_code:
-            case 0:
+            case server_const.TASK_INIT_CODE:
                 if process_times > server_const.TASK_MAX_PROCESS_TIMES:
                     result = {
                         "traceId": self.trace_id,
-                        "code": 0,
-                        "error": "匹配失败,处理超过 3 次"
+                        "code": server_const.TASK_INIT_CODE,
+                        "error": "匹配失败,处理超过{}次".format(server_const.TASK_MAX_PROCESS_TIMES)
                     }
                 else:
                     result = {
                         "traceId": self.trace_id,
-                        "code": 0,
+                        "code": server_const.TASK_INIT_CODE,
                         "message": "该请求还没处理"
                     }
                 return result
-            case 1:
+            case server_const.TASK_KIMI_FINISHED_CODE:
                 return {
                     "traceId": self.trace_id,
-                    "code": 1,
+                    "code": server_const.TASK_KIMI_FINISHED_CODE,
                     "message": "已经执行完kimi"
                 }
-            case 2:
+            case server_const.TASK_SPIDER_FINISHED_CODE:
                 return {
                     "traceId": self.trace_id,
-                    "code": 2,
+                    "code": server_const.TASK_SPIDER_FINISHED_CODE,
                     "message": "已经执行完爬虫"
                 }
-            case 3:
+            case server_const.TASK_ETL_FINISHED_CODE:
                 return {
                     "traceId": self.trace_id,
-                    "code": 3,
+                    "code": server_const.TASK_ETL_FINISHED_CODE,
                     "message": "已经执行完 etl"
                 }
-            case 4:
+            case server_const.TASK_PUBLISHED_CODE:
                 # 修改任务状态为处理中
                 update_sql = f"""
                     UPDATE {self.article_match_video_table}
@@ -255,7 +241,7 @@ class Response(object):
                         "info": "并发任务抢占锁失败",
                         "message": "该 trace_id 正在处理中或者已经处理完成"
                     }
-                card_list, new_items = await self.generate_cards(result=response)
+                card_list, new_items = await self.generate_cards(result=video_result)
                 update_sql = f"""
                     UPDATE {self.article_match_video_table}
                     SET response = %s, success_status = %s
@@ -274,34 +260,34 @@ class Response(object):
                     "traceId": self.trace_id,
                     "miniprogramList": card_list
                 }
-            case 95:
+            case server_const.TASK_ILLEGAL_CODE:
                 return {
                     "traceId": self.trace_id,
-                    "code": 95,
+                    "code": server_const.TASK_ILLEGAL_CODE,
                     "error": "该文章被kimi识别为高风险文章,不处理"
                 }
-            case 96:
+            case server_const.TASK_BAD_CATEGORY_CODE:
                 return {
                     "traceId": self.trace_id,
-                    "code": 96,
+                    "code": server_const.TASK_BAD_CATEGORY_CODE,
                     "error": "该文章品类不符合这个账号,不做冷启动处理"
                 }
-            case 97:
+            case server_const.TASK_EXIT_CODE:
                 return {
                     "traceId": self.trace_id,
-                    "code": 97,
+                    "code": server_const.TASK_EXIT_CODE,
                     "error": "该文章已经退场or晋级, 不再冷启处理"
                 }
-            case 99:
+            case server_const.TASK_FAIL_CODE:
                 return {
                     "traceId": self.trace_id,
-                    "code": 99,
+                    "code": server_const.TASK_FAIL_CODE,
                     "error": "该任务执行失败"
                 }
-            case 101:
+            case server_const.TASK_PROCESSING_CODE:
                 return {
                     "traceId": self.trace_id,
-                    "code": 101,
+                    "code": server_const.TASK_PROCESSING_CODE,
                     "message": "该任务正在执行中"
                 }
 
@@ -340,4 +326,4 @@ class Response(object):
                     },
                     api="recall_videos"
                 )
-                return response
+                return response