mirror of
https://github.com/shadoll/playing_now_2_mm.git
synced 2025-12-20 04:27:51 +00:00
code refactoring
This commit is contained in:
@@ -1,20 +1,18 @@
|
||||
import subprocess
|
||||
from connectors.apple_music import AppleMusic
|
||||
from connectors.spotify import Spotify
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
|
||||
|
||||
class MusicProcessor:
|
||||
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()
|
||||
def __init__(self, source: str | None = None):
|
||||
self.source: str | None = source
|
||||
self.connector: Spotify | AppleMusic | None = self.get_connector()
|
||||
|
||||
def get_connector(self) -> Spotify | AppleMusic | None:
|
||||
match self.music_app:
|
||||
if self.source == "autodetect":
|
||||
self.source = self.get_current_music_player()
|
||||
|
||||
match self.source:
|
||||
case "spotify":
|
||||
return Spotify()
|
||||
case "apple_music":
|
||||
@@ -23,10 +21,10 @@ class MusicProcessor:
|
||||
print("Active music player not found")
|
||||
return None
|
||||
|
||||
def get_current_track_info(self) -> tuple:
|
||||
def get_status(self) -> dict:
|
||||
if self.connector:
|
||||
return self.connector.get_current_track_info()
|
||||
return None, None, None, None
|
||||
return self.connector.get()
|
||||
return {}
|
||||
|
||||
@staticmethod
|
||||
def get_current_music_player():
|
||||
@@ -50,6 +48,4 @@ class MusicProcessor:
|
||||
player = "apple_music"
|
||||
else:
|
||||
player = None
|
||||
|
||||
# print(f"Detected 📀 player: {player}")
|
||||
return player
|
||||
|
||||
38
processors/status_send.py
Normal file
38
processors/status_send.py
Normal file
@@ -0,0 +1,38 @@
|
||||
import os
|
||||
from datetime import datetime, timedelta, timezone
|
||||
from dotenv import load_dotenv
|
||||
from connectors.mattermost import MattermostConnector
|
||||
|
||||
load_dotenv()
|
||||
|
||||
|
||||
class StatusSend:
|
||||
def __init__(self):
|
||||
conf = {
|
||||
"url": os.getenv("MATTERMOST_SERVER_URL"),
|
||||
"token": os.getenv("MATTERMOST_ACCESS_TOKEN"),
|
||||
}
|
||||
self.connector = MattermostConnector(conf)
|
||||
|
||||
def set_status(self, text, emoji, duration=None, **kwargs):
|
||||
if duration is not None:
|
||||
expires_at = datetime.now(timezone.utc) + timedelta(seconds=duration)
|
||||
if isinstance(emoji, dict):
|
||||
emoji_name = emoji.get("name")
|
||||
else:
|
||||
emoji_name = emoji
|
||||
data = {
|
||||
"emoji": emoji_name,
|
||||
"text": text,
|
||||
"expires_at": expires_at.isoformat() if expires_at else None,
|
||||
}
|
||||
try:
|
||||
self.connector.send(data=data)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
|
||||
def clear_status(self):
|
||||
try:
|
||||
self.connector.send(data={"emoji": "", "text": "", "expires_at": ""})
|
||||
except Exception as e:
|
||||
print(e)
|
||||
@@ -1,18 +1,19 @@
|
||||
from connectors.random import Random
|
||||
from connectors.random import RandomConnector
|
||||
|
||||
|
||||
class TextProcessor:
|
||||
def __init__(self, source: str | None = None):
|
||||
self.source: str | None = source
|
||||
self.connector = self.get_connector()
|
||||
self.connector: RandomConnector | None = self.get_connector()
|
||||
|
||||
def get_connector(self):
|
||||
def get_connector(self) -> RandomConnector | None:
|
||||
if self.source == "random":
|
||||
return Random()
|
||||
return RandomConnector()
|
||||
else:
|
||||
raise ValueError("Invalid source")
|
||||
print("Invalid source")
|
||||
return None
|
||||
|
||||
def get_satus(self) -> tuple:
|
||||
def get_status(self) -> dict:
|
||||
if self.connector:
|
||||
return self.connector.get_random_activity()
|
||||
return None, None, None
|
||||
return self.connector.get()
|
||||
return {}
|
||||
|
||||
Reference in New Issue
Block a user