Add autodetection music player

This commit is contained in:
sHa
2024-04-05 16:13:39 +03:00
parent 7b04f96fcf
commit 051b1b4e40
5 changed files with 55 additions and 18 deletions

View File

@@ -1,9 +1,52 @@
from mattermost import Mattermost
import subprocess
from connectors.apple_music import AppleMusic
from connectors.spotify import Spotify
import os
from dotenv import load_dotenv
class Music:
def __init__(self, connector):
self.mattermost = Mattermost()
self.connector = connector()
def __init__(self):
load_dotenv()
self.music_app = os.getenv('MUSIC_APP', 'autodetect')
if self.music_app == 'autodetect':
self.music_app = self.get_current_music_player()
self.connector = self.get_connector()
def get_connector(self):
if self.music_app == 'spotify':
return Spotify()
elif self.music_app == 'apple_music':
return AppleMusic()
else:
raise ValueError(f'Invalid music app: {self.music_app}')
def get_current_track_info(self) -> tuple:
return self.connector.get_current_track_info()
if self.connector:
return self.connector.get_current_track_info()
return None, None, None
@staticmethod
def get_current_music_player():
spotify_status = (
subprocess.check_output(
"osascript -e 'application \"Spotify\" is running'", shell=True
)
.decode()
.strip()
)
apple_music_status = (
subprocess.check_output(
"osascript -e 'application \"Music\" is running'", shell=True
)
.decode()
.strip()
)
if spotify_status == "true":
player = "Spotify"
elif apple_music_status == "true":
player = "Apple Music"
else:
player = None
# print(f"Detected 📀 player: {player}")
return player