12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- import sys
- import os
- from lib.mqtt import (
- create_client,
- update_disc,
- control_player,
- create_config,
- check_current_disc,
- )
- from lib.home_assistant import load_disc, pause_media, play_media_again
- from dotenv import load_dotenv
- load_dotenv()
- use_mqtt = os.environ["use_mqtt"].lower() == "true"
- if use_mqtt:
- client = create_client()
- create_config(client)
- print(f"Using MQTT: {use_mqtt}")
- def handle_disc(disc_data):
- print(f"Handling disc: {disc_data}")
- disc_object = {"name": disc_data[1], "type": disc_data[2], "id": disc_data[3]}
- if use_mqtt:
- if disc_object == check_current_disc(client):
- print("Disc is the same as the last one, playing.")
- control_player(client, "PLAY")
- if use_mqtt:
- print("Updating disc via MQTT and playing.")
- control_player(client, "PLAY")
- update_disc(client, disc_data)
- else:
- print(f"Loading {disc_object['name']} via Home Assistant.")
- load_disc(disc_object)
- def handle_play():
- print("Handling PLAY command.")
- if use_mqtt:
- control_player(client, "PLAY")
- else:
- play_media_again()
- def handle_pause():
- print("Handling PAUSE command.")
- if use_mqtt:
- control_player(client, "PAUSE")
- else:
- pause_media()
- command_handlers = {"EJECT": handle_pause, "PLAY": handle_play, "PAUSE": handle_pause}
- def process_input(input_str):
- print(f"Processing input: {input_str}")
- if ":" in input_str:
-
- disc_data = input_str.split(":")
- if disc_data[0] == "ytmusic":
- handle_disc(disc_data)
- else:
- print(f"Unknown disc type: {disc_data[0]}")
- else:
-
- command_handler = command_handlers.get(input_str)
- if command_handler:
- command_handler()
- else:
- print(f"Can't process {input_str}")
- if len(sys.argv) > 1:
- input_str = sys.argv[1]
- print(f"Received argument: {input_str}")
- process_input(input_str)
- else:
- print("No arguments passed.")
|