code refactoring

This commit is contained in:
sHa
2024-04-08 09:06:26 +03:00
parent 13475a7db4
commit f2a4978cf2
13 changed files with 269 additions and 183 deletions

View File

@@ -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
View 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)

View File

@@ -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 {}