import os
import sys
import time
from dotenv import load_dotenv
from lib.mqtt import create_client, update_disc, control_player, create_config, check_current_disc

# Load the .env file
load_dotenv()

# Define the MQTT server details
broker = os.environ.get("broker")
port = int(os.environ.get("port"))
# MQTT username and password
username = os.environ.get("username")
password = os.environ.get("password")

#print(f"Broker: {broker}, Port: {port}, Username: {username}")

client = create_client(broker, port, username, password)

create_config(client)

# Check if any arguments are passed
if len(sys.argv) > 1:
    # Get the JSON argument from the command line
    input_str = sys.argv[1]

    # Convert the JSON string into a dictionary
    disc_data = input_str.split(":")
    if disc_data[0] == "ytmusic":
        disc_object = {
            "name":disc_data[1],
            "type":disc_data[2],
            "id":disc_data[3]
        }
        # Check if disc is the same as last inserted
        if (disc_object == check_current_disc(client)):
            # If disc is the same, PLAY
            control_player(client, "PLAY")
        else:
            # Pass the parsed data to the update_disc function
            control_player(client, "PLAY")
            update_disc(client, disc_data)
    else:
        if input_str == "EJECT":
            # PAUSE the current playing item
            control_player(client, "PAUSE")
        elif input_str == "PLAY":
            # PLAY the current playing item
            control_player(client, "PLAY")
        elif input_str == "PAUSE":
            # PAUSE the current playing item
            control_player(client, "PAUSE")                
        else:
            print(f"Can't process {input_str}")