|
@@ -1,4 +1,5 @@
|
|
|
import configparser
|
|
|
+import json
|
|
|
import os
|
|
|
import random
|
|
|
import re
|
|
@@ -8,6 +9,7 @@ import time
|
|
|
from datetime import datetime
|
|
|
import concurrent.futures
|
|
|
|
|
|
+from common.redis import get_data
|
|
|
from common.tts_help import TTS
|
|
|
from common import Material, Feishu, Common, Oss
|
|
|
from common.ffmpeg import FFmpeg
|
|
@@ -74,7 +76,7 @@ class VideoProcessor:
|
|
|
"""
|
|
|
task_mark = task["task_mark"]
|
|
|
channel_id = str(task["channel_id"])
|
|
|
- channel_urls = str(task["channel_url"])
|
|
|
+ url = str(task["channel_url"])
|
|
|
piaoquan_id = str(task["piaoquan_id"])
|
|
|
number = task["number"]
|
|
|
title = task["title"]
|
|
@@ -84,113 +86,155 @@ class VideoProcessor:
|
|
|
gg_duration_total = task["gg_duration_total"]
|
|
|
video_path_url = cls.create_folders(mark, str(task_mark))
|
|
|
zm = Material.get_pzsrt_data("summary", "500Oe0", video_share)
|
|
|
- # if not zm:
|
|
|
- # Feishu.bot(mark, '机器自动改造消息通知', f'{task_mark}任务下片中标示填写错误,请关注!!!!', name)
|
|
|
- # return
|
|
|
- if ',' in channel_urls:
|
|
|
- channel_url_list = channel_urls.split(',')
|
|
|
- else:
|
|
|
- channel_url_list = [channel_urls]
|
|
|
- for url in channel_url_list:
|
|
|
- Common.logger("log").info(f"{name}的{task_mark}下{channel_id}的用户:{channel_url_list}开始获取视频")
|
|
|
- data_list = cls.get_data_list(channel_id, task_mark, url, number, mark, feishu_id, cookie_sheet, name)
|
|
|
- if not data_list:
|
|
|
- Common.logger("log").info(f"{name}的{task_mark}下{channel_id}的视频ID{url} 已经改造过了")
|
|
|
- Feishu.bot(mark, '机器自动改造消息通知', f'{task_mark}任务下{channel_id}的用户ID{url},没有已经改造的视频了', name)
|
|
|
- cls.remove_files(video_path_url)
|
|
|
- continue
|
|
|
- Common.logger("log").info(f"{name}的{task_mark}下的ID{url} 获取视频完成,共{len(data_list)}条")
|
|
|
- for video in data_list:
|
|
|
- try:
|
|
|
- new_title = cls.generate_title(video, title)
|
|
|
- v_id = video["video_id"]
|
|
|
- cover = video["cover"]
|
|
|
- video_url = video["video_url"]
|
|
|
- old_title = video['old_title']
|
|
|
- rule = video['rule']
|
|
|
+ Common.logger(mark).info(f"{name}的{task_mark}下{channel_id}的用户:{url}开始获取视频")
|
|
|
+ data_list = cls.get_data_list(channel_id, task_mark, url, number, mark, feishu_id, cookie_sheet, name)
|
|
|
+ if not data_list:
|
|
|
+ Common.logger(mark).info(f"{name}的{task_mark}下{channel_id}的视频ID{url} 已经改造过了")
|
|
|
+ text = (
|
|
|
+ f"**通知类型**: 没有改造的视频\n"
|
|
|
+ f"**负责人**: {name}\n"
|
|
|
+ f"**渠道**: {channel_id}\n"
|
|
|
+ f"**视频主页ID**: {url}\n"
|
|
|
+ f"**任务标示**: {task_mark}\n"
|
|
|
+ )
|
|
|
+ Feishu.finish_bot(text, "https://open.feishu.cn/open-apis/bot/v2/hook/e7697dc6-5254-4411-8b59-3cd0742bf703",
|
|
|
+ "【 机器改造通知 】")
|
|
|
+ cls.remove_files(video_path_url)
|
|
|
+ return
|
|
|
+ Common.logger(mark).info(f"{name}的{task_mark}下的ID{url} 获取视频完成,共{len(data_list)}条")
|
|
|
+ for video in data_list:
|
|
|
+ try:
|
|
|
+ new_title = cls.generate_title(video, title)
|
|
|
+ v_id = video["video_id"]
|
|
|
+ cover = video["cover"]
|
|
|
+ video_url = video["video_url"]
|
|
|
+ old_title = video['old_title']
|
|
|
+ rule = video['rule']
|
|
|
+
|
|
|
+ if not old_title:
|
|
|
+ old_title = '⭕分享给大家一个视频!值得细品!'
|
|
|
+ text = (
|
|
|
+ f"**通知类型**: 标题为空,使用兜底标题生成片尾\n"
|
|
|
+ f"**负责人**: {name}\n"
|
|
|
+ f"**渠道**: {channel_id}\n"
|
|
|
+ f"**视频主页ID**: {url}\n"
|
|
|
+ f"**视频Video_id**: {v_id}\n"
|
|
|
+ f"**任务标示**: {task_mark}\n"
|
|
|
+ )
|
|
|
+ Feishu.finish_bot(text,
|
|
|
+ "https://open.feishu.cn/open-apis/bot/v2/hook/e7697dc6-5254-4411-8b59-3cd0742bf703",
|
|
|
+ "【 机器改造通知 】")
|
|
|
+ Common.logger(mark).info(f"{name}的{task_mark}下的视频{url},标题为空,使用兜底标题生成片尾")
|
|
|
+ time.sleep(1)
|
|
|
+ pw_random_id = cls.random_id()
|
|
|
+ new_video_path = cls.download_and_process_video(channel_id, video_url, video_path_url, v_id,
|
|
|
+ crop_total, gg_duration_total, pw_random_id, new_title, mark)
|
|
|
+ if not os.path.isfile(new_video_path):
|
|
|
+ text = (
|
|
|
+ f"**通知类型**: 视频下载失败\n"
|
|
|
+ f"**负责人**: {name}\n"
|
|
|
+ f"**渠道**: {channel_id}\n"
|
|
|
+ f"**视频主页ID**: {url}\n"
|
|
|
+ f"**视频Video_id**: {v_id}\n"
|
|
|
+ f"**任务标示**: {task_mark}\n"
|
|
|
+ )
|
|
|
+ Feishu.finish_bot(text,
|
|
|
+ "https://open.feishu.cn/open-apis/bot/v2/hook/e7697dc6-5254-4411-8b59-3cd0742bf703",
|
|
|
+ "【 机器改造通知 】")
|
|
|
+ cls.remove_files(video_path_url)
|
|
|
+ continue
|
|
|
+ if new_video_path:
|
|
|
+ if video_ending and video_ending != 'None':
|
|
|
+ new_video_path = cls.handle_video_ending(new_video_path, video_ending, old_title, pw_random_id, video_path_url, mark, task_mark, url, name, video_share, zm)
|
|
|
+ else:
|
|
|
+ if video_share and video_share != 'None':
|
|
|
+ new_video_path = FFmpeg.single_video(new_video_path, video_path_url, zm)
|
|
|
+ # new_video_path = FFmpeg.single_video(new_video_path, video_path_url, zm)
|
|
|
|
|
|
- if not old_title:
|
|
|
- old_title = '⭕分享给大家一个视频!值得细品!'
|
|
|
- Common.logger("title").info(f"{name}的{task_mark}下的视频{url},标题为空,使用兜底标题生成片尾")
|
|
|
- time.sleep(1)
|
|
|
- pw_random_id = cls.random_id()
|
|
|
- new_video_path = cls.download_and_process_video(channel_id, video_url, video_path_url, v_id,
|
|
|
- crop_total, gg_duration_total, pw_random_id, new_title)
|
|
|
if not os.path.isfile(new_video_path):
|
|
|
- Feishu.bot(mark, '机器自动改造消息通知', f'{task_mark}任务用户{url}下的视频{v_id},视频下载失败,请关注', name)
|
|
|
+ text = (
|
|
|
+ f"**通知类型**: 视频改造失败\n"
|
|
|
+ f"**负责人**: {name}\n"
|
|
|
+ f"**渠道**: {channel_id}\n"
|
|
|
+ f"**视频主页ID**: {url}\n"
|
|
|
+ f"**视频Video_id**: {v_id}\n"
|
|
|
+ f"**任务标示**: {task_mark}\n"
|
|
|
+ )
|
|
|
+ Feishu.finish_bot(text,
|
|
|
+ "https://open.feishu.cn/open-apis/bot/v2/hook/e7697dc6-5254-4411-8b59-3cd0742bf703",
|
|
|
+ "【 机器改造通知 】")
|
|
|
cls.remove_files(video_path_url)
|
|
|
continue
|
|
|
- if new_video_path:
|
|
|
- if video_ending and video_ending != 'None':
|
|
|
- new_video_path = cls.handle_video_ending(new_video_path, video_ending, old_title, pw_random_id, video_path_url, mark, task_mark, url, name, video_share, zm)
|
|
|
- else:
|
|
|
- if video_share and video_share != 'None':
|
|
|
- new_video_path = FFmpeg.single_video(new_video_path, video_path_url, zm)
|
|
|
- # new_video_path = FFmpeg.single_video(new_video_path, video_path_url, zm)
|
|
|
-
|
|
|
- if not os.path.isfile(new_video_path):
|
|
|
- Feishu.bot(mark, '机器自动改造消息通知', f'{task_mark}任务用户{url}下的视频{v_id},视频改造失败,请关注', name)
|
|
|
- cls.remove_files(video_path_url)
|
|
|
- continue
|
|
|
- # 上传视频和封面,并更新数据库
|
|
|
- values, code = cls.upload_video_and_thumbnail(new_video_path, cover, v_id, new_title, task_mark, name, piaoquan_id,
|
|
|
- video_path_url, mark, channel_id, url, old_title, title, rule)
|
|
|
- # 更新已使用的视频号状态
|
|
|
- if name == "视频号单视频":
|
|
|
- sphdd_status = sqlCollect.update_shp_dd_vid(v_id)
|
|
|
- if sphdd_status == 1:
|
|
|
- Common.logger("log").info(f"{name}的{task_mark}下的ID{url} 视频修改已使用,状态已修改")
|
|
|
- pq_url = f'https://admin.piaoquantv.com/cms/post-detail/{code}/detail' # 站内视频链接
|
|
|
- from_user_name = video['from_user_name'] # 来源用户
|
|
|
- from_group_name = video['from_group_name'] # 来源群组
|
|
|
- text = (
|
|
|
- f"**站内视频链接**: {pq_url}\n"
|
|
|
- f"**来源用户**: {from_user_name}\n"
|
|
|
- f"**来源群组**: {from_group_name}\n"
|
|
|
- f"**原视频链接**: {video['video_url']}\n"
|
|
|
- f"**原视频封面**: {video['cover']}\n"
|
|
|
- f"**原视频标题**: {video['old_title']}\n"
|
|
|
- )
|
|
|
- Feishu.finish_bot(text, "https://open.feishu.cn/open-apis/bot/v2/hook/0553124e-7fc1-4f9b-8976-9db4218d25e2", "【 有一条新的视频号内容改造成功 】")
|
|
|
+ # 上传视频和封面,并更新数据库
|
|
|
+ values, code = cls.upload_video_and_thumbnail(new_video_path, cover, v_id, new_title, task_mark, name, piaoquan_id,
|
|
|
+ video_path_url, mark, channel_id, url, old_title, title, rule)
|
|
|
+ # 更新已使用的视频号状态
|
|
|
+ pq_url = f'https://admin.piaoquantv.com/cms/post-detail/{code}/detail' # 站内视频链接
|
|
|
+ if name == "视频号单视频":
|
|
|
+ sphdd_status = sqlCollect.update_shp_dd_vid(v_id)
|
|
|
+ if sphdd_status == 1:
|
|
|
+ Common.logger(mark).info(f"{name}的{task_mark}下的ID{url} 视频修改已使用,状态已修改")
|
|
|
+ from_user_name = video['from_user_name'] # 来源用户
|
|
|
+ from_group_name = video['from_group_name'] # 来源群组
|
|
|
+ text = (
|
|
|
+ f"**站内视频链接**: {pq_url}\n"
|
|
|
+ f"**来源用户**: {from_user_name}\n"
|
|
|
+ f"**来源群组**: {from_group_name}\n"
|
|
|
+ f"**原视频链接**: {video['video_url']}\n"
|
|
|
+ f"**原视频封面**: {video['cover']}\n"
|
|
|
+ f"**原视频标题**: {video['old_title']}\n"
|
|
|
+ )
|
|
|
+ Feishu.finish_bot(text, "https://open.feishu.cn/open-apis/bot/v2/hook/0553124e-7fc1-4f9b-8976-9db4218d25e2", "【 有一条新的视频号内容改造成功 】")
|
|
|
+ text = (
|
|
|
+ f"**通知类型**: 视频改造成功\n"
|
|
|
+ f"**站内视频链接**: {pq_url}\n"
|
|
|
+ f"**负责人**: {name}\n"
|
|
|
+ f"**渠道**: {channel_id}\n"
|
|
|
+ f"**视频主页ID**: {url}\n"
|
|
|
+ f"**视频Video_id**: {v_id}\n"
|
|
|
+ f"**任务标示**: {task_mark}\n"
|
|
|
+ )
|
|
|
+ Feishu.finish_bot(text,
|
|
|
+ "https://open.feishu.cn/open-apis/bot/v2/hook/e7697dc6-5254-4411-8b59-3cd0742bf703",
|
|
|
+ "【 机器改造通知 】")
|
|
|
+ if values:
|
|
|
+ if name == "王雪珂":
|
|
|
+ sheet = "vfhHwj"
|
|
|
+ elif name == "抖音品类账号-1":
|
|
|
+ sheet = "61kvW7"
|
|
|
+ elif name == "鲁涛":
|
|
|
+ sheet = "FhewlS"
|
|
|
+ elif name == "范军":
|
|
|
+ sheet = "B6dCfS"
|
|
|
+ elif name == "余海涛":
|
|
|
+ sheet = "mfBrNT"
|
|
|
+ elif name == "罗情":
|
|
|
+ sheet = "2J3PwN"
|
|
|
+ elif name == "王玉婷":
|
|
|
+ sheet = "bBHFwC"
|
|
|
+ elif name == "刘诗雨":
|
|
|
+ sheet = "fBdxIQ"
|
|
|
+ elif name == "信欣":
|
|
|
+ sheet = "lPe1eT"
|
|
|
+ elif name == "快手创作者版品类推荐流":
|
|
|
+ sheet = "k7l7nQ"
|
|
|
+ elif name == "抖音品类账号":
|
|
|
+ sheet = "Bsg5UR"
|
|
|
+ elif name == "视频号品类账号":
|
|
|
+ sheet = "b0uLWw"
|
|
|
+ elif name == "视频号单视频":
|
|
|
+ sheet = "ptgCXW"
|
|
|
+ elif name == "快手品类账号":
|
|
|
+ sheet = "ibjoMx"
|
|
|
+ Feishu.insert_columns("ILb4sa0LahddRktnRipcu2vQnLb", sheet, "ROWS", 1, 2)
|
|
|
+ time.sleep(0.5)
|
|
|
+ Feishu.update_values("ILb4sa0LahddRktnRipcu2vQnLb", sheet, "A2:Z2", values)
|
|
|
|
|
|
- if values:
|
|
|
- if name == "王雪珂":
|
|
|
- sheet = "vfhHwj"
|
|
|
- elif name == "抖音品类账号-1":
|
|
|
- sheet = "61kvW7"
|
|
|
- elif name == "鲁涛":
|
|
|
- sheet = "FhewlS"
|
|
|
- elif name == "范军":
|
|
|
- sheet = "B6dCfS"
|
|
|
- elif name == "余海涛":
|
|
|
- sheet = "mfBrNT"
|
|
|
- elif name == "罗情":
|
|
|
- sheet = "2J3PwN"
|
|
|
- elif name == "王玉婷":
|
|
|
- sheet = "bBHFwC"
|
|
|
- elif name == "刘诗雨":
|
|
|
- sheet = "fBdxIQ"
|
|
|
- elif name == "信欣":
|
|
|
- sheet = "lPe1eT"
|
|
|
- elif name == "快手创作者版品类推荐流":
|
|
|
- sheet = "k7l7nQ"
|
|
|
- elif name == "抖音品类账号":
|
|
|
- sheet = "Bsg5UR"
|
|
|
- elif name == "视频号品类账号":
|
|
|
- sheet = "b0uLWw"
|
|
|
- elif name == "视频号单视频":
|
|
|
- sheet = "ptgCXW"
|
|
|
- elif name == "快手品类账号":
|
|
|
- sheet = "ibjoMx"
|
|
|
- Feishu.insert_columns("ILb4sa0LahddRktnRipcu2vQnLb", sheet, "ROWS", 1, 2)
|
|
|
- time.sleep(0.5)
|
|
|
- Feishu.update_values("ILb4sa0LahddRktnRipcu2vQnLb", sheet, "A2:Z2", values)
|
|
|
|
|
|
- except Exception as e:
|
|
|
- Common.logger("error").warning(f"{name}的{task_mark}任务处理失败:{e}")
|
|
|
- cls.remove_files(video_path_url)
|
|
|
-
|
|
|
- Feishu.bot(mark, '机器自动改造消息通知', f'{task_mark}任务改造完成,请关注', name)
|
|
|
+ except Exception as e:
|
|
|
+ Common.logger(mark).warning(f"{name}的{task_mark}任务处理失败:{e}")
|
|
|
+ cls.remove_files(video_path_url)
|
|
|
+ return
|
|
|
|
|
|
@classmethod
|
|
|
def get_data_list(cls, channel_id, task_mark, url, number, mark, feishu_id, cookie_sheet, name):
|
|
@@ -210,7 +254,6 @@ class VideoProcessor:
|
|
|
elif channel_id == "视频号单视频":
|
|
|
return SPHDD.get_sphdd_data(url)
|
|
|
elif channel_id == "抖音历史":
|
|
|
- Common.logger("log").info(f"开始抓取{name}的{task_mark}下{channel_id}的视频ID{url} ")
|
|
|
return DYLS.get_dyls_list(task_mark, url, number, mark)
|
|
|
elif channel_id == "快手历史":
|
|
|
return KSLS.get_ksls_list(task_mark, url, number, mark)
|
|
@@ -245,18 +288,18 @@ class VideoProcessor:
|
|
|
|
|
|
@classmethod
|
|
|
def download_and_process_video(cls, channel_id, video_url, video_path_url, v_id, crop_total, gg_duration_total,
|
|
|
- pw_random_id, new_title):
|
|
|
+ pw_random_id, new_title, mark):
|
|
|
"""
|
|
|
下载并处理视频
|
|
|
"""
|
|
|
if channel_id in ["票圈", "快手创作者版"]:
|
|
|
new_video_path = PQ.download_video(video_url, video_path_url, v_id)
|
|
|
- Common.logger("log").info(f"{channel_id}视频下载成功: {new_video_path}")
|
|
|
+ Common.logger(mark).info(f"{channel_id}视频下载成功: {new_video_path}")
|
|
|
|
|
|
else:
|
|
|
- Common.logger("log").info(f"视频准备下载")
|
|
|
+ Common.logger(mark).info(f"视频准备下载")
|
|
|
new_video_path = Oss.download_video_oss(video_url, video_path_url, v_id)
|
|
|
- Common.logger("log").info(f"视频下载成功: {new_video_path}")
|
|
|
+ Common.logger(mark).info(f"视频下载成功: {new_video_path}")
|
|
|
|
|
|
if os.path.isfile(new_video_path):
|
|
|
if crop_total and crop_total != 'None': # 判断是否需要裁剪
|
|
@@ -274,7 +317,7 @@ class VideoProcessor:
|
|
|
new_video_path = FFmpeg.add_video_zm(new_video_path, video_path_url, pw_random_id, new_title_re)
|
|
|
return new_video_path
|
|
|
else:
|
|
|
- Common.logger("log").info(f"视频下载失败: {new_video_path}")
|
|
|
+ Common.logger(mark).info(f"视频下载失败: {new_video_path}")
|
|
|
cls.remove_files(video_path_url)
|
|
|
return new_video_path
|
|
|
|
|
@@ -291,13 +334,13 @@ class VideoProcessor:
|
|
|
pw_mp3_path = TTS.download_mp3(pw_url, video_path_url, pw_random_id)
|
|
|
# pw_url_sec = FFmpeg.get_video_duration(pw_mp3_path)
|
|
|
pw_srt = TTS.getSrt(pw_url)
|
|
|
- Common.logger("log").info(f"{name}的{task_mark}下的视频{url},获取AI片尾srt成功")
|
|
|
+ Common.logger(mark).info(f"{name}的{task_mark}下的视频{url},获取AI片尾srt成功")
|
|
|
else:
|
|
|
Feishu.bot(mark, 'TTS获取失败提示', f'无法获取到片尾音频,及时更换token', "张勇")
|
|
|
- Common.logger("log").info(f"{name}的{task_mark}下的视频{url},获取AI片尾失败")
|
|
|
+ Common.logger(mark).info(f"{name}的{task_mark}下的视频{url},获取AI片尾失败")
|
|
|
return None
|
|
|
else:
|
|
|
- Common.logger("log").info(f"{name}的{task_mark}下的视频{url},获取AI片尾失败")
|
|
|
+ Common.logger(mark).info(f"{name}的{task_mark}下的视频{url},获取AI片尾失败")
|
|
|
return None
|
|
|
else:
|
|
|
if ',' in video_ending:
|
|
@@ -316,21 +359,21 @@ class VideoProcessor:
|
|
|
for attempt in range(3):
|
|
|
jpg_path = FFmpeg.video_png(new_video_path, video_path_url, pw_random_id) # 生成视频最后一帧jpg
|
|
|
if os.path.isfile(jpg_path):
|
|
|
- Common.logger("log").info(f"{name}的{task_mark}下的视频{url},生成视频最后一帧成功")
|
|
|
+ Common.logger(mark).info(f"{name}的{task_mark}下的视频{url},生成视频最后一帧成功")
|
|
|
break
|
|
|
time.sleep(1)
|
|
|
for attempt in range(3):
|
|
|
- Common.logger("log").info(f"{name}的{task_mark}下的视频{url},获取mp3成功")
|
|
|
+ Common.logger(mark).info(f"{name}的{task_mark}下的视频{url},获取mp3成功")
|
|
|
pw_path = FFmpeg.pw_video(jpg_path, video_path_url, pw_mp3_path, pw_srt, pw_random_id,
|
|
|
pw_mp3_path) # 生成片尾视频
|
|
|
if os.path.isfile(pw_path):
|
|
|
- Common.logger("log").info(f"{task_mark}下的视频{url},生成片尾视频成功")
|
|
|
+ Common.logger(mark).info(f"{task_mark}下的视频{url},生成片尾视频成功")
|
|
|
break
|
|
|
time.sleep(1)
|
|
|
pw_video_list = [new_video_path, pw_path]
|
|
|
- Common.logger("log").info(f"{task_mark}下的视频{url},视频与片尾开始拼接")
|
|
|
+ Common.logger(mark).info(f"{task_mark}下的视频{url},视频与片尾开始拼接")
|
|
|
video_path = FFmpeg.concatenate_videos(pw_video_list, video_path_url) # 视频与片尾拼接到一起
|
|
|
- Common.logger("log").info(f"{name}的{task_mark}下的视频{url},视频与片尾拼接成功")
|
|
|
+ Common.logger(mark).info(f"{name}的{task_mark}下的视频{url},视频与片尾拼接成功")
|
|
|
time.sleep(1)
|
|
|
if video_share and video_share != 'None':
|
|
|
new_video_path = FFmpeg.single_video(video_path, video_path_url, zm)
|
|
@@ -349,9 +392,9 @@ class VideoProcessor:
|
|
|
"""
|
|
|
try:
|
|
|
oss_id = cls.random_id()
|
|
|
- Common.logger("log").info(f"{name}的{task_mark},开始发送oss")
|
|
|
+ Common.logger(mark).info(f"{name}的{task_mark},开始发送oss")
|
|
|
oss_object_key = Oss.stitching_sync_upload_oss(new_video_path, oss_id) # 视频发送OSS
|
|
|
- Common.logger("log").info(f"{name}的{task_mark},发送oss成功{oss_object_key}")
|
|
|
+ Common.logger(mark).info(f"{name}的{task_mark},发送oss成功{oss_object_key}")
|
|
|
status = oss_object_key.get("status")
|
|
|
if status == 200:
|
|
|
oss_object_key = oss_object_key.get("oss_object_key")
|
|
@@ -367,7 +410,7 @@ class VideoProcessor:
|
|
|
else:
|
|
|
jpg = None
|
|
|
code = PQ.insert_piaoquantv(oss_object_key, new_title, jpg, piaoquan_id)
|
|
|
- Common.logger("log").info(f"{name}的{task_mark}下的视频ID{v_id}发送成功")
|
|
|
+ Common.logger(mark).info(f"{name}的{task_mark}下的视频ID{v_id}发送成功")
|
|
|
sqlCollect.insert_task(task_mark, v_id, mark, channel_id) # 插入数据库
|
|
|
current_time = datetime.now()
|
|
|
formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")
|
|
@@ -412,12 +455,16 @@ class VideoProcessor:
|
|
|
feishu_sheet = data["feishu_sheet"]
|
|
|
cookie_sheet = data["cookie_sheet"]
|
|
|
task_data = Material.get_task_data(feishu_id, feishu_sheet)
|
|
|
- for task in task_data:
|
|
|
- try:
|
|
|
- VideoProcessor.process_task(task, mark, name, feishu_id, cookie_sheet)
|
|
|
- except Exception as e:
|
|
|
- Common.logger("error").error(f"任务处理失败: {e}")
|
|
|
- continue
|
|
|
+ data = get_data(mark, task_data)
|
|
|
+ if not data:
|
|
|
+ return
|
|
|
+ task = json.loads(data)
|
|
|
+ try:
|
|
|
+ VideoProcessor.process_task(task, name, feishu_id, cookie_sheet)
|
|
|
+ return mark
|
|
|
+ except Exception as e:
|
|
|
+ Common.logger(mark).error(f"任务处理失败: {e}")
|
|
|
+ return mark
|
|
|
|
|
|
|
|
|
# if __name__ == "__main__":
|