94 lines
2.5 KiB
Python
94 lines
2.5 KiB
Python
from .origin_service import OriginService
|
|
from .origin_channels import OriginChannels
|
|
from .origin_epg import OriginEPG
|
|
|
|
import fHDHR.exceptions
|
|
|
|
|
|
class OriginEPG_StandIN():
|
|
def __init__(self):
|
|
pass
|
|
|
|
def update_epg(self, channels):
|
|
return {}
|
|
|
|
|
|
class OriginChannels_StandIN():
|
|
def __init__(self):
|
|
pass
|
|
|
|
def get_channels(self):
|
|
return []
|
|
|
|
def get_channel_stream(self, chandict):
|
|
return None
|
|
|
|
|
|
class OriginServiceWrapper():
|
|
|
|
def __init__(self, fhdhr):
|
|
self.fhdhr = fhdhr
|
|
|
|
self.servicename = fhdhr.config.dict["main"]["servicename"]
|
|
|
|
self.setup_success = None
|
|
self.setup()
|
|
|
|
def setup(self):
|
|
|
|
try:
|
|
self.origin = OriginService(self.fhdhr)
|
|
self.setup_success = True
|
|
self.fhdhr.logger.info("%s Setup Success" % self.servicename)
|
|
except fHDHR.exceptions.OriginSetupError as e:
|
|
self.fhdhr.logger.error(e)
|
|
self.setup_success = False
|
|
|
|
if self.setup_success:
|
|
self.channels = OriginChannels(self.fhdhr, self.origin)
|
|
self.epg = OriginEPG(self.fhdhr)
|
|
else:
|
|
self.channels = OriginChannels_StandIN()
|
|
self.epg = OriginEPG_StandIN()
|
|
|
|
def get_channels(self):
|
|
return self.channels.get_channels()
|
|
|
|
def get_channel_stream(self, chandict):
|
|
return self.channels.get_channel_stream(chandict)
|
|
|
|
def update_epg(self, channels):
|
|
return self.epg.update_epg(channels)
|
|
|
|
def get_status_dict(self):
|
|
|
|
if self.setup_success:
|
|
status_dict = {
|
|
"Setup": "Success",
|
|
}
|
|
|
|
try:
|
|
full_status_dict = self.origin.get_status_dict()
|
|
for status_key in list(full_status_dict.keys()):
|
|
status_dict[status_key] = full_status_dict[status_key]
|
|
return status_dict
|
|
except AttributeError:
|
|
return status_dict
|
|
else:
|
|
return {
|
|
"Setup": "Failed",
|
|
}
|
|
|
|
def __getattr__(self, name):
|
|
''' will only get called for undefined attributes '''
|
|
if hasattr(self.fhdhr, name):
|
|
return eval("self.fhdhr." + name)
|
|
if hasattr(self.origin, name):
|
|
return eval("self.origin." + name)
|
|
elif hasattr(self.channels, name):
|
|
return eval("self.channels." + name)
|
|
elif hasattr(self.epg, name):
|
|
return eval("self.epg." + name)
|
|
else:
|
|
raise AttributeError(name)
|