import time as t
from datetime import datetime
import pytz
import requests
import json
tz_NY = pytz.timezone('Asia/Bangkok')


def _time():
    datetime_NY = datetime.now(tz_NY)
    HM = datetime_NY.strftime("%H:%M")
    return HM


def _loop():
    datetime_NY = datetime.now(tz_NY)
    HM = datetime_NY.strftime("%H:%M")
    f = open('time.json')
    data = json.load(f)
    print(data[HM])
    f.close()
    # datetime_NY = datetime.now(tz_NY)
    # HM = datetime_NY.strftime("%H:%M")
    # time = requests.get('http://150.95.89.148/api/py/forbot/chudjen999/time5.json')
    # _time = time.json()
    return data[HM]


def _create_befor():
    url = "http://104.238.148.82:4001/data"
    payload = {
        'category': 'MAARUAYS',
        'lottery_loop_name': str(_time()),
        'lottery_loop_time': str(_loop())

        # 'lottery_loop_name': '00:30',
        # 'lottery_loop_time': '75'
    }
    headers = {'content-type': "application/x-www-form-urlencoded"}
    response = ""
    try:
        response = requests.request(
            "POST", url, data=payload, headers=headers, verify=False, timeout=10)
        print('create: ',payload)
    except Exception as error:
        print('err_1:',error)
        response = requests.request(
            "POST", url, data=payload, headers=headers, verify=False, timeout=10)
    # response = requests.request("POST", url, data=payload, headers=headers)
    result = response.json()
    return result["id"]


def _load():
    result = ''
    maxloop = 1
    while True:
        print("pre load")
        t.sleep(4)
        payload = {'loop': _loop()}
        # payload = {'loop': 75}
        path = "http://104.238.148.82/api/maaruays_30line.php"
        res = ""
        try:
            res = requests.get(path, params=payload, verify=False, timeout=10)
            print('loop: ',payload)
            
        except Exception as error:
            print('err_2:',error)
            t.sleep(2)
            res = requests.get(path, params=payload, verify=False, timeout=10)
        result = res.json()
        print(result)
        fix = ''
        for x in result:
            fix = str(x['lottery_loop_3unit'])
        if fix.strip() != '' and fix != 'xxx' and int(res.status_code) == 200:
            break
        if maxloop == 20:
            break
        maxloop += 1
    return result


def _update_last(_res):
    url = "http://104.238.148.82:4001/data/{}".format(last_id)
    payload = {
        'lottery_loop_3unit': _res[0]["lottery_loop_3unit"],
        'lottery_loop_2unit': _res[0]["lottery_loop_2unit"],
        'lottery_loop_3unit_vip': _res[0]["lottery_loop_3unit_vip"],
        'lottery_loop_2unit_vip': _res[0]["lottery_loop_2unit_vip"]

    }
    headers = {'content-type': "application/x-www-form-urlencoded"}
    try:
        response = requests.request("PUT", url, data=payload, headers=headers)
        print('put: ',payload)
    except Exception as error:
        print('err_3:',error)
        t.sleep(2)
        response = requests.request("PUT", url, data=payload, headers=headers)
        # response = requests.request("PUT", url, data=payload, headers=headers)
        print(response.json())


loop = True
last_id = 0  # PK update Last item
while loop:
    now1 = datetime.now(tz_NY)
    time_str = now1.strftime('%H:%M:%S')
    _where = now1.strftime('%M:%S')
    _H = now1.strftime('%H')
    print(time_str)
    t.sleep(1)
    loop_time = ['00:10', '15:10', '30:10', '45:10']
    if _where in loop_time:
        if _H != '04' and _H != '05':
            last_id = _create_befor()

    push_time = ['03:10', '18:10', '33:10', '48:10']
    if _where in push_time:
        if _H != '04' and _H != '05':
            _update_last(_load())
# last_id = _create_befor()
# _update_last(_load())
