import time
import queue
import random
from newMarketBot import NewMarketBot
import threading
from LoggingFormatter import logger

listings_queue = queue.Queue()

def startHandleListingsQueue(all_sessions: list, webshare_ips: list) -> list:
    handle_listings_queue_threads = []
    
    for i in range(20):
        t = threading.Thread(
            target=handleListingsQueue,
            args=(
                listings_queue,
                webshare_ips,
                all_sessions
            ),
        )
        t.daemon = True
        t.name = "handleListingsQueue" + str(i)
        t.start()
        handle_listings_queue_threads.append(t)
    return handle_listings_queue_threads


# return {
#     "link": final_inspect_link,
#     "m": m_param,
#     "a": a_param,
#     "d": d_param,
#     "price": full_price,
#     "high_low": high_low,
# }

#inspect_links = [['661608215072041708', '50070771348', '159.59', 'steam://run/730//+csgo_econ_action_preview 0B1B9FA6C6C8B10A13AC2C2B9645230D3B08339189EEF3084B4A63257B036C742117', 'high'], ['624451090135495314', '48115800663', '179.46', 'steam://run/730//+csgo_econ_action_preview DECE096A6D416DDFC679F9FE4390F6D8EEDDE651127D26DD9E3BD8B681AEDADD5C2BD0', 'high']]

def handleListingsQueue(listings_queue: queue.Queue, webshare_ips, all_sessions):
    while True:
        if listings_queue.qsize() <= 0:
            time.sleep(random.uniform(0.1, 0.2))

        else:
            inspect_links = listings_queue.get()
            if inspect_links is None:
                continue
            high_low = inspect_links[0][4]
            nm = NewMarketBot(
                str(high_low),
                "Best Thread",
                webshare_ips,
                all_sessions,
                queue.Queue(),
            )
            nm.checkForRankNew(inspect_links)
            
            
            #print("IN QUEUEUEUUEUEUUE")
            #print(str(inspect_links))
            #bulk_list = listings_queue.get()[0]
            #current_thread_name = threading.current_thread().name
            #logger.info(f"{current_thread_name} is handling bulk list of {len(bulk_list)}")
            # # high_low = list(bulk_list[0].values())[0]["high_low"]
            # # nm = NewMarketBot(
            # #     str(high_low),
            # #     "Best Thread",
            # #     webshare_ips,
            # #     all_sessions,
            # #     queue.Queue(),
            # # )
            # # nm.getBestOrWorstSkinsBulk(bulk_list)

