import json
import requests

def fullurl(base_url, querystring):

    full_url = requests.Request(
        'POST', base_url, params=querystring).prepare().url

    return full_url

def get_tiktok_posts():
    # device.json dosyasını oku


    # URL
    url = "https://api22-normal-c-alisg.tiktokv.com/aweme/v1/aweme/detail/?aweme_id=7323026432156781826&origin_type=other&request_source=0&manifest_version_code=400102&_rticket=1754408276975&app_language=vi&app_type=normal&iid=7535124672975882005&app_package=com.zhiliaoapp.musically.go&channel=googleplay&device_type=Pixel+7&language=vi&host_abi=arm64-v8a&locale=vi-VN&resolution=1080*2201&openudid=68b22e450da23655&update_version_code=400102&ac2=wifi5g&cdid=0ec25697-6fcb-41ee-ade6-3d3e0b24c445&sys_region=VN&os_api=35&timezone_name=Asia%2FHo_Chi_Minh&dpi=420&ac=wifi&device_id=7457733064673281552&os=android&os_version=15&timezone_offset=25200&version_code=400102&app_name=musically_go&ab_version=40.1.2&version_name=40.1.2&device_brand=google&op_region=VN&ssmix=a&device_platform=android&build_number=40.1.2&region=VN&aid=1340&ts=1754408251"

    # Query parametreleri
    params = {

    }

    signatures = get_tiktok_signatures(url)

    # Header bilgileri
    headers = {
        "Host": "api22-normal-c-alisg.tiktokv.com",
        "User-Agent": "TikTok 38.2.0 rv:382020 (iPhone; iOS 15.8.4; tr_TR) Cronet",
        "sdk-version": "2",
        "x-vc-bdturing-sdk-version": "2.3.9",
        "passport-sdk-version": "5.12.1",
        "x-tt-dm-status": "login=0;ct=1;rt=6",
        "pns-att-enable": "1",
        "x-tt-pba-enable": "1",
        "x-tt-store-region-src": "did",
        "rpc-persist-pyxis-policy-v-tnc": "1",
        "rpc-persist-pyxis-policy-state-law-is-ca": "0",
        "x-ss-dp": "1233",

        "x-argus": signatures["x-argus"],
        "x-gorgon": signatures["x-gorgon"],
        "x-khronos": str(signatures["x-khronos"]),
        "x-ladon": signatures["x-ladon"]
    }

    # GET isteği
    response = requests.get(url, headers=headers)
    print(response.text)
    print(response)
    print(url)


def get_tiktok_signatures(full_url):
    # device.json oku


    post_data = {
        "usertoken": "IhvhTLQITmosIJ41ZRVnV6vHA8plYSSOzjjc/nmgOQhSkRBBFHdqrZOeI3ZwW7C8vZ8275QIh3qP2nzNTVEgvA==",
        "isios": True,
        "device_id": "7552805343848400395",
        "url": full_url,
        "x_ss_stub": "",
        "encType": 3,
        "token": "ANZIvNBh7VT073lkOkEuD9TsT",
        "seed": "MDGiGJ/VrXcPITh6yTo1w9Llx7Z/FHNwAjcppaxeThjULhiEGmE5FQQuQxqwNQKm2ekCLwHFyhWbuw7PUPf8BQfCx2XYVuMDLNtnmkJKuDQy/sAVFr229ytFMSmIu9WdX/E=",
        "x_bd_lanusk": "",
        "licenseID": "466012054",
        "sdkVersionStr": "v05.01.05-ov-iOS",
        "sdkVersion": 167905858,
        "device_type": "D111AP",
        "AppVer": "38.2.0",
        "OsVer": "15.8.4",
        "id28": 1206,
        "id29": 516108,
        "id30": 6,
        "id32hex": "",
        "Record": {
            "signCount": 330,
            "reportCount": 6,
            "settingCount": 0,
            "reportFailCount": 0,
            "reportSuccessCount": 6,
            "actionIncremental": 4,
            "appLaunchTime":  3518277336
        }
    }

    response = requests.post(
        "http://104.168.87.134:50009/api/Tiktok/getgod4",
        json=post_data,
        headers={"Content-Type": "application/json"},
        timeout=30
    )
    print(response.text)

    if not response.text:
        return None

    data = response.json()
    if not data.get("data"):
        return None

    sigs = json.loads(data["data"])
    return {
        "x-argus": sigs.get("x-argus"),
        "x-gorgon": sigs.get("x-gorgon"),
        "x-khronos": sigs.get("x-khronos"),
        "x-ladon": sigs.get("x-ladon")
    }


# Örnek kullanım
if __name__ == "__main__":
    data = get_tiktok_posts()