pq_video.py 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  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. if not code:
  33. logger.error(f"[+] {REDIS_NAME}的{data}写入票圈后台失败")
  34. text = (
  35. f"**负责人**: {data['name']}\n"
  36. f"**内容**: {data}\n"
  37. f"**失败信息**: 视频写入票圈后台失败,视频ID{code}\n"
  38. )
  39. Feishu.finish_bot(text,
  40. "https://open.feishu.cn/open-apis/bot/v2/hook/65bc5463-dee9-46d0-bc2d-ec6c49a8f3cd",
  41. "【 老内容重发通知 】")
  42. continue
  43. pq_list.append(code)
  44. logger.info(f"[+] {REDIS_NAME}的{data}写入票圈成功,返回视频id{code}")
  45. tags = ','.join(filter(None, [
  46. data['pq_label'],
  47. "站内重发"
  48. ]))
  49. tag_status = Tag.video_tag(code, str(tags))
  50. if tag_status == 0:
  51. logger.info(f"[+] {REDIS_NAME}的{data}写入标签成功,后台视频ID为{code}")
  52. try:
  53. current_time = datetime.now()
  54. formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")
  55. pq_url = f'https://admin.piaoquantv.com/cms/post-detail/{code}/detail' # 站内视频链接
  56. values = [
  57. [
  58. str(code),
  59. str(n_id),
  60. formatted_time,
  61. "站内重发",
  62. # data["name"],
  63. # data["pq_ids"],
  64. data["pq_label"],
  65. # data["activate_data"],
  66. data["video_id"],
  67. data["title"],
  68. data["dt"],
  69. pq_url
  70. ]
  71. ]
  72. name_to_sheet = {
  73. "范军": "bbf2a9",
  74. "鲁涛": "UpArtI",
  75. "余海涛": "wh13NV",
  76. "罗情": "8hhW6y",
  77. "刘诗雨": "OVfeDx",
  78. "周仙琴": "3zQn2q",
  79. "王雪珂": "qR49hQ",
  80. "信欣": "G3i38u",
  81. "王媛": "XuwyeI",
  82. "王知微": "S1RXJb",
  83. "刘兆恒": "1goT0N",
  84. "张博": "dPVhKa",
  85. "林子涵": "w9vu9f"
  86. }
  87. name = re.sub(r"\s+", "", data.get("name", ""))
  88. sheet = name_to_sheet.get(name)
  89. Feishu.insert_columns("RyXxsjECmhmCFGt0x0mci1iBnmg", sheet, "ROWS", 1, 2)
  90. time.sleep(0.5)
  91. Feishu.update_values("RyXxsjECmhmCFGt0x0mci1iBnmg", sheet, "A2:Z2", values)
  92. logger.info(f"[+] {REDIS_NAME}的{data}写入飞书成功")
  93. except Exception as e:
  94. logger.error(f"[+] {REDIS_NAME}的{data}写入飞书失败{e}")
  95. pass
  96. return