Skip to content
Snippets Groups Projects
Commit 1ae381d8 authored by David Trattnig's avatar David Trattnig
Browse files

refactor(config): helper location, rm settings

parent 78a77bd6
No related branches found
No related tags found
1 merge request!35ORM-less scheduling
...@@ -43,16 +43,6 @@ template = { ...@@ -43,16 +43,6 @@ template = {
"level": confuse.OneOf(["debug", "info", "warning", "error", "critical"]), "level": confuse.OneOf(["debug", "info", "warning", "error", "critical"]),
}, },
"monitoring": { "monitoring": {
"mail": {
"host": str,
"port": int,
"user": str,
"pwd": str,
"from": str,
"subject_prefix": str,
"coordinator": {"enabled": bool, "mail": str},
"admin": {"enabled": bool, "mail": str},
},
"heartbeat": {"host": str, "port": int, "frequency": int}, "heartbeat": {"host": str, "port": int, "frequency": int},
}, },
"api": { "api": {
...@@ -67,14 +57,6 @@ template = { ...@@ -67,14 +57,6 @@ template = {
}, },
}, },
"scheduler": { "scheduler": {
"db": {
"type": confuse.OneOf(["postgresql", "mysql", "sqlite"]),
"name": str,
"user": str,
"pwd": str,
"host": str,
"charset": str,
},
"audio": { "audio": {
"source_folder": str, "source_folder": str,
"source_extension": str, "source_extension": str,
...@@ -178,26 +160,3 @@ class AuraConfig: ...@@ -178,26 +160,3 @@ class AuraConfig:
sys.exit(1) sys.exit(1)
self.config = self.confuse_config.get(template) self.config = self.confuse_config.get(template)
def to_abs_path(self, path):
"""
Transform any given (relative) path to an absolute paths.
Starting at the project root.
"""
if path.startswith("/"):
return path
else:
return self.confuse_config["install_dir"].get() + "/" + path
def abs_audio_store_path(self):
"""
Return the absolute path to the audio store, based on the `audio_source_folder` setting.
"""
return self.to_abs_path(self.config.scheduler.audio.source_folder)
def abs_playlist_path(self):
"""
Return the absolute path to the playlist folder.
"""
return self.to_abs_path(self.config.scheduler.audio.playlist_folder)
...@@ -178,7 +178,7 @@ class ResourceUtil(Enum): ...@@ -178,7 +178,7 @@ class ResourceUtil(Enum):
return ResourceClass.PLAYLIST return ResourceClass.PLAYLIST
@staticmethod @staticmethod
def generate_m3u_file(target_file_path: str, items: [], config: AuraConfig): def generate_m3u_file(target_file_path: str, items: []):
""" """
Write a M3U file based on the given playlist object. Write a M3U file based on the given playlist object.
...@@ -192,7 +192,7 @@ class ResourceUtil(Enum): ...@@ -192,7 +192,7 @@ class ResourceUtil(Enum):
for item in items: for item in items:
if ResourceUtil.get_content_type(item.source) == ResourceType.FILE: if ResourceUtil.get_content_type(item.source) == ResourceType.FILE:
path = ResourceUtil.source_to_filepath(item.source, config) path = ResourceUtil.source_to_filepath(item.source)
fb.append( fb.append(
f"#EXTINF:{item.duration},{item.metadata.artist} - {item.metadata.title}" f"#EXTINF:{item.duration},{item.metadata.artist} - {item.metadata.title}"
) )
...@@ -202,7 +202,42 @@ class ResourceUtil(Enum): ...@@ -202,7 +202,42 @@ class ResourceUtil(Enum):
file.close() file.close()
@staticmethod @staticmethod
def source_to_filepath(source_uri: str, config: AuraConfig) -> str: def to_abs_path(path):
"""
Transform any given (relative) path to an absolute path.
Starting at the project root.
"""
if path.startswith("/"):
return path
else:
ac = AuraConfig.instance
return ac.confuse_config["install_dir"].get() + "/" + path
@staticmethod
def audio_store_path() -> str:
"""
Get audio store location.
Returns:
(str): Absolute path to audio store folder.
"""
ac = AuraConfig.instance
return ResourceUtil.to_abs_path(ac.config.scheduler.audio.source_folder)
@staticmethod
def playlist_folder_path() -> str:
"""
Get playlist folder location.
Returns:
(str): Return the absolute path to the playlist folder.
"""
ac = AuraConfig.instance
return ResourceUtil.to_abs_path(ac.config.scheduler.audio.playlist_folder)
@staticmethod
def source_to_filepath(source_uri: str) -> str:
""" """
Create path from URI and extension. Create path from URI and extension.
...@@ -214,18 +249,18 @@ class ResourceUtil(Enum): ...@@ -214,18 +249,18 @@ class ResourceUtil(Enum):
Args: Args:
source_uri (str): The URI of the file source_uri (str): The URI of the file
config (AuraConfig): The configuration
Returns: Returns:
path (str): Absolute file path (str): Absolute file path.
""" """
path = source_uri[7:] path = source_uri[7:]
if path.startswith("/"): if path.startswith("/"):
return path return path
else: else:
base_dir = config.abs_audio_store_path() ac = AuraConfig.instance
extension = config.get("audio_source_extension") base_dir = ResourceUtil.audio_store_path()
extension = ac.config.scheduler.audio.source_extension
return base_dir + "/" + path + extension return base_dir + "/" + path + extension
@staticmethod @staticmethod
......
...@@ -29,6 +29,7 @@ import logging ...@@ -29,6 +29,7 @@ import logging
import aura_engine.scheduling as scheduling import aura_engine.scheduling as scheduling
from aura_engine.base.config import AuraConfig from aura_engine.base.config import AuraConfig
from aura_engine.base.utils import SimpleUtil as SU from aura_engine.base.utils import SimpleUtil as SU
from aura_engine.resources import ResourceUtil
from aura_engine.scheduling.domain import Playlist, PlaylistItem, Timeslot from aura_engine.scheduling.domain import Playlist, PlaylistItem, Timeslot
...@@ -47,7 +48,7 @@ class M3UPlaylistProcessor: ...@@ -47,7 +48,7 @@ class M3UPlaylistProcessor:
""" """
self.config = AuraConfig.instance self.config = AuraConfig.instance
self.logger = logging.getLogger("engine") self.logger = logging.getLogger("engine")
self.playlist_folder = self.config.abs_playlist_path() self.playlist_folder = ResourceUtil.playlist_folder_path()
def spread(self, item: PlaylistItem) -> list: def spread(self, item: PlaylistItem) -> list:
""" """
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment