|
@@ -85,21 +85,14 @@ class CarryViode:
|
|
|
headers = {
|
|
|
'Content-Type': 'application/json'
|
|
|
}
|
|
|
- video_url = None
|
|
|
- original_title = None
|
|
|
- for i in range(3):
|
|
|
- response = requests.request("POST", url, headers=headers, data=payload)
|
|
|
- response = response.json()
|
|
|
- code = response["code"]
|
|
|
- if code == 0:
|
|
|
- data = response["data"]["data"]
|
|
|
+ response = requests.request("POST", url, headers=headers, data=payload)
|
|
|
+ response = response.json()
|
|
|
+ code = response["code"]
|
|
|
+ if code == 0:
|
|
|
+ data = response["data"]["data"]
|
|
|
|
|
|
- video_url = data["video_url_list"][0]["video_url"]
|
|
|
- original_title = data["title"]
|
|
|
- if ".mp4" in video_url:
|
|
|
- return video_url, original_title
|
|
|
- time.sleep(5)
|
|
|
- if video_url:
|
|
|
+ video_url = data["video_url_list"][0]["video_url"]
|
|
|
+ original_title = data["title"]
|
|
|
return video_url, original_title
|
|
|
else:
|
|
|
return None,None
|
|
@@ -107,6 +100,87 @@ class CarryViode:
|
|
|
logger.error(f"[+] 快手{url}获取视频链接失败,失败信息{e}")
|
|
|
return None, None
|
|
|
|
|
|
+
|
|
|
+ def insert_pq(self, REDIS_NAME, data, oss_object_key, title, tags):
|
|
|
+ logger.info(f"[+] {REDIS_NAME}的{data}开始写入票圈")
|
|
|
+ n_ids = data["pq_ids"]
|
|
|
+ if ',' in n_ids:
|
|
|
+ n_id_list = n_ids.split(',')
|
|
|
+ else:
|
|
|
+ n_id_list = [n_ids]
|
|
|
+ pq_list = []
|
|
|
+ for n_id in n_id_list:
|
|
|
+ code = PQ.insert_piaoquantv(oss_object_key, title, n_id)
|
|
|
+ if not code:
|
|
|
+ logger.error(f"[+] {REDIS_NAME}的{data}写入票圈后台失败")
|
|
|
+ AliyunLogger.logging(data["name"], "效率工具", data["tag_transport_channel"], data["video_url"],
|
|
|
+ "改造失败,写入票圈后台失败", "3001", str(data))
|
|
|
+ text = (
|
|
|
+ f"**负责人**: {data['name']}\n"
|
|
|
+ f"**内容**: {data}\n"
|
|
|
+ f"**失败信息**: 视频写入票圈后台失败,视频ID{code}\n"
|
|
|
+ )
|
|
|
+ Feishu.finish_bot(text,
|
|
|
+ "https://open.feishu.cn/open-apis/bot/v2/hook/65bc5463-dee9-46d0-bc2d-ec6c49a8f3cd",
|
|
|
+ "【 搬运&改造效率工具失败通知 】")
|
|
|
+ continue
|
|
|
+ pq_list.append(code)
|
|
|
+ logger.info(f"[+] {REDIS_NAME}的{data}写入票圈成功,返回视频id{code}")
|
|
|
+ tag_status = Tag.video_tag(code, str(tags))
|
|
|
+ if tag_status == 0:
|
|
|
+ logger.info(f"[+] {REDIS_NAME}的{data}写入标签成功,后台视频ID为{code}")
|
|
|
+ try:
|
|
|
+ current_time = datetime.now()
|
|
|
+ formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")
|
|
|
+ pq_url = f'https://admin.piaoquantv.com/cms/post-detail/{code}/detail' # 站内视频链接
|
|
|
+
|
|
|
+ values = [
|
|
|
+ [
|
|
|
+ str(code),
|
|
|
+ str(n_id),
|
|
|
+ formatted_time,
|
|
|
+ data["channel_mark"],
|
|
|
+ data["name"],
|
|
|
+ data["pq_ids"],
|
|
|
+ data["pq_label"],
|
|
|
+ data["activate_data"],
|
|
|
+ data["video_url"],
|
|
|
+ data["title_category"],
|
|
|
+ data["tag_transport_channel"],
|
|
|
+ data["tag_transport_scene"],
|
|
|
+ data["tag_transport_keyword"],
|
|
|
+ data["tag"],
|
|
|
+ data["transform_rule"],
|
|
|
+ data["video_share"],
|
|
|
+ data["trailer_share"],
|
|
|
+ data["trailer_share_audio"],
|
|
|
+ data["video_clipping"],
|
|
|
+ data["video_clipping_time"],
|
|
|
+ data["title_transform"],
|
|
|
+ pq_url
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ name_to_sheet = {
|
|
|
+ "范军": "276ffc",
|
|
|
+ "鲁涛": "QqrKRY",
|
|
|
+ "余海涛": "dTzUlI",
|
|
|
+ "罗情": "8JPv9g",
|
|
|
+ "刘诗雨": "HqwG0o",
|
|
|
+ "张峰": "vtWvle",
|
|
|
+ "周仙琴": "MWUqWt"
|
|
|
+ }
|
|
|
+ name = re.sub(r"\s+", "", data.get("name", ""))
|
|
|
+ sheet = name_to_sheet.get(name)
|
|
|
+ Feishu.insert_columns("R4dLsce8Jhz9oCtDMr9ccpFHnbI", sheet, "ROWS", 1, 2)
|
|
|
+ time.sleep(0.5)
|
|
|
+ Feishu.update_values("R4dLsce8Jhz9oCtDMr9ccpFHnbI", sheet, "A2:Z2", values)
|
|
|
+ logger.info(f"[+] {REDIS_NAME}的{data}写入飞书成功")
|
|
|
+ except Exception as e:
|
|
|
+ logger.error(f"[+] {REDIS_NAME}的{data}写入飞书失败{e}")
|
|
|
+ pass
|
|
|
+ AliyunLogger.logging(data["name"], "效率工具", data["tag_transport_channel"], data["video_url"],
|
|
|
+ "改造成功", "1000", str(data), str(pq_list))
|
|
|
+
|
|
|
def main(self, data, REDIS_NAME, file_path):
|
|
|
AliyunLogger.logging(data["name"],"效率工具", data["tag_transport_channel"], data["video_url"], "扫描到一条视频", "2001", str(data))
|
|
|
AliyunLogger.logging(data["name"], "效率工具",data["tag_transport_channel"], data["video_url"], "符合规则等待改造", "2004", str(data))
|
|
@@ -170,7 +244,13 @@ class CarryViode:
|
|
|
"【 搬运&改造效率工具失败通知 】")
|
|
|
return
|
|
|
logger.info(f"[+] {url}开始视频下载成功")
|
|
|
- if data["transform_rule"] == '否':
|
|
|
+ logger.info(f"[+] {url}开始处理标题")
|
|
|
+ if data["title_category"] == "AI标题" or data["trailer_share"] == "AI标题":
|
|
|
+ title = GPT4o.get_ai_title(
|
|
|
+ original_title if data["title_category"] == "原标题" else data["title_category"])
|
|
|
+ else:
|
|
|
+ title = original_title if data["title_category"] == "原标题" else data["title_category"]
|
|
|
+ if data["transform_rule"] == '否'or data["transform_rule"] == "是":
|
|
|
logger.info(f"[+] {REDIS_NAME}的{data}数据开始发送oss")
|
|
|
oss_object_key = Oss.stitching_sync_upload_oss(video_path, str(uuid.uuid4())) # 视频发送OSS
|
|
|
status = oss_object_key.get("status")
|
|
@@ -189,9 +269,17 @@ class CarryViode:
|
|
|
return
|
|
|
logger.info(f"[+] {REDIS_NAME}的{data}数据发送oss成功")
|
|
|
oss_object_key = oss_object_key.get("oss_object_key")
|
|
|
-
|
|
|
-
|
|
|
- elif data["transform_rule"] == "仅改造":
|
|
|
+ tags = ','.join(filter(None, [
|
|
|
+ data['pq_label'],
|
|
|
+ data['channel_mark'],
|
|
|
+ data['tag_transport_channel'],
|
|
|
+ data['tag_transport_scene'],
|
|
|
+ data['tag_transport_keyword'],
|
|
|
+ data['tag'],
|
|
|
+ "搬运"
|
|
|
+ ]))
|
|
|
+ self.insert_pq(REDIS_NAME, data, oss_object_key, title, tags)
|
|
|
+ if data["transform_rule"] == "仅改造" or data["transform_rule"] == "是":
|
|
|
logger.info(f"[+] {REDIS_NAME}的{data}视频更改分辨率处理")
|
|
|
video_path = FFmpeg.video_640(video_path, file_path)
|
|
|
if not os.path.exists(video_path) or os.path.getsize(video_path) == 0:
|
|
@@ -321,40 +409,6 @@ class CarryViode:
|
|
|
return
|
|
|
logger.info(f"[+] {REDIS_NAME}的{data}数据发送oss成功")
|
|
|
oss_object_key = oss_object_key.get("oss_object_key")
|
|
|
- logger.info(f"[+] {REDIS_NAME}的{data}开始写入票圈")
|
|
|
- n_ids = data["pq_ids"]
|
|
|
- if ',' in n_ids:
|
|
|
- n_id_list = n_ids.split(',')
|
|
|
- else:
|
|
|
- n_id_list = [n_ids]
|
|
|
- pq_list = []
|
|
|
- for n_id in n_id_list:
|
|
|
- logger.info(f"[+] {url}开始处理标题")
|
|
|
- if data["title_category"] == "AI标题" or data["trailer_share"] == "AI标题":
|
|
|
- title = GPT4o.get_ai_title(
|
|
|
- original_title if data["title_category"] == "原标题" else data["title_category"])
|
|
|
- else:
|
|
|
- title = original_title if data["title_category"] == "原标题" else data["title_category"]
|
|
|
- code = PQ.insert_piaoquantv(oss_object_key, title, n_id)
|
|
|
- if not code:
|
|
|
- logger.error(f"[+] {REDIS_NAME}的{data}写入票圈后台失败")
|
|
|
- AliyunLogger.logging(data["name"], "效率工具",data["tag_transport_channel"], data["video_url"],
|
|
|
- "改造失败,写入票圈后台失败", "3001", str(data))
|
|
|
- text = (
|
|
|
- f"**负责人**: {data['name']}\n"
|
|
|
- f"**内容**: {data}\n"
|
|
|
- f"**失败信息**: 视频写入票圈后台失败,视频ID{code}\n"
|
|
|
- )
|
|
|
- Feishu.finish_bot(text,
|
|
|
- "https://open.feishu.cn/open-apis/bot/v2/hook/65bc5463-dee9-46d0-bc2d-ec6c49a8f3cd",
|
|
|
- "【 搬运&改造效率工具失败通知 】")
|
|
|
- continue
|
|
|
- pq_list.append(code)
|
|
|
- logger.info(f"[+] {REDIS_NAME}的{data}写入票圈成功,返回视频id{code}")
|
|
|
- if data["transform_rule"] == '否':
|
|
|
- tag_s = "搬运"
|
|
|
- else:
|
|
|
- tag_s = "搬运改造"
|
|
|
tags = ','.join(filter(None, [
|
|
|
data['pq_label'],
|
|
|
data['channel_mark'],
|
|
@@ -362,61 +416,10 @@ class CarryViode:
|
|
|
data['tag_transport_scene'],
|
|
|
data['tag_transport_keyword'],
|
|
|
data['tag'],
|
|
|
- tag_s
|
|
|
+ "搬运改造"
|
|
|
]))
|
|
|
- tag_status = Tag.video_tag(code, str(tags))
|
|
|
- if tag_status == 0:
|
|
|
- logger.info(f"[+] {REDIS_NAME}的{data}写入标签成功,后台视频ID为{code}")
|
|
|
- try:
|
|
|
- current_time = datetime.now()
|
|
|
- formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")
|
|
|
- values = [
|
|
|
- [
|
|
|
- str(code),
|
|
|
- str(n_id),
|
|
|
- formatted_time,
|
|
|
- data["channel_mark"],
|
|
|
- data["name"],
|
|
|
- data["pq_ids"],
|
|
|
- data["pq_label"],
|
|
|
- data["activate_data"],
|
|
|
- data["video_url"],
|
|
|
- data["title_category"],
|
|
|
- data["tag_transport_channel"],
|
|
|
- data["tag_transport_scene"],
|
|
|
- data["tag_transport_keyword"],
|
|
|
- data["tag"],
|
|
|
- data["transform_rule"],
|
|
|
- data["video_share"],
|
|
|
- data["trailer_share"],
|
|
|
- data["trailer_share_audio"],
|
|
|
- data["video_clipping"],
|
|
|
- data["video_clipping_time"],
|
|
|
- data["title_transform"],
|
|
|
+ self.insert_pq(REDIS_NAME, data, oss_object_key, title, tags)
|
|
|
|
|
|
- ]
|
|
|
- ]
|
|
|
- name_to_sheet = {
|
|
|
- "范军": "276ffc",
|
|
|
- "鲁涛": "QqrKRY",
|
|
|
- "余海涛": "dTzUlI",
|
|
|
- "罗情": "8JPv9g",
|
|
|
- "刘诗雨": "HqwG0o",
|
|
|
- "张峰": "vtWvle",
|
|
|
- "周仙琴": "MWUqWt"
|
|
|
- }
|
|
|
- name = re.sub(r"\s+", "", data.get("name", ""))
|
|
|
- sheet = name_to_sheet.get(name)
|
|
|
- Feishu.insert_columns("R4dLsce8Jhz9oCtDMr9ccpFHnbI", sheet, "ROWS", 1, 2)
|
|
|
- time.sleep(0.5)
|
|
|
- Feishu.update_values("R4dLsce8Jhz9oCtDMr9ccpFHnbI", sheet, "A2:Z2", values)
|
|
|
- logger.info(f"[+] {REDIS_NAME}的{data}写入飞书成功")
|
|
|
- except Exception as e:
|
|
|
- logger.error(f"[+] {REDIS_NAME}的{data}写入飞书失败{e}")
|
|
|
- pass
|
|
|
- AliyunLogger.logging(data["name"], "效率工具",data["tag_transport_channel"], data["video_url"],
|
|
|
- "改造成功", "1000", str(data),str(pq_list))
|
|
|
- return
|
|
|
|
|
|
|
|
|
|