from v import socket as pool
from v import time
import v
#import socket as pool
def fetch_data(host, port=80, args=""):
    #print("== FETCHING =======================================")
    start_time = time.monotonic()
    headers = "Content-Type: application/json\r\n" + "Accept: application/json\r\n" + "Host: " + host  + "\r\n"
    r = "GET " + args + " HTTP/1.0\r\n" + headers + "\r\n\r\n"
    request = bytes(r.encode("latin-1"))
    with pool.socket(pool.AF_INET, pool.SOCK_STREAM, 0) as s:
        cache = bytearray(50000)                                # MAX FILESIZE
        s.settimeout(3)
        s.connect((host, port))
        s.settimeout(3) # TESTING
        sent = s.send(request)
        buff = bytearray(10000)
        data = s.recv_into(buff)
        while data:
            cache += buff[:data]
            data = s.recv_into(buff)
    x = cache.decode("utf-8")
    data = x.split("\r\n\r\n",1)[1]
    v.ping.append(time.monotonic() - start_time)
    return data
