Forráskód Böngészése

Merge branch '2025-01-11-get_off_videos-improve' of Server/title_with_video into master

luojunhui 3 hónapja
szülő
commit
4e78bc8a2b
1 módosított fájl, 60 hozzáadás és 20 törlés
  1. 60 20
      server/api/get_off_videos.py

+ 60 - 20
server/api/get_off_videos.py

@@ -3,6 +3,7 @@
 """
 import json
 import time
+import traceback
 
 from applications.log import logging
 from applications.functions.forward_request import forward_requests
@@ -19,6 +20,7 @@ class GetOffVideos(object):
         self.article_match_video_table = config.article_match_video_table
         self.get_off_videos = config.get_off_video_table
         self.trace_id = None
+        self.push_type = None
 
     def check_params(self):
         """
@@ -27,6 +29,7 @@ class GetOffVideos(object):
         """
         try:
             self.trace_id = self.params['traceId']
+            self.push_type = self.params.get('pushType')
             logging(
                 code="4121",
                 info='自动下架视频接口参数校验成功',
@@ -43,36 +46,69 @@ class GetOffVideos(object):
             }
             return response
 
+    async def record_published_trace_id(self, gh_id):
+        """
+        记录已发布的trace_id
+        :return:
+        """
+        insert_sql = f"""
+            INSERT IGNORE INTO long_articles_published_trace_id
+            (trace_id, gh_id, push_type, create_timestamp)
+            VALUES
+            (%s, %s, %s, %s);
+        """
+        await self.mysql_client.async_insert(
+            sql=insert_sql,
+            params=(
+                self.trace_id,
+                gh_id,
+                self.push_type,
+                int(time.time())
+            )
+        )
+
+    async def record_get_off_videos(self, video_list):
+        """
+        存储视频id到getOffVideos表中
+        """
+        info_list = [
+            (
+                item['videoId'],
+                int(time.time()),
+                1,
+                self.trace_id
+            )
+            for item in video_list
+        ]
+        insert_sql = f"""
+            INSERT INTO {self.get_off_videos}
+            (video_id, publish_time, video_status, trace_id)
+            values 
+            (%s, %s, %s, %s);
+        """
+        await self.mysql_client.async_insert_many(
+            sql=insert_sql,
+            params_list=info_list
+        )
+
     async def push_video_into_queue(self):
         """
         将视频id记录到待下架表中
         :return:
         """
         select_sql = f"""
-        select response from {self.article_match_video_table} where trace_id = '{self.trace_id}';
+        select gh_id, response from {self.article_match_video_table} where trace_id = '{self.trace_id}';
         """
         result = await self.mysql_client.async_select(sql=select_sql)
         if result:
-            video_list = json.loads(result[0][0])
-            info_list = [
-                (
-                    item['videoId'],
-                    int(time.time()),
-                    1,
-                    self.trace_id
-                )
-                for item in video_list
-            ]
+            video_list = json.loads(result[0][1])
+            gh_id = result[0][0]
             try:
-                insert_sql = f"""
-                    INSERT INTO {self.get_off_videos}
-                    (video_id, publish_time, video_status, trace_id)
-                    values 
-                    (%s, %s, %s, %s);"""
-                await self.mysql_client.async_insert_many(
-                    sql=insert_sql,
-                    params_list=info_list
-                )
+                await self.record_get_off_videos(video_list)
+
+                if self.push_type:
+                    await self.record_published_trace_id(gh_id)
+
                 logging(
                     code="4122",
                     info='自动下架视频接口存储成功',
@@ -87,6 +123,9 @@ class GetOffVideos(object):
                 logging(
                     code="4123",
                     info="自动下架视频处理失败: {}".format(e),
+                    data={
+                        "traceback": traceback.format_exc()
+                    },
                     function="get_off_videos",
                     trace_id=self.trace_id
                 )
@@ -95,6 +134,7 @@ class GetOffVideos(object):
                     "traceId": self.trace_id,
                     "msg": "insert fails, {}".format(e)
                 }
+
         else:
             return {
                 "status": "fail",