pq_video.py 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. import json
  2. import re
  3. import time
  4. from datetime import datetime
  5. from loguru import logger
  6. from common.feishu_utils import Feishu
  7. from common.piaoquan import PQ
  8. from common.redis import in_carry_video_data
  9. from common.tag_video import Tag
  10. class PqViode:
  11. def main(self, data, REDIS_NAME):
  12. video_id = data['video_id']
  13. title = data['title']
  14. if not video_id:
  15. return
  16. logger.info(f"[+] {REDIS_NAME}的{video_id}开始获取视频地址")
  17. video_path, cover_path, old_title = PQ.get_pq_oss(video_id)
  18. if not title:
  19. title = old_title
  20. if not video_path:
  21. in_carry_video_data(REDIS_NAME, json.dumps(data, ensure_ascii=False, indent=4))
  22. logger.error(f"[+] {REDIS_NAME}的{video_id}没有获取到视频地址,等待重新处理")
  23. return
  24. n_ids = str(data["pq_ids"])
  25. if ',' in n_ids:
  26. n_id_list = n_ids.split(',')
  27. else:
  28. n_id_list = [n_ids]
  29. pq_list = []
  30. for n_id in n_id_list:
  31. code = PQ.install_tj_pq(video_id, video_path, title, n_id, cover_path)
  32. logger.info(f"{video_id} publish code = {code}")
  33. if not code:
  34. logger.error(f"[+] {REDIS_NAME}的{data}写入票圈后台失败")
  35. text = (
  36. f"**负责人**: {data['name']}\n"
  37. f"**内容**: {data}\n"
  38. f"**失败信息**: 视频写入票圈后台失败,视频ID{code}\n"
  39. )
  40. Feishu.finish_bot(text,
  41. "https://open.feishu.cn/open-apis/bot/v2/hook/65bc5463-dee9-46d0-bc2d-ec6c49a8f3cd",
  42. "【 老内容重发通知 】")
  43. continue
  44. if code==1050:
  45. logger.error(f"[+] {REDIS_NAME}的{data}写入票圈后台失败")
  46. text = (
  47. f"**负责人**: {data['name']}\n"
  48. f"**内容**: {data}\n"
  49. f"**失败信息**: 原视频状态无效:审核不通过或非推荐状态\n"
  50. )
  51. # "老内容重发报警" 飞书群
  52. Feishu.finish_bot(text, "https://open.feishu.cn/open-apis/bot/v2/hook/ceaf3c22-ddc5-4a77-9ac7-2e309b925ed6", "老内容重发-原视频状态无效")
  53. continue
  54. pq_list.append(code)
  55. logger.info(f"[+] {REDIS_NAME}的{data}写入票圈成功,返回视频id{code}")
  56. tags = ','.join(filter(None, [
  57. data['pq_label'],
  58. "站内重发"
  59. ]))
  60. tag_status = Tag.video_tag(code, str(tags))
  61. if tag_status == 0:
  62. logger.info(f"[+] {REDIS_NAME}的{data}写入标签成功,后台视频ID为{code}")
  63. try:
  64. current_time = datetime.now()
  65. formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")
  66. pq_url = f'https://admin.piaoquantv.com/cms/post-detail/{code}/detail' # 站内视频链接
  67. values = [
  68. [
  69. str(code),
  70. str(n_id),
  71. formatted_time,
  72. "站内重发",
  73. # data["name"],
  74. # data["pq_ids"],
  75. data["pq_label"],
  76. # data["activate_data"],
  77. data["video_id"],
  78. data["title"],
  79. data["dt"],
  80. pq_url
  81. ]
  82. ]
  83. name_to_sheet = {
  84. "范军": "bbf2a9",
  85. "鲁涛": "UpArtI",
  86. "余海涛": "wh13NV",
  87. "罗情": "8hhW6y",
  88. "刘诗雨": "OVfeDx",
  89. "周仙琴": "3zQn2q",
  90. "王雪珂": "qR49hQ",
  91. "信欣": "G3i38u",
  92. "王媛": "XuwyeI",
  93. "王知微": "S1RXJb",
  94. "刘兆恒": "1goT0N",
  95. "张博": "dPVhKa",
  96. "林子涵": "w9vu9f"
  97. }
  98. name = re.sub(r"\s+", "", data.get("name", ""))
  99. sheet = name_to_sheet.get(name)
  100. Feishu.insert_columns("RyXxsjECmhmCFGt0x0mci1iBnmg", sheet, "ROWS", 1, 2)
  101. time.sleep(0.5)
  102. Feishu.update_values("RyXxsjECmhmCFGt0x0mci1iBnmg", sheet, "A2:Z2", values)
  103. logger.info(f"[+] {REDIS_NAME}的{data}写入飞书成功")
  104. except Exception as e:
  105. logger.error(f"[+] {REDIS_NAME}的{data}写入飞书失败{e}")
  106. pass
  107. return