import os

import adafruit_connection_manager
import adafruit_requests
import wifi

wifi_ssid = os.getenv("CIRCUITPY_WIFI_SSID")
wifi_password = os.getenv("CIRCUITPY_WIFI_PASSWORD")

print("\nConecting to WiFi...")
radio = wifi.radio
while not radio.connected:
    radio.connect(wifi_ssid, wifi_password)
print("Connected!")
    
pool = adafruit_connection_manager.get_radio_socketpool(radio)
ssl_context = adafruit_connection_manager.get_radio_ssl_context(radio)

print("\nGetting sessions...")
sessions = {}
session_id = 0
while True:
    session_id += 1
    try:
        requests = adafruit_requests.Session(pool, ssl_context, session_id=str(session_id))
        response = requests.get("http://www.adafruit.com/api/quotes.php")
        sessions[session_id] = {
            "requests": requests,
            "response": response,
            "result": "",
            "more": True,
        }
        print(f"Started session {session_id}")
    except Exception as e:
      	print(f"Error getting {session_id} session: {e}")
        break

print("\nFetching...")
chunk_size = 5
b = bytearray(chunk_size)
while True:
    any_more = False
    for session_id, data in sessions.items():
        if data["more"]:
            size = data["response"]._readinto(b)
            if size:
                any_more = True
                data["result"] += str(b[:size], "utf-8")
            else:
                data["more"] = False
                data["response"].close()
        print(f"{session_id}: {data["result"]}")
    if not any_more:
        break