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

from applications.functions.common import async_post


async def publishToPQ(video_obj):
    """
    publish video to pq
    :return:
    """
    oss_path = video_obj['videoPath']
    uid = video_obj['uid']
    title = video_obj['title']
    url = "https://vlogapi.piaoquantv.com/longvideoapi/crawler/video/send"
    headers = {
        "User-Agent": "PQSpeed/486 CFNetwork/1410.1 Darwin/22.6.0",
        "cookie": "JSESSIONID=4DEA2B5173BB9A9E82DB772C0ACDBC9F; JSESSIONID=D02C334150025222A0B824A98B539B78",
        "referer": "http://appspeed.piaoquantv.com",
        "token": "524a8bc871dbb0f4d4717895083172ab37c02d2f",
        "accept-language": "zh-CN,zh-Hans;q=0.9",
        "Content-Type": "application/x-www-form-urlencoded",
    }
    payload = {
        "deviceToken": "9ef064f2f7869b3fd67d6141f8a899175dddc91240971172f1f2a662ef891408",
        "fileExtensions": "MP4",
        "loginUid": uid,
        "networkType": "Wi-Fi",
        "platform": "iOS",
        "requestId": "fb972cbd4f390afcfd3da1869cd7d001",
        "sessionId": "362290597725ce1fa870d7be4f46dcc2",
        "subSessionId": "362290597725ce1fa870d7be4f46dcc2",
        "title": title,
        "token": "524a8bc871dbb0f4d4717895083172ab37c02d2f",
        "uid": uid,
        "versionCode": "486",
        "versionName": "3.4.12",
        "videoFromScene": "1",
        "videoPath": oss_path,
        "viewStatus": "1",
        "appType": 888880,
        "repeatStatus": 1
    }
    # response = requests.post(
    #     url=url,
    #     headers=headers,
    #     data=payload,
    # )
    # return response.json()
    response = await async_post(url, headers, payload)
    return response


async def getPQVideoDetail(video_id):
    """
    获取票圈视频详情信息
    :return:
    """
    url = "https://longvideoapi.piaoquantv.com/longvideoapi/openapi/video/batchSelectVideoInfo"
    data = {
        "videoIdList": [video_id]
    }
    header = {
        "Content-Type": "application/json",
    }
    response = await async_post(url, header, json.dumps(data))
    return response


async def getNewVideoIds(video_obj_list):
    """
    video
    :return:
    """
    vid_list = []
    for video_obj in video_obj_list:
        # video_obj 里面的信息对于历史数据可能不全,需要从pq获取
        print(json.dumps(video_obj, ensure_ascii=False, indent=4))
        try:
            if len(vid_list) >= 3:
                return vid_list
            else:
                pq_response = await publishToPQ(video_obj)
                video_id = pq_response['data']['id']
                vid_list.append(video_id)
        except:
            continue
    return vid_list