Преглед на файлове

2024-09-25
发布新版本文章匹配小程序服务

罗俊辉 преди 7 месеца
родител
ревизия
57281ec91e
променени са 4 файла, в които са добавени 48 реда и са изтрити 21 реда
  1. 13 1
      applications/functions/common.py
  2. 1 1
      applications/functions/pqFunctions.py
  3. 18 10
      tasks/history_task.py
  4. 16 9
      tasks/publish_task.py

+ 13 - 1
applications/functions/common.py

@@ -2,10 +2,22 @@
 """
 @author: luojunhui
 """
+import random
 import aiohttp
 import asyncio
 
 
+def shuffleList(ori_list):
+    """
+    随机打乱 list
+    :param ori_list:
+    :return:
+    """
+    shuffled_list = ori_list[:]  # 使用切片操作创建副本
+    random.shuffle(shuffled_list)
+    return shuffled_list
+
+
 def clean_title(strings):
     """
     :param strings:
@@ -83,4 +95,4 @@ async def async_post(url, headers, payload):
                 if attempt < retries - 1:
                     await asyncio.sleep(2)  # 等待一段时间后重试
                 else:
-                    raise
+                    raise

+ 1 - 1
applications/functions/pqFunctions.py

@@ -44,7 +44,7 @@ async def publishToPQ(video_obj):
         "repeatStatus": 1
     }
     response = await async_post(url, headers, payload)
-    print(json.dumps(response, ensure_ascii=False, indent=4))
+    # print(json.dumps(response, ensure_ascii=False, indent=4))
     return response
 
 

+ 18 - 10
tasks/history_task.py

@@ -2,11 +2,13 @@
 @author: luojunhui
 """
 import json
+import time
 import asyncio
 
 from applications.config import Config
 from applications.log import logging
 from applications.functions.pqFunctions import publishToPQ
+from applications.functions.common import shuffleList
 
 
 class historyContentIdTask(object):
@@ -23,6 +25,7 @@ class historyContentIdTask(object):
         self.article_video = Config().articleVideos
         self.article_crawler_video = Config().articleCrawlerVideos
         self.history_coroutines = Config().getConfigValue("historyArticleCoroutines")
+        self.gh_id_dict = json.loads(Config().getConfigValue("testAccountLevel2"))
 
     async def getTaskList(self):
         """
@@ -115,20 +118,25 @@ class historyContentIdTask(object):
         :param flow_pool_level: 流量池层级 ---> str
         :return:
         """
-        video_list = download_videos[:3]
+        # video_list = download_videos[:3]
         match flow_pool_level:
             case "autoArticlePoolLevel4":
-                print("冷启层")
-                video_list = []
+                # 冷启层, 全量做
+                video_list = shuffleList(download_videos)[:3]
             case "autoArticlePoolLevel3":
-                print("暂时未知层")
-                video_list = []
+                # 次条,只针对具体账号做
+                if self.gh_id_dict.get(gh_id):
+                    video_list = shuffleList(download_videos)[:3]
+                else:
+                    video_list = download_videos[:3]
             case "autoArticlePoolLevel2":
-                print("次条层")
                 video_list = []
             case "autoArticlePoolLevel1":
-                print("头条层")
-                video_list = []
+                # 头条,先不做
+                video_list = download_videos[:3]
+            case _:
+                print("未传流量池信息")
+                video_list = download_videos[:3]
         L = []
         for video_obj in video_list:
             params = {
@@ -137,7 +145,7 @@ class historyContentIdTask(object):
                 "title": kimi_title
             }
             response = await publishToPQ(params)
-            # time.sleep(2)
+            time.sleep(2)
             obj = {
                 "uid": video_obj['uid'],
                 "source": video_obj['platform'],
@@ -171,7 +179,7 @@ class historyContentIdTask(object):
         """
         content_id = params['content_id']
         trace_id = params['trace_id']
-        flow_pool_level = params['flow_pool_level'],
+        flow_pool_level = params['flow_pool_level']
         gh_id = params['gh_id']
         process_times = params['process_times']
         # 判断该篇文章是否存在未下架的视频,且判断是否有3条, 如果没有三条,则启动新抓取任务,后续优化点

+ 16 - 9
tasks/publish_task.py

@@ -9,6 +9,7 @@ import time
 from applications.config import Config
 from applications.log import logging
 from applications.functions.pqFunctions import publishToPQ
+from applications.functions.common import shuffleList
 
 
 class publishTask(object):
@@ -25,6 +26,7 @@ class publishTask(object):
         self.article_video = Config().articleVideos
         self.article_text = Config().articleText
         self.article_crawler_video = Config().articleCrawlerVideos
+        self.gh_id_dict = json.loads(Config().getConfigValue("testAccountLevel2"))
 
     async def getTasks(self):
         """
@@ -101,20 +103,26 @@ class publishTask(object):
         :param flow_pool_level: 流量池层级 ---> str
         :return:
         """
-        video_list = download_videos[:3]
+        # video_list = download_videos[:3]
         match flow_pool_level:
             case "autoArticlePoolLevel4":
-                print("冷启层")
-                video_list = []
+                # 冷启层, 全量做
+                video_list = shuffleList(download_videos)[:3]
             case "autoArticlePoolLevel3":
-                print("暂时未知层")
-                video_list = []
+                if self.gh_id_dict.get(gh_id):
+                    video_list = shuffleList(download_videos)[:3]
+                else:
+                    video_list = download_videos[:3]
             case "autoArticlePoolLevel2":
-                print("次条层")
+                # 次条,只针对具体账号做
                 video_list = []
             case "autoArticlePoolLevel1":
-                print("头条层")
-                video_list = []
+                # 头条,先不做
+                video_list = download_videos[:3]
+            case _:
+                print("未传流量池信息")
+                video_list = download_videos[:3]
+
         L = []
         for video_obj in video_list:
             params = {
@@ -123,7 +131,6 @@ class publishTask(object):
                 "title": kimi_title
             }
             response = await publishToPQ(params)
-            print(response)
             time.sleep(2)
             obj = {
                 "uid": video_obj['uid'],