"""
@author: luojunhui
"""
import json

from applications.const import new_content_id_task_const
from applications.functions.pqFunctions import get_pq_video_detail
from applications.functions.pqFunctions import publish_to_pq


async def publish_videos_to_piaoquan(video_list, kimi_title, process_times, trace_id, article_match_video_table, db_client):
    """
    将视频发布至票圈
    """
    L = []
    for video_obj in video_list:
        params = {
            "videoPath": video_obj['video_oss_path'],
            "uid": video_obj['uid'],
            "title": kimi_title
        }
        publish_response = await publish_to_pq(params)
        video_id = publish_response['data']['id']
        response = await get_pq_video_detail(video_id)
        obj = {
            "uid": video_obj['uid'],
            "source": video_obj['platform'],
            "kimiTitle": kimi_title,
            "videoId": response['data'][0]['id'],
            "videoCover": response['data'][0]['shareImgPath'],
            "videoPath": response['data'][0]['videoPath'],
            "videoOss": video_obj['video_oss_path']
        }
        L.append(obj)

    update_sql = f"""
        UPDATE {article_match_video_table}
        SET content_status = %s, response = %s, process_times = %s
        WHERE trace_id = %s and content_status = %s;
    """

    # 从操作中状态修改为已发布状态
    await db_client.async_insert(
        sql=update_sql,
        params=(
            new_content_id_task_const.TASK_PUBLISHED_STATUS,
            json.dumps(L, ensure_ascii=False),
            process_times + 1,
            trace_id,
            new_content_id_task_const.TASK_PROCESSING_STATUS
        )
    )