|
@@ -6,8 +6,10 @@ from datetime import datetime
|
|
|
|
|
|
from common import Material, Feishu, Common, Oss
|
|
|
from common.ffmpeg import FFmpeg
|
|
|
-from common.piaoquan_utils import PQ
|
|
|
+from data_channel.douyin import DY
|
|
|
+from data_channel.piaoquan import PQ
|
|
|
from common.sql_help import sqlCollect
|
|
|
+from data_channel.shipinhao import SPH
|
|
|
|
|
|
config = configparser.ConfigParser()
|
|
|
config.read('./config.ini')
|
|
@@ -66,69 +68,70 @@ class getVideo:
|
|
|
name = data["name"]
|
|
|
feishu_id = data["feishu_id"]
|
|
|
feishu_sheet = data["feishu_sheet"]
|
|
|
- pw_sheet = data["pw_sheet"]
|
|
|
- pz_sheet = data["pz_sheet"]
|
|
|
-
|
|
|
+ cookie_sheet = data["cookie_sheet"]
|
|
|
+ pz_sheet = '500Oe0'
|
|
|
+ pw_sheet = 'DgX7vC'
|
|
|
task_data = Material.get_task_data(feishu_id, feishu_sheet)
|
|
|
if len(task_data) == 0:
|
|
|
Feishu.bot(mark, '机器自动改造消息通知', f'今日任务为空,请关注', name)
|
|
|
return mark
|
|
|
-
|
|
|
for task in task_data:
|
|
|
- task_marks = task["task_mark"] # 任务标示
|
|
|
- old_id = str(task["old_id"])
|
|
|
- video_id = str(task["video_id"])
|
|
|
- new_id = str(task["new_id"])
|
|
|
+ task_mark = task["task_mark"] # 任务标示
|
|
|
+ channel_id = str(task["channel_id"])
|
|
|
+ channel_urls = str(task["channel_url"])
|
|
|
+ piaoquan_id = str(task["piaoquan_id"])
|
|
|
number = task["number"] # 指定条数
|
|
|
title = task["title"]
|
|
|
video_share = task["video_share"]
|
|
|
video_ending = task["video_ending"]
|
|
|
crop_total = task["crop_total"]
|
|
|
gg_duration_total = task["gg_duration_total"]
|
|
|
+ video_path_url = cls.create_folders(mark, str(task_mark)) # 创建目录
|
|
|
+
|
|
|
if video_share and video_share != 'None':
|
|
|
video_share_list = video_share.split('/')
|
|
|
video_share_mark = video_share_list[0]
|
|
|
video_share_name = video_share_list[1]
|
|
|
- zm = Material.get_pzsrt_data(feishu_id, pz_sheet, video_share_name) # 获取srt
|
|
|
+ zm = Material.get_pzsrt_data("summary", pz_sheet, video_share_name) # 获取srt
|
|
|
if zm == '':
|
|
|
- Feishu.bot(mark, '机器自动改造消息通知', f'{task_marks}任务下片中标示填写错误,请关注!!!!', name)
|
|
|
-
|
|
|
- if ',' in new_id:
|
|
|
- n_id = new_id.split(',')
|
|
|
+ Feishu.bot(mark, '机器自动改造消息通知', f'{task_mark}任务下片中标示填写错误,请关注!!!!', name)
|
|
|
+ if ',' in channel_urls:
|
|
|
+ channel_url = channel_urls.split(',')
|
|
|
else:
|
|
|
- n_id = [new_id]
|
|
|
- if old_id and old_id != 'None':
|
|
|
- task_id = old_id.split(',')
|
|
|
- else:
|
|
|
- task_id = video_id.split(',')
|
|
|
- values = [task_id[0], task_marks]
|
|
|
- task_mark = "_".join(map(str, values)) # 最终任务标示
|
|
|
- video_path_url = cls.create_folders(mark, str(task_mark)) # 创建目录
|
|
|
- try:
|
|
|
- count = 0 # 初始化计数器
|
|
|
- for id in task_id:
|
|
|
- Common.logger("log").info(f"{task_mark}下的ID{id} 开始获取视频")
|
|
|
- time.sleep(1)
|
|
|
- if old_id and old_id != 'None':
|
|
|
- data_list = PQ.get_user_url(task_mark, id, number, title, mark)
|
|
|
- else:
|
|
|
- data_list = PQ.get_audio_url(task_mark, id, title, mark)
|
|
|
+ channel_url = [channel_urls]
|
|
|
+ for url in channel_url:
|
|
|
+ Common.logger("log").info(f"{task_mark}下的用户:{channel_url}开始获取视频")
|
|
|
+ if '/' in title:
|
|
|
+ titles = title.split('/')
|
|
|
+ else:
|
|
|
+ titles = [title]
|
|
|
+ if channel_id == "抖音":
|
|
|
+ data_list = DY.get_dy_url(task_mark, url, number, mark, feishu_id, cookie_sheet, channel_id, name)
|
|
|
+ elif channel_id == "票圈":
|
|
|
+ data_list = PQ.get_pq_url(task_mark, url, number, mark)
|
|
|
+ elif channel_id == "视频号":
|
|
|
+ data_list = SPH.get_sph_url(task_mark, url, number, mark)
|
|
|
+ # elif channel_id == "快手":
|
|
|
+ # pass
|
|
|
+ if len(data_list) == 0:
|
|
|
+ Common.logger("log").info(f"{task_mark}下的视频ID{id} 已经改造过了")
|
|
|
+ Feishu.bot(mark, '机器自动改造消息通知', f'{task_mark}任务下的用户ID{id},没有已经改造的视频了', name)
|
|
|
+ cls.remove_files(video_path_url)
|
|
|
+ continue
|
|
|
+ Common.logger("log").info(f"{task_mark}下的ID{id} 获取视频完成,共{len(data_list)}条")
|
|
|
|
|
|
- if len(data_list) == 0:
|
|
|
- Common.logger("log").info(f"{task_mark}下的视频ID{id} 已经改造过了")
|
|
|
- Feishu.bot(mark, '机器自动改造消息通知', f'{task_mark}任务下的用户ID{id},没有已经改造的视频了', name)
|
|
|
- cls.remove_files(video_path_url)
|
|
|
- continue
|
|
|
- Common.logger("log").info(f"{task_mark}下的ID{id} 获取视频完成,共{len(data_list)}条")
|
|
|
+ try:
|
|
|
for video in data_list:
|
|
|
v_id = video["video_id"]
|
|
|
- new_title = video["title"]
|
|
|
cover = video["cover"]
|
|
|
video_url = video["video_url"]
|
|
|
time.sleep(1)
|
|
|
pw_random_id = cls.random_id()
|
|
|
- new_video_path = PQ.download_video(video_url, video_path_url, v_id) # 下载视频地址
|
|
|
- if new_video_path == '':
|
|
|
+ if channel_id == "票圈":
|
|
|
+ new_video_path = PQ.download_video(video_url, video_path_url, v_id) # 下载视频地址
|
|
|
+ else:
|
|
|
+ new_video_path = Oss.download_video_oss(video_url, video_path_url, v_id) # 下载视频地址
|
|
|
+ if not os.path.isfile(new_video_path):
|
|
|
Common.logger("log").info(f"{task_mark}下的视频ID{id},{new_video_path}视频下载失败")
|
|
|
cls.remove_files(video_path_url)
|
|
|
continue
|
|
@@ -142,13 +145,13 @@ class getVideo:
|
|
|
else:
|
|
|
video_ending_list = [video_ending]
|
|
|
ending = random.choice(video_ending_list)
|
|
|
- pw_list = Material.get_pwsrt_data(feishu_id, pw_sheet, ending) # 获取srt
|
|
|
+ pw_list = Material.get_pwsrt_data("summary", pw_sheet, ending) # 获取srt
|
|
|
if pw_list:
|
|
|
pw_id = pw_list["pw_id"]
|
|
|
pw_srt = pw_list["pw_srt"]
|
|
|
pw_url = PQ.get_pw_url(pw_id)
|
|
|
else:
|
|
|
- Feishu.bot(mark, '机器自动改造消息通知', f'{task_marks}任务下片尾标示错误,请关注!!!!', name)
|
|
|
+ Feishu.bot(mark, '机器自动改造消息通知', f'{task_mark}任务下片尾标示错误,请关注!!!!', name)
|
|
|
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):
|
|
@@ -188,14 +191,14 @@ class getVideo:
|
|
|
if status == 200:
|
|
|
oss_object_key = oss_object_key.get("oss_object_key")
|
|
|
time.sleep(1)
|
|
|
- code = PQ.insert_piaoquantv(oss_object_key, new_title, cover, n_id[count])
|
|
|
-
|
|
|
+ new_title = random.choice(titles)
|
|
|
+ code = PQ.insert_piaoquantv(oss_object_key, new_title, cover, piaoquan_id)
|
|
|
if code:
|
|
|
Common.logger("log").info(f"{task_mark}下的视频ID{v_id}发送成功")
|
|
|
- sqlCollect.insert_task(task_mark, v_id, mark) # 插入数据库
|
|
|
+ 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")
|
|
|
- values = [[name, task_mark, v_id, n_id[count], new_title, str(code), formatted_time]]
|
|
|
+ values = [[name, task_mark, v_id, piaoquan_id, new_title, str(code), formatted_time]]
|
|
|
Feishu.insert_columns("ILb4sa0LahddRktnRipcu2vQnLb", "a74fc4", "ROWS", 1, 2)
|
|
|
time.sleep(0.5)
|
|
|
Feishu.update_values("ILb4sa0LahddRktnRipcu2vQnLb", "a74fc4", "A2:Z2", values)
|
|
@@ -203,10 +206,9 @@ class getVideo:
|
|
|
else:
|
|
|
cls.remove_files(video_path_url)
|
|
|
Common.logger("log").info(f"{task_mark}下的视频ID{id} 视频发送OSS失败 ")
|
|
|
- count += 1 # 每次迭代计数器加1
|
|
|
- Feishu.bot(mark, '机器自动改造消息通知', f'{task_mark}任务改造完成,请关注', name)
|
|
|
- except Exception as e:
|
|
|
- cls.remove_files(video_path_url)
|
|
|
- Common.logger("warning").warning(f"{name}的{task_mark}任务处理失败:{e}\n")
|
|
|
+ Feishu.bot(mark, '机器自动改造消息通知', f'{task_mark}任务改造完成,请关注', name)
|
|
|
+ except Exception as e:
|
|
|
+ cls.remove_files(video_path_url)
|
|
|
+ Common.logger("warning").warning(f"{name}的{task_mark}任务处理失败:{e}\n")
|
|
|
Feishu.bot(mark, '机器自动改造消息通知', f'你的任务全部完成,请关注!!!!!', name)
|
|
|
return mark
|