zhangyong 3 månader sedan
förälder
incheckning
21c153e969
4 ändrade filer med 45 tillägg och 16 borttagningar
  1. 1 1
      common/aliyun_log.py
  2. 34 9
      job_data.py
  3. 1 1
      job_hour_data_redis.py
  4. 9 5
      top_automatic/top_data_processing.py

+ 1 - 1
common/aliyun_log.py

@@ -44,7 +44,7 @@ class AliyunLogger:
             contents = [
                 ("channel", channel),
                 ("description", description),
-                ("data", json.dumps(data, ensure_ascii=False) if data else ""),
+                ("data", json.dumps(data, ensure_ascii=False, indent=4)),
                 ("user_id", user_id)
             ]
             # 创建 LogClient 实例

+ 34 - 9
job_data.py

@@ -2,25 +2,50 @@ import json
 import os
 import time
 import uuid
+from datetime import datetime
 
 import schedule
 from loguru import logger
 
 from common.aliyun_log import AliyunLogger
+from common.feishu_utils import Feishu
 from common.redis import get_top_data, in_job_video_data
 from top_automatic.top_data_processing import Top
 
 
 def get_data_task():
     top_tasks = set()  # 使用集合去重
-    while True:
+    for i in range(100):
         top_task = get_top_data("task:top_all_data")
         if top_task:
             data = json.loads(top_task)
             channel_id = data['channel']
-            if channel_id not in ["抖音关键词抓取", "快手关键词抓取", "搬运改造"]:
+            if channel_id not in ["抖音关键词抓取", "快手关键词抓取", "搬运改造", "搬运工具"]:
+                current_time = datetime.now()
+                formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")
+                values = [
+                    [
+                        data['uid'],
+                        data['videoid'],
+                        data['return_uv'],
+                        data['type'],
+                        data['type_owner'],
+                        data['channel'],
+                        data['channel_owner'],
+                        data['title'],
+                        data['dt'],
+                        "",
+                        "",
+                        formatted_time
+                    ]
+                ]
+                Feishu.insert_columns("KUIksoqZkhvZOrtqA1McPwObn7d", "57c076", "ROWS", 1, 2)
+                time.sleep(0.5)
+                Feishu.update_values("KUIksoqZkhvZOrtqA1McPwObn7d", "57c076", "A2:Z2", values)
+                logger.info(f"[+] 成功写入飞书表格")
                 logger.info(f"[+] 改内容为:{channel_id},不做处理")
-                AliyunLogger.logging(channel_id, data, "不处理",None)
+                if channel_id:
+                    AliyunLogger.logging(channel_id, data, "不处理","不处理")
                 continue
             top_tasks.add(top_task)
         else:
@@ -43,7 +68,7 @@ def video_task_start():
         except Exception as e:
             data = json.loads(data)
             in_job_video_data("task:top_all_data", json.dumps(data, ensure_ascii=False, indent=4))
-            AliyunLogger.logging(data['channel'], data, "处理失败重新处理",None)
+            AliyunLogger.logging(data['channel'], data, "处理失败重新处理","处理失败重新处理")
             logger.error(f"[+] {data}处理失败,失败信息{e}")
             continue
 
@@ -51,8 +76,8 @@ def schedule_tasks():
     schedule.every(10).minutes.do(video_task_start)
 
 if __name__ == '__main__':
-    schedule_tasks()  # 调用任务调度函数
-    while True:
-        schedule.run_pending()
-        time.sleep(1)  # 每秒钟检查一次
-    # video_task_start()
+    # schedule_tasks()  # 调用任务调度函数
+    # while True:
+    #     schedule.run_pending()
+    #     time.sleep(1)  # 每秒钟检查一次
+    video_task_start()

+ 1 - 1
job_hour_data_redis.py

@@ -18,7 +18,7 @@ def jab_top_recommend():
         logger.error(f"获取每日每小时top前100数据异常,异常信息{e}")
         return
 def schedule_tasks():
-    schedule.every().hour.at(":05").do(jab_top_recommend)
+    schedule.every().hour.at(":35").do(jab_top_recommend)
 
 if __name__ == "__main__":
     jab_top_recommend()

+ 9 - 5
top_automatic/top_data_processing.py

@@ -1,3 +1,5 @@
+from datetime import datetime
+
 from loguru import logger
 from common.aliyun_log import AliyunLogger
 from common.feishu_utils import Feishu
@@ -116,12 +118,12 @@ class Top:
         channel_account_id = None
         tag_transport_channel = None
         data = json.loads(data)
-        AliyunLogger.logging()
+        AliyunLogger.logging(data['channel'], data, "开始获取","开始获取")
         channel_id = data['channel']
         url_id, data_channel = sqlCollect.get_channle_id(data['videoid'])
         if not url_id:
             logger.info(f"[+] 任务{data},没有该视频信息")
-            AliyunLogger.logging(data['channel'], data, "没有该视频信息",None)
+            AliyunLogger.logging(data['channel'], data, "没有该视频信息","没有该视频信息")
             return
         if "&vid=" in url_id or "?modal_id=" in url_id:
             host = urlparse(url_id).netloc
@@ -142,7 +144,7 @@ class Top:
             logger.info(f"[+] {url_id}开始获取快手视频链接")
             channel_account_id= self.get_text_ks_video(url=url_id)
         if not channel_account_id:
-            AliyunLogger.logging(data['channel'], data, "没有获取到视频用户ID,等待重新获取",None)
+            AliyunLogger.logging(data['channel'], data, "没有获取到视频用户ID,等待重新获取","没有获取到视频用户ID,等待重新获取")
             in_job_video_data("task:top_all_data", json.dumps(data, ensure_ascii=False, indent=4))
             return
         data["channel_account_id"] = channel_account_id
@@ -155,7 +157,8 @@ class Top:
         AliyunLogger.logging(data['channel'], data, "获取成功等待写入改造任务", channel_account_id)
         in_job_video_data(redis_data, json.dumps(data, ensure_ascii=False, indent=4))
         logger.info(f"[+] 开始写入飞书表格")
-
+        current_time = datetime.now()
+        formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")
         values = [
             [
                 data['uid'],
@@ -168,7 +171,8 @@ class Top:
                 data['title'],
                 data['dt'],
                 channel_account_id,
-                tag_transport_channel
+                tag_transport_channel,
+                formatted_time
             ]
         ]
         Feishu.insert_columns("KUIksoqZkhvZOrtqA1McPwObn7d", "57c076", "ROWS", 1, 2)