浏览代码

增加报警

zhangyong 1 年之前
父节点
当前提交
578e46d12e
共有 5 个文件被更改,包括 35 次插入16 次删除
  1. 16 3
      agc_main.py
  2. 2 2
      common/aliyun_oss_uploading.py
  3. 5 1
      common/feishu.py
  4. 5 5
      data_main.py
  5. 7 5
      video_agc/agc_video_method.py

+ 16 - 3
agc_main.py

@@ -6,10 +6,20 @@ import schedule
 import threading
 import threading
 import time
 import time
 
 
+
+# 记录今天已经返回的用户名
+returned_usernames_today = set()
 def video_start(user_data):
 def video_start(user_data):
-    print(f"视频脚本参数{user_data}")
+    global returned_usernames_today
+    user_data_mark = user_data[0]["mark"]
     # 开始准备执行生成视频脚本
     # 开始准备执行生成视频脚本
-    AgcVidoe.video_stitching(user_data)
+    if user_data_mark is not None and user_data_mark in returned_usernames_today:
+        print(f"视频脚本参数中的用户名 {user_data_mark} 今天已经返回过,不再启动线程。")
+        return  # 如果返回了某个用户名,并且今天已经返回过,则不启动线程
+    elif user_data_mark is not None:
+        print(f"视频脚本参数{user_data}")
+        mark = AgcVidoe.video_stitching(user_data)
+        returned_usernames_today.add(mark)
 
 
 
 
 # 定义定时任务
 # 定义定时任务
@@ -27,11 +37,14 @@ def video_task():
 
 
 schedule.every(10).minutes.do(video_task)
 schedule.every(10).minutes.do(video_task)
 
 
+# 每天0点清空集合
+schedule.every().day.at("00:00").do(lambda: returned_usernames_today.clear())
+
 
 
 def job_feishu_bot():
 def job_feishu_bot():
     name_list = Material.feishu_name()
     name_list = Material.feishu_name()
     count_list = sqlHelp.get_count_list(name_list)
     count_list = sqlHelp.get_count_list(name_list)
-    Feishu.bot('recommend', 'AGC视频', f'{"".join(count_list)}', ' ')
+    Feishu.bot('recommend', 'AGC视频', f'{"".join(count_list)}', 'all')
     print("机器人通知完成")
     print("机器人通知完成")
 
 
 
 

+ 2 - 2
common/aliyun_oss_uploading.py

@@ -9,8 +9,8 @@ import requests
 # OSS_BUCKET_PATH = "douyin"
 # OSS_BUCKET_PATH = "douyin"
 OSS_ACCESS_KEY_ID = "LTAIP6x1l3DXfSxm"
 OSS_ACCESS_KEY_ID = "LTAIP6x1l3DXfSxm"
 OSS_ACCESS_KEY_SECRET = "KbTaM9ars4OX3PMS6Xm7rtxGr1FLon"
 OSS_ACCESS_KEY_SECRET = "KbTaM9ars4OX3PMS6Xm7rtxGr1FLon"
-# OSS_BUCKET_ENDPOINT = "oss-cn-hangzhou-internal.aliyuncs.com"# 内网地址
-OSS_BUCKET_ENDPOINT = "oss-cn-hangzhou.aliyuncs.com" # 外网地址
+OSS_BUCKET_ENDPOINT = "oss-cn-hangzhou-internal.aliyuncs.com"# 内网地址
+# OSS_BUCKET_ENDPOINT = "oss-cn-hangzhou.aliyuncs.com" # 外网地址
 OSS_BUCKET_NAME = "art-crawler"
 OSS_BUCKET_NAME = "art-crawler"
 class Oss():
 class Oss():
     # 抓取视频上传到art-crawler
     # 抓取视频上传到art-crawler

+ 5 - 1
common/feishu.py

@@ -333,7 +333,11 @@ class Feishu:
             elif crawler == "AGC视频":
             elif crawler == "AGC视频":
                 content = 'AGC视频生成条数详情'
                 content = 'AGC视频生成条数详情'
                 sheet_url = "https://w42nne6hzg.feishu.cn/sheets/IbVVsKCpbhxhSJtwYOUc8S1jnWb?sheet=n9xlLF"
                 sheet_url = "https://w42nne6hzg.feishu.cn/sheets/IbVVsKCpbhxhSJtwYOUc8S1jnWb?sheet=n9xlLF"
