zhangyong 1 год назад
Родитель
Сommit
4b96c2c1b4
1 измененных файлов с 32 добавлено и 3 удалено
  1. 32 3
      video_agc/agc_video_method.py

+ 32 - 3
video_agc/agc_video_method.py

@@ -21,13 +21,42 @@ config.read('./config.ini')  # 替换为您的配置文件路径
 
 class AgcVidoe():
 
+    # 获取未使用的视频链接
+    @classmethod
+    def get_url_gs_list(cls, user_list, mark, limit_count):
+        for i in range(5):
+            user = str(random.choice(user_list))
+            current_time = datetime.now()
+            three_days_ago = current_time - timedelta(days=3)
+            formatted_current_time = current_time.strftime("%Y-%m-%d")
+            formatted_three_days_ago = three_days_ago.strftime("%Y-%m-%d")
+            if limit_count == 1:
+                url_list = f"""SELECT a.video_id,a.account_id,a.oss_object_key FROM agc_video_url a WHERE NOT EXISTS (
+                                        SELECT video_id
+                                        FROM agc_video_deposit b
+                                        WHERE a.oss_object_key = b.oss_object_key AND b.time = '{formatted_current_time}'
+                                    ) AND a.account_id = '{user}' and a.`status` = 1 and a.mark = '{mark}' limit {limit_count};"""
+                url_list = MysqlHelper.get_values(url_list, "prod")
+                if url_list:
+                    return url_list
+            else:
+                url_list = f"""SELECT a.video_id,a.account_id,a.oss_object_key FROM agc_video_url a WHERE NOT EXISTS (
+                                                        SELECT video_id
+                                                        FROM agc_video_deposit b
+                                                        WHERE a.oss_object_key = b.oss_object_key AND b.time >= '{formatted_three_days_ago}' AND b.time <= '{formatted_current_time}'
+                                                    ) AND a.account_id = '{user}' and a.`status` = 1 and a.mark = '{mark}' limit {limit_count};"""
+                url_list = MysqlHelper.get_values(url_list, "prod")
+                if url_list:
+                    if len(url_list) >= 30:
+                        return url_list
+        return None
+
     # 获取未使用的视频链接
     @classmethod
     def get_url_list(cls, user_list, mark, limit_count):
         for i in range(5):
             user = str(random.choice(user_list))
-            if "-" not in mark:
-                user = user.replace('(', '').replace(')', '').replace(',', '')
+            user = user.replace('(', '').replace(')', '').replace(',', '')
             current_time = datetime.now()
             three_days_ago = current_time - timedelta(days=3)
             formatted_current_time = current_time.strftime("%Y-%m-%d")
@@ -539,7 +568,7 @@ class AgcVidoe():
             if zw_count >= int(count):
                 return video_call
             limit_count = 1
-        url_list = cls.get_url_list(video_list, mark, limit_count)
+        url_list = cls.get_url_gs_list(video_list, mark, limit_count)
         if url_list == None:
             Common.logger("gs_video").info(f"{mark}的{platform} 渠道 视频画面不足无法拼接")
             return