|
@@ -0,0 +1,94 @@
|
|
|
+from applications.api import fetch_piaoquan_video_list_detail
|
|
|
+from applications.api import insert_crawler_relation_to_aigc_system
|
|
|
+
|
|
|
+from .video_pool_const import VideoPoolConst
|
|
|
+
|
|
|
+
|
|
|
+class VideoPoolAuditStrategy(VideoPoolConst):
|
|
|
+ def __init__(self, pool, log_client, trace_id):
|
|
|
+ super().__init__()
|
|
|
+ self.pool = pool
|
|
|
+ self.log_client = log_client
|
|
|
+ self.trace_id = trace_id
|
|
|
+
|
|
|
+ async def update_video_audit_status(self, video_id, ori_status, new_status):
|
|
|
+ """修改视频审核状态"""
|
|
|
+ query = """
|
|
|
+ UPDATE publish_single_video_source
|
|
|
+ SET audit_status = %s
|
|
|
+ WHERE audit_video_id = %s AND audit_status = %s;
|
|
|
+ """
|
|
|
+ return await self.pool.async_save(query=query, params=(new_status, video_id, ori_status))
|
|
|
+
|
|
|
+ async def get_auditing_video_list(self):
|
|
|
+ """get auditing video list"""
|
|
|
+ query = """
|
|
|
+ select content_trace_id, audit_video_id, score, platform
|
|
|
+ from publish_single_video_source
|
|
|
+ where audit_status = %s
|
|
|
+ """
|
|
|
+ return await self.pool.async_fetch(query=query, params=(-1, ))
|
|
|
+
|
|
|
+ async def get_video_audit_info(self, video_obj):
|
|
|
+ """
|
|
|
+ get audit video info from piaoquan
|
|
|
+ """
|
|
|
+ video_id = video_obj['audit_video_id']
|
|
|
+ response = await fetch_piaoquan_video_list_detail([video_id])
|
|
|
+ response_data = response.get("data")
|
|
|
+ if not response_data:
|
|
|
+ audit_status = self.PQ_AUDIT_FAIL_STATUS
|
|
|
+ else:
|
|
|
+ audit_status = response_data[0].get("auditStatus")
|
|
|
+
|
|
|
+ match audit_status:
|
|
|
+ case self.PQ_AUDIT_SUCCESS_STATUS:
|
|
|
+ # 更新小程序标题字段
|
|
|
+ mini_program_title_flag = self.update_mini_program_title(video_id)
|
|
|
+ if mini_program_title_flag:
|
|
|
+ # 处理成功,修改审核状态为1
|
|
|
+ affected_rows = await self.update_video_audit_status(
|
|
|
+ video_id=video_id,
|
|
|
+ ori_status=self.VIDEO_AUDIT_PROCESSING_STATUS,
|
|
|
+ new_status=self.VIDEO_AUDIT_SUCCESS_STATUS
|
|
|
+ )
|
|
|
+ # 将视频存储到任务队列
|
|
|
+ self.insert_into_task_queue(video_obj)
|
|
|
+
|
|
|
+ # 将视频存储到 aigc 表
|
|
|
+ await insert_crawler_relation_to_aigc_system(
|
|
|
+ relation_list=[
|
|
|
+ {
|
|
|
+ "videoPoolTraceId": video_obj['content_trace_id'],
|
|
|
+ "channelContentId": str(video_id),
|
|
|
+ "platform": video_obj['platform'],
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ )
|
|
|
+ else:
|
|
|
+ # 修改小程序标题失败,修改审核状态为4
|
|
|
+ affected_rows = await self.update_video_audit_status(
|
|
|
+ video_id=video_id,
|
|
|
+ ori_status=self.VIDEO_AUDIT_PROCESSING_STATUS,
|
|
|
+ new_status=self.VIDEO_TITLE_GENERATE_FAIL_STATUS
|
|
|
+ )
|
|
|
+
|
|
|
+ case self.PQ_AUDIT_SELF_VISIBLE_STATUS, self.PQ_AUDIT_FAIL_STATUS:
|
|
|
+ # 视频审核失败,修改审核状态为2
|
|
|
+ affected_rows = await self.update_video_audit_status(
|
|
|
+ video_id=video_id,
|
|
|
+ ori_status=self.VIDEO_AUDIT_PROCESSING_STATUS,
|
|
|
+ new_status=self.VIDEO_AUDIT_FAIL_STATUS
|
|
|
+ )
|
|
|
+
|
|
|
+ case self.PQ_AUDIT_PROCESSING_STATUS:
|
|
|
+ affected_rows = 0
|
|
|
+
|
|
|
+ case _:
|
|
|
+ affected_rows = 0
|
|
|
+
|
|
|
+ return {
|
|
|
+ "affected_rows": affected_rows,
|
|
|
+ "video_id": video_id,
|
|
|
+ "audit_status": audit_status
|
|
|
+ }
|