from common import Feishu, Material, Common from common.sql_help import sqlHelp from video_agc.agc_video_method import AgcVidoe import concurrent.futures import schedule import time # 记录今天已经返回的用户名 returned_usernames_today = [] def video_start(user_data): global returned_usernames_today user_data_mark = user_data["mark"] # 开始准备执行生成视频脚本 if user_data_mark is not None and user_data_mark in returned_usernames_today: Common.logger("video").info(f"视频脚本参数中的用户名 {user_data_mark} 今天已经返回过,不再启动线程。今天已经返回的用户名:{returned_usernames_today}") print(f"视频脚本参数中的用户名 {user_data_mark} 今天已经返回过,不再启动线程。") return # 如果返回了某个用户名,并且今天已经返回过,则不启动线程 else: print(f"视频脚本参数{user_data}") mark = AgcVidoe.video_stitching(user_data) print(f"返回用户名{mark}") if mark: Common.logger("video").info(f"返回用户名{mark}") returned_usernames_today.append(user_data_mark) name_list = Material.feishu_list() video_start(name_list[0]) # def job_feishu_bot(): # name_list = Material.feishu_name() # count_list = sqlHelp.get_count_list(name_list) # Feishu.bot('recommend', 'AGC视频', f'{"".join(count_list)}', 'all', '所有人') # print("机器人通知完成") # # def clear_returned_usernames(): # returned_usernames_today.clear() # print("returned_usernames_today 已清空") # # # 定义定时任务 # def video_task(): # print("开始执行生成视频脚.") # data = Material.feishu_list() # # 创建一个线程池 # with concurrent.futures.ThreadPoolExecutor() as executor: # futures = [executor.submit(video_start, user_data) for user_data in data] # # 等待所有任务执行完成 # for future in concurrent.futures.as_completed(futures): # # 获取每个任务的执行结果 # result = future.result() # print("处理结果:", result) # print("执行生成视频脚结束") # # # 每天0点10清空集合 # schedule.every().day.at("00:10").do(clear_returned_usernames) # # #每10分钟执行次脚本 # schedule.every(10).minutes.do(video_task) # # # # # # 每天下午1:30执行任务 # schedule.every().day.at("15:00").do(job_feishu_bot) # # while True: # schedule.run_pending() # time.sleep(1) # list = Material.feishu_list() # AgcVidoe.video_stitching(list) # print(list)