import json import re import time from datetime import datetime from loguru import logger from common.feishu_utils import Feishu from common.piaoquan import PQ from common.redis import in_carry_video_data from common.tag_video import Tag class PqViode: def main(self, data, REDIS_NAME): video_id = data['video_id'] title = data['title'] if not video_id: return logger.info(f"[+] {REDIS_NAME}的{video_id}开始获取视频地址") video_path, cover_path, old_title = PQ.get_pq_oss(video_id) if not title: title = old_title if not video_path: in_carry_video_data(REDIS_NAME, json.dumps(data, ensure_ascii=False, indent=4)) logger.error(f"[+] {REDIS_NAME}的{video_id}没有获取到视频地址,等待重新处理") return n_ids = str(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.install_tj_pq(video_id, video_path, title, n_id, cover_path) logger.info(f"{video_id} publish code = {code}") if not code: logger.error(f"[+] {REDIS_NAME}的{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 if code==1050: logger.error(f"[+] {REDIS_NAME}的{data}写入票圈后台失败") text = ( f"**负责人**: {data['name']}\n" f"**内容**: {data}\n" f"**失败信息**: 原视频状态无效:审核不通过或非推荐状态\n" ) # "老内容重发报警" 飞书群 Feishu.finish_bot(text, "https://open.feishu.cn/open-apis/bot/v2/hook/ceaf3c22-ddc5-4a77-9ac7-2e309b925ed6", "老内容重发-原视频状态无效") continue pq_list.append(code) logger.info(f"[+] {REDIS_NAME}的{data}写入票圈成功,返回视频id{code}") tags = ','.join(filter(None, [ data['pq_label'], "站内重发" ])) 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["name"], # data["pq_ids"], data["pq_label"], # data["activate_data"], data["video_id"], data["title"], data["dt"], pq_url ] ] name_to_sheet = { "范军": "bbf2a9", "鲁涛": "UpArtI", "余海涛": "wh13NV", "罗情": "8hhW6y", "刘诗雨": "OVfeDx", "周仙琴": "3zQn2q", "王雪珂": "qR49hQ", "信欣": "G3i38u", "王媛": "XuwyeI", "王知微": "S1RXJb", "刘兆恒": "1goT0N", "张博": "dPVhKa", "林子涵": "w9vu9f" } name = re.sub(r"\s+", "", data.get("name", "")) sheet = name_to_sheet.get(name) Feishu.insert_columns("RyXxsjECmhmCFGt0x0mci1iBnmg", sheet, "ROWS", 1, 2) time.sleep(0.5) Feishu.update_values("RyXxsjECmhmCFGt0x0mci1iBnmg", sheet, "A2:Z2", values) logger.info(f"[+] {REDIS_NAME}的{data}写入飞书成功") except Exception as e: logger.error(f"[+] {REDIS_NAME}的{data}写入飞书失败{e}") pass return