-                users = "<at id=" + str(cls.get_userid(log_type, crawler, 'all')) + ">所有人</at> \n"
+                users = "<at id=" + str(cls.get_userid(log_type, crawler, mark)) + ">所有人</at> \n"
+            elif crawler == "AGC完成通知":
+                content = "今日所有AGC视频完成啦~~~"
+                sheet_url = "https://w42nne6hzg.feishu.cn/sheets/IbVVsKCpbhxhSJtwYOUc8S1jnWb?sheet=n9xlLF"
+                users = "<at id=" + str(cls.get_userid(log_type, crawler, mark)) + "></at>"
 
 
             data = json.dumps({
             data = json.dumps({
                 "msg_type": "interactive",
                 "msg_type": "interactive",

+ 5 - 5
data_main.py

@@ -41,13 +41,13 @@ def kuanshou_task():
         thread.join()
         thread.join()
     print("快手数据抓取定时任务执行完成.")
     print("快手数据抓取定时任务执行完成.")
 
 
-schedule.every(2).minutes.do(douyin_task)
+# schedule.every(2).minutes.do(douyin_task)
+#
+# schedule.every(2).minutes.do(kuanshou_task)
 
 
-schedule.every(2).minutes.do(kuanshou_task)
+schedule.every(2).hours.do(douyin_task)
 
 
-# schedule.every(2).hours.do(douyin_task)
-#
-# schedule.every(3).hours.do(kuanshou_task)
+schedule.every(3).hours.do(kuanshou_task)
 
 
 # 持续运行,直到手动终止
 # 持续运行,直到手动终止
 while True:
 while True:

+ 7 - 5
video_agc/agc_video_method.py

@@ -307,7 +307,8 @@ class AgcVidoe():
                     link = result[1][0]
                     link = result[1][0]
                     limit_count = 1
                     limit_count = 1
                     if kb_count >= count or kb_count == 0:
                     if kb_count >= count or kb_count == 0:
-                        break
+                        Feishu.bot('recommend', 'AGC完成通知', '今日视频拼接完成', mark)
+                        return mark
                 # 获取音频类型+字幕+标题
                 # 获取音频类型+字幕+标题
                 uid, srt, title_list = Material.get_all_data(feishu_id, link, mark)
                 uid, srt, title_list = Material.get_all_data(feishu_id, link, mark)
                 # 获取已入库的用户id
                 # 获取已入库的用户id
@@ -319,7 +320,7 @@ class AgcVidoe():
                 url_list = cls.get_url_list(user, mark, limit_count)
                 url_list = cls.get_url_list(user, mark, limit_count)
                 if url_list == None:
                 if url_list == None:
                     Common.logger("video").info(f"未使用视频链接为空:{url_list}")
                     Common.logger("video").info(f"未使用视频链接为空:{url_list}")
-                    return
+                    return ''
                 videos = [list(item) for item in url_list]
                 videos = [list(item) for item in url_list]
                 # 下载视频
                 # 下载视频
                 videos = Oss.get_oss_url(videos, video_path)
                 videos = Oss.get_oss_url(videos, video_path)
@@ -341,7 +342,8 @@ class AgcVidoe():
                 Common.logger("video").info(f"获取需要拼接的音频秒数为:{audio_duration}")
                 Common.logger("video").info(f"获取需要拼接的音频秒数为:{audio_duration}")
                 video_files = cls.concatenate_videos(videos, audio_duration, audio_video, platform, s_path, v_path, mark, t_path)
                 video_files = cls.concatenate_videos(videos, audio_duration, audio_video, platform, s_path, v_path, mark, t_path)
                 if video_files == "":
                 if video_files == "":
-                    break
+                    Common.logger("video").info(f"使用拼接视频为空")
+                    return ""
                 # 随机生成视频oss_id
                 # 随机生成视频oss_id
                 oss_id = cls.random_id()
                 oss_id = cls.random_id()
                 Common.logger("video").info(f"上传到 OSS 生成视频id为:{oss_id}")
                 Common.logger("video").info(f"上传到 OSS 生成视频id为:{oss_id}")
@@ -374,9 +376,9 @@ class AgcVidoe():
                     filename = video[2].split("/")[-1]
                     filename = video[2].split("/")[-1]
                     os.remove(f'{video_path}{filename}.mp4')
                     os.remove(f'{video_path}{filename}.mp4')
                 Common.logger("video").info(f"{mark}的临时文件删除成功")
                 Common.logger("video").info(f"{mark}的临时文件删除成功")
-                break
+                return ''
         except Exception as e:
         except Exception as e:
             Common.logger("video").warning(f"拼接视频失败了:{e}\n")
             Common.logger("video").warning(f"拼接视频失败了:{e}\n")
-            return
+            return ''