2020-11-01 02:35:14 +00:00
|
|
|
"""
|
|
|
|
BAPSicle Server
|
|
|
|
Next-gen audio playout server for University Radio York playout,
|
|
|
|
based on WebStudio interface.
|
|
|
|
|
|
|
|
Show Plan Items
|
|
|
|
|
|
|
|
Authors:
|
|
|
|
Michael Grace
|
|
|
|
|
|
|
|
Date:
|
|
|
|
November 2020
|
|
|
|
"""
|
|
|
|
|
|
|
|
from typing import Dict
|
2020-11-04 00:09:42 +00:00
|
|
|
import os
|
2020-11-01 02:35:14 +00:00
|
|
|
|
2020-11-15 19:34:13 +00:00
|
|
|
|
2020-11-01 02:35:14 +00:00
|
|
|
class PlanObject:
|
2020-11-15 19:34:13 +00:00
|
|
|
_channel_weight: int = 0
|
2020-11-01 02:35:14 +00:00
|
|
|
_filename: str = ""
|
|
|
|
_title: str = ""
|
|
|
|
_artist: str = ""
|
|
|
|
|
|
|
|
@property
|
2020-11-15 19:34:13 +00:00
|
|
|
def channel_weight(self) -> int:
|
|
|
|
return self._channel_weight
|
2020-11-01 02:35:14 +00:00
|
|
|
|
|
|
|
@property
|
|
|
|
def filename(self) -> str:
|
|
|
|
return self._filename
|
|
|
|
|
|
|
|
@property
|
|
|
|
def name(self) -> str:
|
|
|
|
return "{0} - {1}".format(self._title, self._artist) if self._artist else self._title
|
|
|
|
|
2020-11-03 00:32:43 +00:00
|
|
|
@property
|
2020-11-01 02:35:14 +00:00
|
|
|
def __dict__(self) -> Dict[str, any]:
|
|
|
|
return {
|
2020-11-15 19:34:13 +00:00
|
|
|
"channel_weight": self.channel_weight,
|
2020-11-03 00:32:43 +00:00
|
|
|
"title": self._title,
|
|
|
|
"artist": self._artist,
|
2020-11-01 02:35:14 +00:00
|
|
|
"name": self.name,
|
|
|
|
"filename": self.filename
|
2020-11-03 00:32:43 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
def __init__(self, new_item: Dict[str, any]):
|
2020-11-15 19:34:13 +00:00
|
|
|
self._channel_weight = new_item["channel_weight"]
|
2020-11-03 00:32:43 +00:00
|
|
|
self._filename = new_item["filename"]
|
|
|
|
self._title = new_item["title"]
|
|
|
|
self._artist = new_item["artist"]
|
2020-11-04 00:09:42 +00:00
|
|
|
|
|
|
|
# Fix any OS specific / or \'s
|
|
|
|
if os.path.sep == "/":
|
|
|
|
self._filename = self.filename.replace("\\", '/')
|
|
|
|
else:
|
|
|
|
self._filename = self.filename.replace("/", '\\')
|